/* smooth_line.c generated by valac 0.56.0, the Vala compiler * generated from smooth_line.vala, do not modify */ #include "livechart.h" #include #include #include #include #include #include #include enum { LIVE_CHART_SMOOTH_LINE_0_PROPERTY, LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY, LIVE_CHART_SMOOTH_LINE_NUM_PROPERTIES }; static GParamSpec* live_chart_smooth_line_properties[LIVE_CHART_SMOOTH_LINE_NUM_PROPERTIES]; #define _live_chart_region_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_region_unref (var), NULL))) #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _cairo_path_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_path_destroy (var), NULL))) #define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL))) typedef struct _Block6Data Block6Data; #define _live_chart_bezier_intersector_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_bezier_intersector_unref (var), NULL))) struct _LiveChartSmoothLinePrivate { LiveChartRegion* _region; }; struct _Block6Data { int _ref_count_; LiveChartSmoothLine* self; LiveChartBoundaries boundaries; cairo_t* ctx; }; static gint LiveChartSmoothLine_private_offset; static gpointer live_chart_smooth_line_parent_class = NULL; static void live_chart_smooth_line_real_draw (LiveChartSerieRenderer* base, cairo_t* ctx, LiveChartConfig* config); static void live_chart_smooth_line_update_bounding_box (LiveChartSmoothLine* self, LiveChartPoints* points, LiveChartConfig* config); static void live_chart_smooth_line_generate_intersections (LiveChartSmoothLine* self, LiveChartPoint* previous, LiveChartPoint* target, LiveChartConfig* config, LiveChartBezierCurve* curve); static Block6Data* block6_data_ref (Block6Data* _data6_); static void block6_data_unref (void * _userdata_); static gboolean __lambda13_ (Block6Data* _data6_, LiveChartIntersection* intersection); static gboolean ___lambda13__gee_forall_func (gpointer g, gpointer self); static void live_chart_smooth_line_finalize (GObject * obj); static GType live_chart_smooth_line_get_type_once (void); static void _vala_live_chart_smooth_line_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void _vala_live_chart_smooth_line_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); static inline gpointer _vala_memdup2 (gconstpointer mem, gsize byte_size); static inline gpointer live_chart_smooth_line_get_instance_private (LiveChartSmoothLine* self) { return G_STRUCT_MEMBER_P (self, LiveChartSmoothLine_private_offset); } static gpointer _g_object_ref0 (gpointer self) { #line 10 "../src/smooth_line.vala" return self ? g_object_ref (self) : NULL; #line 82 "smooth_line.c" } LiveChartSmoothLine* live_chart_smooth_line_construct (GType object_type, LiveChartValues* values) { LiveChartSmoothLine * self = NULL; LiveChartValues* _tmp0_; #line 8 "../src/smooth_line.vala" g_return_val_if_fail (values != NULL, NULL); #line 9 "../src/smooth_line.vala" self = (LiveChartSmoothLine*) live_chart_serie_renderer_construct (object_type); #line 10 "../src/smooth_line.vala" _tmp0_ = _g_object_ref0 (values); #line 10 "../src/smooth_line.vala" _g_object_unref0 (((LiveChartSerieRenderer*) self)->values); #line 10 "../src/smooth_line.vala" ((LiveChartSerieRenderer*) self)->values = _tmp0_; #line 8 "../src/smooth_line.vala" return self; #line 103 "smooth_line.c" } LiveChartSmoothLine* live_chart_smooth_line_new (LiveChartValues* values) { #line 8 "../src/smooth_line.vala" return live_chart_smooth_line_construct (LIVE_CHART_TYPE_SMOOTH_LINE, values); #line 111 "smooth_line.c" } static void live_chart_smooth_line_real_draw (LiveChartSerieRenderer* base, cairo_t* ctx, LiveChartConfig* config) { LiveChartSmoothLine * self; gboolean _tmp0_; gboolean _tmp1_; #line 13 "../src/smooth_line.vala" self = (LiveChartSmoothLine*) base; #line 13 "../src/smooth_line.vala" g_return_if_fail (ctx != NULL); #line 13 "../src/smooth_line.vala" g_return_if_fail (config != NULL); #line 14 "../src/smooth_line.vala" _tmp0_ = live_chart_drawable_get_visible ((LiveChartDrawable*) self); #line 14 "../src/smooth_line.vala" _tmp1_ = _tmp0_; #line 14 "../src/smooth_line.vala" if (_tmp1_) { #line 134 "smooth_line.c" LiveChartPoints* points = NULL; LiveChartValues* _tmp2_; LiveChartPoints* _tmp3_; LiveChartPoints* _tmp4_; gint _tmp5_; gint _tmp6_; #line 15 "../src/smooth_line.vala" _tmp2_ = ((LiveChartSerieRenderer*) self)->values; #line 15 "../src/smooth_line.vala" _tmp3_ = live_chart_points_create (_tmp2_, config); #line 15 "../src/smooth_line.vala" points = _tmp3_; #line 16 "../src/smooth_line.vala" _tmp4_ = points; #line 16 "../src/smooth_line.vala" _tmp5_ = live_chart_points_get_size (_tmp4_); #line 16 "../src/smooth_line.vala" _tmp6_ = _tmp5_; #line 16 "../src/smooth_line.vala" if (_tmp6_ > 0) { #line 155 "smooth_line.c" LiveChartRegion* _tmp7_; LiveChartPoints* _tmp8_; cairo_path_t* _tmp9_; cairo_path_t* _tmp10_; LiveChartRegion* _tmp11_; #line 18 "../src/smooth_line.vala" _tmp7_ = self->priv->_region; #line 18 "../src/smooth_line.vala" if (_tmp7_ != NULL) { #line 19 "../src/smooth_line.vala" cairo_push_group (ctx); #line 167 "smooth_line.c" } #line 22 "../src/smooth_line.vala" _tmp8_ = points; #line 22 "../src/smooth_line.vala" _tmp9_ = live_chart_smooth_line_draw_smooth_line (self, _tmp8_, ctx, config); #line 22 "../src/smooth_line.vala" _tmp10_ = _tmp9_; #line 22 "../src/smooth_line.vala" _cairo_path_destroy0 (_tmp10_); #line 23 "../src/smooth_line.vala" cairo_stroke (ctx); #line 25 "../src/smooth_line.vala" _tmp11_ = self->priv->_region; #line 25 "../src/smooth_line.vala" if (_tmp11_ != NULL) { #line 26 "../src/smooth_line.vala" cairo_set_operator (ctx, CAIRO_OPERATOR_ATOP); #line 27 "../src/smooth_line.vala" live_chart_smooth_line_draw_regions_on_line (self, ctx, config); #line 28 "../src/smooth_line.vala" cairo_fill (ctx); #line 29 "../src/smooth_line.vala" cairo_pop_group_to_source (ctx); #line 30 "../src/smooth_line.vala" cairo_paint (ctx); #line 193 "smooth_line.c" } } #line 14 "../src/smooth_line.vala" _g_object_unref0 (points); #line 198 "smooth_line.c" } } cairo_path_t* live_chart_smooth_line_draw_smooth_line (LiveChartSmoothLine* self, LiveChartPoints* points, cairo_t* ctx, LiveChartConfig* config) { LiveChartIntersections* _tmp0_; LiveChartPoint first_point = {0}; LiveChartPoint _tmp1_ = {0}; LiveChartPoint _tmp2_; LiveChartPoint _tmp3_; LiveChartPath* _tmp4_; LiveChartPath* _tmp5_; cairo_path_t* _tmp32_; cairo_path_t* result; #line 36 "../src/smooth_line.vala" g_return_val_if_fail (self != NULL, NULL); #line 36 "../src/smooth_line.vala" g_return_val_if_fail (points != NULL, NULL); #line 36 "../src/smooth_line.vala" g_return_val_if_fail (ctx != NULL, NULL); #line 36 "../src/smooth_line.vala" g_return_val_if_fail (config != NULL, NULL); #line 37 "../src/smooth_line.vala" _tmp0_ = live_chart_intersections_new (); #line 37 "../src/smooth_line.vala" _g_object_unref0 (self->intersections); #line 37 "../src/smooth_line.vala" self->intersections = _tmp0_; #line 38 "../src/smooth_line.vala" live_chart_points_first (points, &_tmp1_); #line 38 "../src/smooth_line.vala" first_point = _tmp1_; #line 40 "../src/smooth_line.vala" live_chart_smooth_line_update_bounding_box (self, points, config); #line 41 "../src/smooth_line.vala" live_chart_serie_renderer_debug ((LiveChartSerieRenderer*) self, ctx); #line 43 "../src/smooth_line.vala" _tmp2_ = first_point; #line 43 "../src/smooth_line.vala" _tmp3_ = first_point; #line 43 "../src/smooth_line.vala" cairo_move_to (ctx, _tmp2_.x, _tmp3_.y); #line 44 "../src/smooth_line.vala" _tmp4_ = live_chart_serie_renderer_get_line ((LiveChartSerieRenderer*) self); #line 44 "../src/smooth_line.vala" _tmp5_ = _tmp4_; #line 44 "../src/smooth_line.vala" live_chart_path_configure (_tmp5_, ctx); #line 251 "smooth_line.c" { gint pos = 0; #line 46 "../src/smooth_line.vala" pos = 0; #line 256 "smooth_line.c" { gboolean _tmp6_ = FALSE; #line 46 "../src/smooth_line.vala" _tmp6_ = TRUE; #line 46 "../src/smooth_line.vala" while (TRUE) { #line 263 "smooth_line.c" gint _tmp8_; gint _tmp9_; LiveChartPoint previous_point = {0}; LiveChartPoint _tmp10_ = {0}; LiveChartPoint target_point = {0}; LiveChartPoint _tmp11_ = {0}; LiveChartPoint _tmp12_; LiveChartBezierCurve curve = {0}; LiveChartPoint _tmp13_; LiveChartPoint _tmp14_; LiveChartBezierCurve _tmp15_ = {0}; LiveChartBezierCurve _tmp16_; LiveChartCoord _tmp17_; LiveChartBezierCurve _tmp18_; LiveChartCoord _tmp19_; LiveChartBezierCurve _tmp20_; LiveChartCoord _tmp21_; LiveChartBezierCurve _tmp22_; LiveChartCoord _tmp23_; LiveChartBezierCurve _tmp24_; LiveChartCoord _tmp25_; LiveChartBezierCurve _tmp26_; LiveChartCoord _tmp27_; LiveChartRegion* _tmp28_; #line 46 "../src/smooth_line.vala" if (!_tmp6_) { #line 290 "smooth_line.c" gint _tmp7_; #line 46 "../src/smooth_line.vala" _tmp7_ = pos; #line 46 "../src/smooth_line.vala" pos = _tmp7_ + 1; #line 296 "smooth_line.c" } #line 46 "../src/smooth_line.vala" _tmp6_ = FALSE; #line 46 "../src/smooth_line.vala" _tmp8_ = live_chart_points_get_size (points); #line 46 "../src/smooth_line.vala" _tmp9_ = _tmp8_; #line 46 "../src/smooth_line.vala" if (!(pos <= (_tmp9_ - 1))) { #line 46 "../src/smooth_line.vala" break; #line 308 "smooth_line.c" } #line 48 "../src/smooth_line.vala" live_chart_points_get (points, pos, &_tmp10_); #line 48 "../src/smooth_line.vala" previous_point = _tmp10_; #line 49 "../src/smooth_line.vala" live_chart_points_after (points, pos, &_tmp11_); #line 49 "../src/smooth_line.vala" target_point = _tmp11_; #line 51 "../src/smooth_line.vala" _tmp12_ = previous_point; #line 51 "../src/smooth_line.vala" if (live_chart_serie_renderer_is_out_of_area ((LiveChartSerieRenderer*) self, &_tmp12_)) { #line 52 "../src/smooth_line.vala" continue; #line 324 "smooth_line.c" } #line 55 "../src/smooth_line.vala" _tmp13_ = previous_point; #line 55 "../src/smooth_line.vala" _tmp14_ = target_point; #line 55 "../src/smooth_line.vala" live_chart_build_bezier_curve_from_points (&_tmp13_, &_tmp14_, &_tmp15_); #line 55 "../src/smooth_line.vala" curve = _tmp15_; #line 57 "../src/smooth_line.vala" _tmp16_ = curve; #line 57 "../src/smooth_line.vala" _tmp17_ = _tmp16_.c1; #line 57 "../src/smooth_line.vala" _tmp18_ = curve; #line 57 "../src/smooth_line.vala" _tmp19_ = _tmp18_.c1; #line 57 "../src/smooth_line.vala" _tmp20_ = curve; #line 57 "../src/smooth_line.vala" _tmp21_ = _tmp20_.c2; #line 57 "../src/smooth_line.vala" _tmp22_ = curve; #line 57 "../src/smooth_line.vala" _tmp23_ = _tmp22_.c2; #line 57 "../src/smooth_line.vala" _tmp24_ = curve; #line 57 "../src/smooth_line.vala" _tmp25_ = _tmp24_.c3; #line 57 "../src/smooth_line.vala" _tmp26_ = curve; #line 57 "../src/smooth_line.vala" _tmp27_ = _tmp26_.c3; #line 57 "../src/smooth_line.vala" cairo_curve_to (ctx, _tmp17_.x, _tmp19_.y, _tmp21_.x, _tmp23_.y, _tmp25_.x, _tmp27_.y); #line 62 "../src/smooth_line.vala" _tmp28_ = self->priv->_region; #line 62 "../src/smooth_line.vala" if (_tmp28_ != NULL) { #line 364 "smooth_line.c" LiveChartPoint _tmp29_; LiveChartPoint _tmp30_; LiveChartBezierCurve _tmp31_; #line 63 "../src/smooth_line.vala" _tmp29_ = previous_point; #line 63 "../src/smooth_line.vala" _tmp30_ = target_point; #line 63 "../src/smooth_line.vala" _tmp31_ = curve; #line 63 "../src/smooth_line.vala" live_chart_smooth_line_generate_intersections (self, &_tmp29_, &_tmp30_, config, &_tmp31_); #line 376 "smooth_line.c" } } } } #line 67 "../src/smooth_line.vala" _tmp32_ = cairo_copy_path (ctx); #line 67 "../src/smooth_line.vala" result = _tmp32_; #line 67 "../src/smooth_line.vala" return result; #line 387 "smooth_line.c" } static gpointer _cairo_reference0 (gpointer self) { #line 70 "../src/smooth_line.vala" return self ? cairo_reference (self) : NULL; #line 395 "smooth_line.c" } static Block6Data* block6_data_ref (Block6Data* _data6_) { #line 70 "../src/smooth_line.vala" g_atomic_int_inc (&_data6_->_ref_count_); #line 70 "../src/smooth_line.vala" return _data6_; #line 405 "smooth_line.c" } static void block6_data_unref (void * _userdata_) { Block6Data* _data6_; _data6_ = (Block6Data*) _userdata_; #line 70 "../src/smooth_line.vala" if (g_atomic_int_dec_and_test (&_data6_->_ref_count_)) { #line 415 "smooth_line.c" LiveChartSmoothLine* self; #line 70 "../src/smooth_line.vala" self = _data6_->self; #line 70 "../src/smooth_line.vala" _cairo_destroy0 (_data6_->ctx); #line 70 "../src/smooth_line.vala" _g_object_unref0 (self); #line 70 "../src/smooth_line.vala" g_slice_free (Block6Data, _data6_); #line 425 "smooth_line.c" } } static gboolean __lambda13_ (Block6Data* _data6_, LiveChartIntersection* intersection) { LiveChartSmoothLine* self; gboolean result; #line 72 "../src/smooth_line.vala" self = _data6_->self; #line 73 "../src/smooth_line.vala" if (intersection != NULL) { #line 439 "smooth_line.c" gdouble _tmp0_; gdouble _tmp1_; LiveChartBoundaries _tmp2_; LiveChartBoundary _tmp3_; gdouble _tmp4_; gdouble _tmp5_; gdouble _tmp6_; gdouble _tmp7_; LiveChartBoundaries _tmp8_; LiveChartRegion* _tmp9_; LiveChartRegion* _tmp10_; GdkRGBA _tmp11_ = {0}; GdkRGBA _tmp12_; LiveChartRegion* _tmp13_; LiveChartRegion* _tmp14_; GdkRGBA _tmp15_ = {0}; GdkRGBA _tmp16_; LiveChartRegion* _tmp17_; LiveChartRegion* _tmp18_; GdkRGBA _tmp19_ = {0}; GdkRGBA _tmp20_; LiveChartRegion* _tmp21_; LiveChartRegion* _tmp22_; GdkRGBA _tmp23_ = {0}; GdkRGBA _tmp24_; #line 74 "../src/smooth_line.vala" _tmp0_ = live_chart_intersection_get_start_x (intersection); #line 74 "../src/smooth_line.vala" _tmp1_ = _tmp0_; #line 74 "../src/smooth_line.vala" _tmp2_ = _data6_->boundaries; #line 74 "../src/smooth_line.vala" _tmp3_ = _tmp2_.y; #line 74 "../src/smooth_line.vala" _tmp4_ = live_chart_intersection_get_end_x (intersection); #line 74 "../src/smooth_line.vala" _tmp5_ = _tmp4_; #line 74 "../src/smooth_line.vala" _tmp6_ = live_chart_intersection_get_start_x (intersection); #line 74 "../src/smooth_line.vala" _tmp7_ = _tmp6_; #line 74 "../src/smooth_line.vala" _tmp8_ = _data6_->boundaries; #line 74 "../src/smooth_line.vala" cairo_rectangle (_data6_->ctx, _tmp1_, (gdouble) _tmp3_.min, _tmp5_ - _tmp7_, (gdouble) _tmp8_.height); #line 75 "../src/smooth_line.vala" _tmp9_ = live_chart_intersection_get_region (intersection); #line 75 "../src/smooth_line.vala" _tmp10_ = _tmp9_; #line 75 "../src/smooth_line.vala" live_chart_region_get_line_color (_tmp10_, &_tmp11_); #line 75 "../src/smooth_line.vala" _tmp12_ = _tmp11_; #line 75 "../src/smooth_line.vala" _tmp13_ = live_chart_intersection_get_region (intersection); #line 75 "../src/smooth_line.vala" _tmp14_ = _tmp13_; #line 75 "../src/smooth_line.vala" live_chart_region_get_line_color (_tmp14_, &_tmp15_); #line 75 "../src/smooth_line.vala" _tmp16_ = _tmp15_; #line 75 "../src/smooth_line.vala" _tmp17_ = live_chart_intersection_get_region (intersection); #line 75 "../src/smooth_line.vala" _tmp18_ = _tmp17_; #line 75 "../src/smooth_line.vala" live_chart_region_get_line_color (_tmp18_, &_tmp19_); #line 75 "../src/smooth_line.vala" _tmp20_ = _tmp19_; #line 75 "../src/smooth_line.vala" _tmp21_ = live_chart_intersection_get_region (intersection); #line 75 "../src/smooth_line.vala" _tmp22_ = _tmp21_; #line 75 "../src/smooth_line.vala" live_chart_region_get_line_color (_tmp22_, &_tmp23_); #line 75 "../src/smooth_line.vala" _tmp24_ = _tmp23_; #line 75 "../src/smooth_line.vala" cairo_set_source_rgba (_data6_->ctx, _tmp12_.red, _tmp16_.green, _tmp20_.blue, _tmp24_.alpha); #line 519 "smooth_line.c" } #line 77 "../src/smooth_line.vala" result = TRUE; #line 77 "../src/smooth_line.vala" _g_object_unref0 (intersection); #line 77 "../src/smooth_line.vala" return result; #line 527 "smooth_line.c" } static gboolean ___lambda13__gee_forall_func (gpointer g, gpointer self) { gboolean result; result = __lambda13_ (self, (LiveChartIntersection*) g); #line 72 "../src/smooth_line.vala" return result; #line 538 "smooth_line.c" } void live_chart_smooth_line_draw_regions_on_line (LiveChartSmoothLine* self, cairo_t* ctx, LiveChartConfig* config) { Block6Data* _data6_; cairo_t* _tmp0_; LiveChartBoundaries _tmp1_ = {0}; LiveChartIntersections* _tmp2_; #line 70 "../src/smooth_line.vala" g_return_if_fail (self != NULL); #line 70 "../src/smooth_line.vala" g_return_if_fail (ctx != NULL); #line 70 "../src/smooth_line.vala" g_return_if_fail (config != NULL); #line 70 "../src/smooth_line.vala" _data6_ = g_slice_new0 (Block6Data); #line 70 "../src/smooth_line.vala" _data6_->_ref_count_ = 1; #line 70 "../src/smooth_line.vala" _data6_->self = g_object_ref (self); #line 70 "../src/smooth_line.vala" _tmp0_ = _cairo_reference0 (ctx); #line 70 "../src/smooth_line.vala" _cairo_destroy0 (_data6_->ctx); #line 70 "../src/smooth_line.vala" _data6_->ctx = _tmp0_; #line 71 "../src/smooth_line.vala" live_chart_config_boundaries (config, &_tmp1_); #line 71 "../src/smooth_line.vala" _data6_->boundaries = _tmp1_; #line 72 "../src/smooth_line.vala" _tmp2_ = self->intersections; #line 72 "../src/smooth_line.vala" live_chart_intersections_foreach (_tmp2_, ___lambda13__gee_forall_func, _data6_); #line 70 "../src/smooth_line.vala" block6_data_unref (_data6_); #line 70 "../src/smooth_line.vala" _data6_ = NULL; #line 580 "smooth_line.c" } static void live_chart_smooth_line_generate_intersections (LiveChartSmoothLine* self, LiveChartPoint* previous, LiveChartPoint* target, LiveChartConfig* config, LiveChartBezierCurve* curve) { LiveChartRegion* _tmp0_; LiveChartBezierIntersector* _tmp1_; LiveChartBezierIntersector* _tmp2_; LiveChartIntersections* _tmp3_; LiveChartPoint _tmp4_; LiveChartPoint _tmp5_; LiveChartBezierCurve _tmp6_; #line 81 "../src/smooth_line.vala" g_return_if_fail (self != NULL); #line 81 "../src/smooth_line.vala" g_return_if_fail (previous != NULL); #line 81 "../src/smooth_line.vala" g_return_if_fail (target != NULL); #line 81 "../src/smooth_line.vala" g_return_if_fail (config != NULL); #line 81 "../src/smooth_line.vala" g_return_if_fail (curve != NULL); #line 82 "../src/smooth_line.vala" _tmp0_ = self->priv->_region; #line 82 "../src/smooth_line.vala" _tmp1_ = live_chart_bezier_intersector_new (_tmp0_, config); #line 82 "../src/smooth_line.vala" _tmp2_ = _tmp1_; #line 82 "../src/smooth_line.vala" _tmp3_ = self->intersections; #line 82 "../src/smooth_line.vala" _tmp4_ = *previous; #line 82 "../src/smooth_line.vala" _tmp5_ = *target; #line 82 "../src/smooth_line.vala" _tmp6_ = *curve; #line 82 "../src/smooth_line.vala" live_chart_intersector_intersect ((LiveChartIntersector*) _tmp2_, _tmp3_, &_tmp4_, &_tmp5_, &_tmp6_); #line 82 "../src/smooth_line.vala" _live_chart_bezier_intersector_unref0 (_tmp2_); #line 625 "smooth_line.c" } static void live_chart_smooth_line_update_bounding_box (LiveChartSmoothLine* self, LiveChartPoints* points, LiveChartConfig* config) { LiveChartPoint _tmp0_ = {0}; LiveChartBounds* _tmp1_; LiveChartBounds* _tmp2_; gdouble _tmp3_; gdouble _tmp4_; LiveChartPoint _tmp5_ = {0}; LiveChartPoint _tmp6_ = {0}; LiveChartBounds* _tmp7_; LiveChartBounds* _tmp8_; gdouble _tmp9_; gdouble _tmp10_; LiveChartBounds* _tmp11_; LiveChartBounds* _tmp12_; gdouble _tmp13_; gdouble _tmp14_; LiveChartBoundingBox _tmp15_ = {0}; #line 85 "../src/smooth_line.vala" g_return_if_fail (self != NULL); #line 85 "../src/smooth_line.vala" g_return_if_fail (points != NULL); #line 85 "../src/smooth_line.vala" g_return_if_fail (config != NULL); #line 86 "../src/smooth_line.vala" live_chart_points_first (points, &_tmp0_); #line 86 "../src/smooth_line.vala" _tmp1_ = live_chart_points_get_bounds (points); #line 86 "../src/smooth_line.vala" _tmp2_ = _tmp1_; #line 86 "../src/smooth_line.vala" _tmp3_ = live_chart_bounds_get_lower (_tmp2_); #line 86 "../src/smooth_line.vala" _tmp4_ = _tmp3_; #line 86 "../src/smooth_line.vala" live_chart_points_last (points, &_tmp5_); #line 86 "../src/smooth_line.vala" live_chart_points_first (points, &_tmp6_); #line 86 "../src/smooth_line.vala" _tmp7_ = live_chart_points_get_bounds (points); #line 86 "../src/smooth_line.vala" _tmp8_ = _tmp7_; #line 86 "../src/smooth_line.vala" _tmp9_ = live_chart_bounds_get_upper (_tmp8_); #line 86 "../src/smooth_line.vala" _tmp10_ = _tmp9_; #line 86 "../src/smooth_line.vala" _tmp11_ = live_chart_points_get_bounds (points); #line 86 "../src/smooth_line.vala" _tmp12_ = _tmp11_; #line 86 "../src/smooth_line.vala" _tmp13_ = live_chart_bounds_get_lower (_tmp12_); #line 86 "../src/smooth_line.vala" _tmp14_ = _tmp13_; #line 86 "../src/smooth_line.vala" memset (&_tmp15_, 0, sizeof (LiveChartBoundingBox)); #line 86 "../src/smooth_line.vala" _tmp15_.x = _tmp0_.x; #line 86 "../src/smooth_line.vala" _tmp15_.y = _tmp4_; #line 86 "../src/smooth_line.vala" _tmp15_.width = _tmp5_.x - _tmp6_.x; #line 86 "../src/smooth_line.vala" _tmp15_.height = _tmp10_ - _tmp14_; #line 86 "../src/smooth_line.vala" ((LiveChartSerieRenderer*) self)->bounding_box = _tmp15_; #line 697 "smooth_line.c" } LiveChartRegion* live_chart_smooth_line_get_region (LiveChartSmoothLine* self) { LiveChartRegion* result; LiveChartRegion* _tmp0_; #line 6 "../src/smooth_line.vala" g_return_val_if_fail (self != NULL, NULL); #line 6 "../src/smooth_line.vala" _tmp0_ = self->priv->_region; #line 6 "../src/smooth_line.vala" result = _tmp0_; #line 6 "../src/smooth_line.vala" return result; #line 713 "smooth_line.c" } static gpointer _live_chart_region_ref0 (gpointer self) { #line 6 "../src/smooth_line.vala" return self ? live_chart_region_ref (self) : NULL; #line 721 "smooth_line.c" } void live_chart_smooth_line_set_region (LiveChartSmoothLine* self, LiveChartRegion* value) { LiveChartRegion* old_value; #line 6 "../src/smooth_line.vala" g_return_if_fail (self != NULL); #line 6 "../src/smooth_line.vala" old_value = live_chart_smooth_line_get_region (self); #line 6 "../src/smooth_line.vala" if (old_value != value) { #line 735 "smooth_line.c" LiveChartRegion* _tmp0_; #line 6 "../src/smooth_line.vala" _tmp0_ = _live_chart_region_ref0 (value); #line 6 "../src/smooth_line.vala" _live_chart_region_unref0 (self->priv->_region); #line 6 "../src/smooth_line.vala" self->priv->_region = _tmp0_; #line 6 "../src/smooth_line.vala" g_object_notify_by_pspec ((GObject *) self, live_chart_smooth_line_properties[LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY]); #line 745 "smooth_line.c" } } static void live_chart_smooth_line_class_init (LiveChartSmoothLineClass * klass, gpointer klass_data) { #line 4 "../src/smooth_line.vala" live_chart_smooth_line_parent_class = g_type_class_peek_parent (klass); #line 4 "../src/smooth_line.vala" g_type_class_adjust_private_offset (klass, &LiveChartSmoothLine_private_offset); #line 4 "../src/smooth_line.vala" ((LiveChartSerieRendererClass *) klass)->draw = (void (*) (LiveChartSerieRenderer*, cairo_t*, LiveChartConfig*)) live_chart_smooth_line_real_draw; #line 4 "../src/smooth_line.vala" G_OBJECT_CLASS (klass)->get_property = _vala_live_chart_smooth_line_get_property; #line 4 "../src/smooth_line.vala" G_OBJECT_CLASS (klass)->set_property = _vala_live_chart_smooth_line_set_property; #line 4 "../src/smooth_line.vala" G_OBJECT_CLASS (klass)->finalize = live_chart_smooth_line_finalize; #line 4 "../src/smooth_line.vala" g_object_class_install_property (G_OBJECT_CLASS (klass), LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY, live_chart_smooth_line_properties[LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY] = live_chart_param_spec_region ("region", "region", "region", LIVE_CHART_TYPE_REGION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE)); #line 767 "smooth_line.c" } static void live_chart_smooth_line_instance_init (LiveChartSmoothLine * self, gpointer klass) { LiveChartIntersections* _tmp0_; #line 4 "../src/smooth_line.vala" self->priv = live_chart_smooth_line_get_instance_private (self); #line 6 "../src/smooth_line.vala" self->priv->_region = NULL; #line 7 "../src/smooth_line.vala" _tmp0_ = live_chart_intersections_new (); #line 7 "../src/smooth_line.vala" self->intersections = _tmp0_; #line 783 "smooth_line.c" } static void live_chart_smooth_line_finalize (GObject * obj) { LiveChartSmoothLine * self; #line 4 "../src/smooth_line.vala" self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_SMOOTH_LINE, LiveChartSmoothLine); #line 6 "../src/smooth_line.vala" _live_chart_region_unref0 (self->priv->_region); #line 7 "../src/smooth_line.vala" _g_object_unref0 (self->intersections); #line 4 "../src/smooth_line.vala" G_OBJECT_CLASS (live_chart_smooth_line_parent_class)->finalize (obj); #line 798 "smooth_line.c" } static GType live_chart_smooth_line_get_type_once (void) { static const GTypeInfo g_define_type_info = { sizeof (LiveChartSmoothLineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_smooth_line_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartSmoothLine), 0, (GInstanceInitFunc) live_chart_smooth_line_instance_init, NULL }; GType live_chart_smooth_line_type_id; live_chart_smooth_line_type_id = g_type_register_static (LIVE_CHART_TYPE_SERIE_RENDERER, "LiveChartSmoothLine", &g_define_type_info, 0); LiveChartSmoothLine_private_offset = g_type_add_instance_private (live_chart_smooth_line_type_id, sizeof (LiveChartSmoothLinePrivate)); return live_chart_smooth_line_type_id; } GType live_chart_smooth_line_get_type (void) { static volatile gsize live_chart_smooth_line_type_id__once = 0; if (g_once_init_enter (&live_chart_smooth_line_type_id__once)) { GType live_chart_smooth_line_type_id; live_chart_smooth_line_type_id = live_chart_smooth_line_get_type_once (); g_once_init_leave (&live_chart_smooth_line_type_id__once, live_chart_smooth_line_type_id); } return live_chart_smooth_line_type_id__once; } static void _vala_live_chart_smooth_line_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { LiveChartSmoothLine * self; self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SMOOTH_LINE, LiveChartSmoothLine); #line 4 "../src/smooth_line.vala" switch (property_id) { #line 4 "../src/smooth_line.vala" case LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY: #line 4 "../src/smooth_line.vala" live_chart_value_set_region (value, live_chart_smooth_line_get_region (self)); #line 4 "../src/smooth_line.vala" break; #line 839 "smooth_line.c" default: #line 4 "../src/smooth_line.vala" G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); #line 4 "../src/smooth_line.vala" break; #line 845 "smooth_line.c" } } static void _vala_live_chart_smooth_line_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { LiveChartSmoothLine * self; self = G_TYPE_CHECK_INSTANCE_CAST (object, LIVE_CHART_TYPE_SMOOTH_LINE, LiveChartSmoothLine); #line 4 "../src/smooth_line.vala" switch (property_id) { #line 4 "../src/smooth_line.vala" case LIVE_CHART_SMOOTH_LINE_REGION_PROPERTY: #line 4 "../src/smooth_line.vala" live_chart_smooth_line_set_region (self, live_chart_value_get_region (value)); #line 4 "../src/smooth_line.vala" break; #line 865 "smooth_line.c" default: #line 4 "../src/smooth_line.vala" G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); #line 4 "../src/smooth_line.vala" break; #line 871 "smooth_line.c" } } static inline gpointer _vala_memdup2 (gconstpointer mem, gsize byte_size) { gpointer new_mem; if (mem && byte_size != 0) { new_mem = g_malloc (byte_size); memcpy (new_mem, mem, byte_size); } else { new_mem = NULL; } return new_mem; }