727 lines
26 KiB
C
727 lines
26 KiB
C
/* intersectors.c generated by valac 0.56.0, the Vala compiler
|
|
* generated from intersectors.vala, do not modify */
|
|
|
|
#include "livechart.h"
|
|
#include <glib-object.h>
|
|
#include <glib.h>
|
|
#include <float.h>
|
|
#include <math.h>
|
|
#include <gee.h>
|
|
#include <gobject/gvaluecollector.h>
|
|
|
|
#define _live_chart_region_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_region_unref (var), NULL)))
|
|
#define _live_chart_config_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_config_unref (var), NULL)))
|
|
#define _live_chart_bezier_curve_free0(var) ((var == NULL) ? NULL : (var = (live_chart_bezier_curve_free (var), NULL)))
|
|
typedef struct _Block2Data Block2Data;
|
|
#define _live_chart_bezier_intersector_unref0(var) ((var == NULL) ? NULL : (var = (live_chart_bezier_intersector_unref (var), NULL)))
|
|
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
|
|
typedef struct _LiveChartParamSpecBezierIntersector LiveChartParamSpecBezierIntersector;
|
|
|
|
struct _LiveChartBezierIntersectorPrivate {
|
|
LiveChartRegion* region;
|
|
LiveChartConfig* config;
|
|
};
|
|
|
|
struct _Block2Data {
|
|
int _ref_count_;
|
|
LiveChartBezierIntersector* self;
|
|
LiveChartBezierCurve* path;
|
|
};
|
|
|
|
struct _LiveChartParamSpecBezierIntersector {
|
|
GParamSpec parent_instance;
|
|
};
|
|
|
|
static gint LiveChartBezierIntersector_private_offset;
|
|
static gpointer live_chart_bezier_intersector_parent_class = NULL;
|
|
static LiveChartIntersectorIface * live_chart_bezier_intersector_live_chart_intersector_parent_iface = NULL;
|
|
|
|
static GType live_chart_intersector_get_type_once (void);
|
|
static void live_chart_bezier_intersector_real_intersect (LiveChartIntersector* base,
|
|
LiveChartIntersections* intersections,
|
|
LiveChartPoint* previous,
|
|
LiveChartPoint* current,
|
|
LiveChartBezierCurve* path);
|
|
static Block2Data* block2_data_ref (Block2Data* _data2_);
|
|
static void block2_data_unref (void * _userdata_);
|
|
static LiveChartCoord* __lambda12_ (Block2Data* _data2_,
|
|
gdouble value);
|
|
static LiveChartCoord* live_chart_bezier_intersector_intersect_at (LiveChartBezierIntersector* self,
|
|
LiveChartConfig* config,
|
|
LiveChartBezierCurve* curve,
|
|
gdouble at_value);
|
|
static LiveChartCoord* ___lambda12__live_chart_get_intersection (gdouble at_value,
|
|
gpointer self);
|
|
static void live_chart_bezier_intersector_create_intersection_segment_at (LiveChartBezierIntersector* self,
|
|
LiveChartConfig* config,
|
|
gdouble at_y,
|
|
LiveChartSegment* result);
|
|
static void live_chart_bezier_intersector_finalize (LiveChartBezierIntersector * obj);
|
|
static GType live_chart_bezier_intersector_get_type_once (void);
|
|
|
|
void
|
|
live_chart_intersector_intersect (LiveChartIntersector* self,
|
|
LiveChartIntersections* intersections,
|
|
LiveChartPoint* previous,
|
|
LiveChartPoint* current,
|
|
gconstpointer path)
|
|
{
|
|
LiveChartIntersectorIface* _iface_;
|
|
#line 3 "../src/intersectors.vala"
|
|
g_return_if_fail (self != NULL);
|
|
#line 3 "../src/intersectors.vala"
|
|
_iface_ = LIVE_CHART_INTERSECTOR_GET_INTERFACE (self);
|
|
#line 3 "../src/intersectors.vala"
|
|
if (_iface_->intersect) {
|
|
#line 3 "../src/intersectors.vala"
|
|
_iface_->intersect (self, intersections, previous, current, path);
|
|
#line 79 "intersectors.c"
|
|
}
|
|
}
|
|
|
|
static void
|
|
live_chart_intersector_default_init (LiveChartIntersectorIface * iface,
|
|
gpointer iface_data)
|
|
{
|
|
}
|
|
|
|
static GType
|
|
live_chart_intersector_get_type_once (void)
|
|
{
|
|
static const GTypeInfo g_define_type_info = { sizeof (LiveChartIntersectorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_intersector_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
|
|
GType live_chart_intersector_type_id;
|
|
live_chart_intersector_type_id = g_type_register_static (G_TYPE_INTERFACE, "LiveChartIntersector", &g_define_type_info, 0);
|
|
return live_chart_intersector_type_id;
|
|
}
|
|
|
|
GType
|
|
live_chart_intersector_get_type (void)
|
|
{
|
|
static volatile gsize live_chart_intersector_type_id__once = 0;
|
|
if (g_once_init_enter (&live_chart_intersector_type_id__once)) {
|
|
GType live_chart_intersector_type_id;
|
|
live_chart_intersector_type_id = live_chart_intersector_get_type_once ();
|
|
g_once_init_leave (&live_chart_intersector_type_id__once, live_chart_intersector_type_id);
|
|
}
|
|
return live_chart_intersector_type_id__once;
|
|
}
|
|
|
|
static inline gpointer
|
|
live_chart_bezier_intersector_get_instance_private (LiveChartBezierIntersector* self)
|
|
{
|
|
return G_STRUCT_MEMBER_P (self, LiveChartBezierIntersector_private_offset);
|
|
}
|
|
|
|
static gpointer
|
|
_live_chart_region_ref0 (gpointer self)
|
|
{
|
|
#line 11 "../src/intersectors.vala"
|
|
return self ? live_chart_region_ref (self) : NULL;
|
|
#line 121 "intersectors.c"
|
|
}
|
|
|
|
static gpointer
|
|
_live_chart_config_ref0 (gpointer self)
|
|
{
|
|
#line 12 "../src/intersectors.vala"
|
|
return self ? live_chart_config_ref (self) : NULL;
|
|
#line 129 "intersectors.c"
|
|
}
|
|
|
|
LiveChartBezierIntersector*
|
|
live_chart_bezier_intersector_construct (GType object_type,
|
|
LiveChartRegion* region,
|
|
LiveChartConfig* config)
|
|
{
|
|
LiveChartBezierIntersector* self = NULL;
|
|
LiveChartRegion* _tmp0_;
|
|
LiveChartConfig* _tmp1_;
|
|
#line 10 "../src/intersectors.vala"
|
|
g_return_val_if_fail (region != NULL, NULL);
|
|
#line 10 "../src/intersectors.vala"
|
|
g_return_val_if_fail (config != NULL, NULL);
|
|
#line 10 "../src/intersectors.vala"
|
|
self = (LiveChartBezierIntersector*) g_type_create_instance (object_type);
|
|
#line 11 "../src/intersectors.vala"
|
|
_tmp0_ = _live_chart_region_ref0 (region);
|
|
#line 11 "../src/intersectors.vala"
|
|
_live_chart_region_unref0 (self->priv->region);
|
|
#line 11 "../src/intersectors.vala"
|
|
self->priv->region = _tmp0_;
|
|
#line 12 "../src/intersectors.vala"
|
|
_tmp1_ = _live_chart_config_ref0 (config);
|
|
#line 12 "../src/intersectors.vala"
|
|
_live_chart_config_unref0 (self->priv->config);
|
|
#line 12 "../src/intersectors.vala"
|
|
self->priv->config = _tmp1_;
|
|
#line 10 "../src/intersectors.vala"
|
|
return self;
|
|
#line 160 "intersectors.c"
|
|
}
|
|
|
|
LiveChartBezierIntersector*
|
|
live_chart_bezier_intersector_new (LiveChartRegion* region,
|
|
LiveChartConfig* config)
|
|
{
|
|
#line 10 "../src/intersectors.vala"
|
|
return live_chart_bezier_intersector_construct (LIVE_CHART_TYPE_BEZIER_INTERSECTOR, region, config);
|
|
#line 169 "intersectors.c"
|
|
}
|
|
|
|
static gpointer
|
|
_live_chart_bezier_curve_dup0 (gpointer self)
|
|
{
|
|
#line 15 "../src/intersectors.vala"
|
|
return self ? live_chart_bezier_curve_dup (self) : NULL;
|
|
#line 177 "intersectors.c"
|
|
}
|
|
|
|
static Block2Data*
|
|
block2_data_ref (Block2Data* _data2_)
|
|
{
|
|
#line 15 "../src/intersectors.vala"
|
|
g_atomic_int_inc (&_data2_->_ref_count_);
|
|
#line 15 "../src/intersectors.vala"
|
|
return _data2_;
|
|
#line 187 "intersectors.c"
|
|
}
|
|
|
|
static void
|
|
block2_data_unref (void * _userdata_)
|
|
{
|
|
Block2Data* _data2_;
|
|
_data2_ = (Block2Data*) _userdata_;
|
|
#line 15 "../src/intersectors.vala"
|
|
if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) {
|
|
#line 197 "intersectors.c"
|
|
LiveChartBezierIntersector* self;
|
|
#line 15 "../src/intersectors.vala"
|
|
self = _data2_->self;
|
|
#line 15 "../src/intersectors.vala"
|
|
_live_chart_bezier_curve_free0 (_data2_->path);
|
|
#line 15 "../src/intersectors.vala"
|
|
_live_chart_bezier_intersector_unref0 (self);
|
|
#line 15 "../src/intersectors.vala"
|
|
g_slice_free (Block2Data, _data2_);
|
|
#line 207 "intersectors.c"
|
|
}
|
|
}
|
|
|
|
static LiveChartCoord*
|
|
__lambda12_ (Block2Data* _data2_,
|
|
gdouble value)
|
|
{
|
|
LiveChartBezierIntersector* self;
|
|
LiveChartConfig* _tmp0_;
|
|
LiveChartBezierCurve _tmp1_;
|
|
LiveChartCoord* _tmp2_;
|
|
LiveChartCoord* result;
|
|
#line 16 "../src/intersectors.vala"
|
|
self = _data2_->self;
|
|
#line 17 "../src/intersectors.vala"
|
|
_tmp0_ = self->priv->config;
|
|
#line 17 "../src/intersectors.vala"
|
|
_tmp1_ = *_data2_->path;
|
|
#line 17 "../src/intersectors.vala"
|
|
_tmp2_ = live_chart_bezier_intersector_intersect_at (self, _tmp0_, &_tmp1_, value);
|
|
#line 17 "../src/intersectors.vala"
|
|
result = _tmp2_;
|
|
#line 17 "../src/intersectors.vala"
|
|
return result;
|
|
#line 232 "intersectors.c"
|
|
}
|
|
|
|
static LiveChartCoord*
|
|
___lambda12__live_chart_get_intersection (gdouble at_value,
|
|
gpointer self)
|
|
{
|
|
LiveChartCoord* result;
|
|
result = __lambda12_ (self, at_value);
|
|
#line 16 "../src/intersectors.vala"
|
|
return result;
|
|
#line 243 "intersectors.c"
|
|
}
|
|
|
|
static void
|
|
live_chart_bezier_intersector_real_intersect (LiveChartIntersector* base,
|
|
LiveChartIntersections* intersections,
|
|
LiveChartPoint* previous,
|
|
LiveChartPoint* current,
|
|
LiveChartBezierCurve* path)
|
|
{
|
|
LiveChartBezierIntersector * self;
|
|
Block2Data* _data2_;
|
|
LiveChartBezierCurve* _tmp0_;
|
|
LiveChartRegion* _tmp1_;
|
|
LiveChartPoint _tmp2_;
|
|
LiveChartPoint _tmp3_;
|
|
#line 15 "../src/intersectors.vala"
|
|
self = (LiveChartBezierIntersector*) base;
|
|
#line 15 "../src/intersectors.vala"
|
|
g_return_if_fail (intersections != NULL);
|
|
#line 15 "../src/intersectors.vala"
|
|
g_return_if_fail (previous != NULL);
|
|
#line 15 "../src/intersectors.vala"
|
|
g_return_if_fail (current != NULL);
|
|
#line 15 "../src/intersectors.vala"
|
|
_data2_ = g_slice_new0 (Block2Data);
|
|
#line 15 "../src/intersectors.vala"
|
|
_data2_->_ref_count_ = 1;
|
|
#line 15 "../src/intersectors.vala"
|
|
_data2_->self = live_chart_bezier_intersector_ref (self);
|
|
#line 15 "../src/intersectors.vala"
|
|
_tmp0_ = _live_chart_bezier_curve_dup0 (path);
|
|
#line 15 "../src/intersectors.vala"
|
|
_live_chart_bezier_curve_free0 (_data2_->path);
|
|
#line 15 "../src/intersectors.vala"
|
|
_data2_->path = _tmp0_;
|
|
#line 16 "../src/intersectors.vala"
|
|
_tmp1_ = self->priv->region;
|
|
#line 16 "../src/intersectors.vala"
|
|
_tmp2_ = *previous;
|
|
#line 16 "../src/intersectors.vala"
|
|
_tmp3_ = *current;
|
|
#line 16 "../src/intersectors.vala"
|
|
live_chart_region_handle (_tmp1_, intersections, &_tmp2_, &_tmp3_, ___lambda12__live_chart_get_intersection, _data2_);
|
|
#line 15 "../src/intersectors.vala"
|
|
block2_data_unref (_data2_);
|
|
#line 15 "../src/intersectors.vala"
|
|
_data2_ = NULL;
|
|
#line 291 "intersectors.c"
|
|
}
|
|
|
|
static LiveChartCoord*
|
|
live_chart_bezier_intersector_intersect_at (LiveChartBezierIntersector* self,
|
|
LiveChartConfig* config,
|
|
LiveChartBezierCurve* curve,
|
|
gdouble at_value)
|
|
{
|
|
LiveChartSegment intersection_segment = {0};
|
|
LiveChartSegment _tmp0_ = {0};
|
|
GeeList* intersections = NULL;
|
|
LiveChartSegment _tmp1_;
|
|
LiveChartBezierCurve _tmp2_;
|
|
GeeList* _tmp3_;
|
|
GeeList* _tmp4_;
|
|
gint _tmp5_;
|
|
gint _tmp6_;
|
|
LiveChartCoord* result;
|
|
#line 21 "../src/intersectors.vala"
|
|
g_return_val_if_fail (self != NULL, NULL);
|
|
#line 21 "../src/intersectors.vala"
|
|
g_return_val_if_fail (config != NULL, NULL);
|
|
#line 21 "../src/intersectors.vala"
|
|
g_return_val_if_fail (curve != NULL, NULL);
|
|
#line 22 "../src/intersectors.vala"
|
|
live_chart_bezier_intersector_create_intersection_segment_at (self, config, at_value, &_tmp0_);
|
|
#line 22 "../src/intersectors.vala"
|
|
intersection_segment = _tmp0_;
|
|
#line 23 "../src/intersectors.vala"
|
|
_tmp1_ = intersection_segment;
|
|
#line 23 "../src/intersectors.vala"
|
|
_tmp2_ = *curve;
|
|
#line 23 "../src/intersectors.vala"
|
|
_tmp3_ = live_chart_find_intersections_between (&_tmp1_, &_tmp2_);
|
|
#line 23 "../src/intersectors.vala"
|
|
intersections = _tmp3_;
|
|
#line 24 "../src/intersectors.vala"
|
|
_tmp4_ = intersections;
|
|
#line 24 "../src/intersectors.vala"
|
|
_tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_);
|
|
#line 24 "../src/intersectors.vala"
|
|
_tmp6_ = _tmp5_;
|
|
#line 24 "../src/intersectors.vala"
|
|
if (_tmp6_ > 0) {
|
|
#line 336 "intersectors.c"
|
|
GeeList* _tmp7_;
|
|
gpointer _tmp8_;
|
|
#line 25 "../src/intersectors.vala"
|
|
_tmp7_ = intersections;
|
|
#line 25 "../src/intersectors.vala"
|
|
_tmp8_ = gee_list_first (_tmp7_);
|
|
#line 25 "../src/intersectors.vala"
|
|
result = (LiveChartCoord*) _tmp8_;
|
|
#line 25 "../src/intersectors.vala"
|
|
_g_object_unref0 (intersections);
|
|
#line 25 "../src/intersectors.vala"
|
|
return result;
|
|
#line 349 "intersectors.c"
|
|
}
|
|
#line 27 "../src/intersectors.vala"
|
|
result = NULL;
|
|
#line 27 "../src/intersectors.vala"
|
|
_g_object_unref0 (intersections);
|
|
#line 27 "../src/intersectors.vala"
|
|
return result;
|
|
#line 357 "intersectors.c"
|
|
}
|
|
|
|
static void
|
|
live_chart_bezier_intersector_create_intersection_segment_at (LiveChartBezierIntersector* self,
|
|
LiveChartConfig* config,
|
|
gdouble at_y,
|
|
LiveChartSegment* result)
|
|
{
|
|
LiveChartBoundaries boundaries = {0};
|
|
LiveChartBoundaries _tmp0_ = {0};
|
|
gdouble y = 0.0;
|
|
LiveChartBoundaries _tmp1_;
|
|
LiveChartBoundary _tmp2_;
|
|
LiveChartYAxis* _tmp3_;
|
|
LiveChartBoundaries _tmp4_;
|
|
LiveChartBoundary _tmp5_;
|
|
LiveChartCoord _tmp6_ = {0};
|
|
LiveChartBoundaries _tmp7_;
|
|
LiveChartBoundary _tmp8_;
|
|
LiveChartCoord _tmp9_ = {0};
|
|
LiveChartSegment _tmp10_ = {0};
|
|
#line 30 "../src/intersectors.vala"
|
|
g_return_if_fail (self != NULL);
|
|
#line 30 "../src/intersectors.vala"
|
|
g_return_if_fail (config != NULL);
|
|
#line 31 "../src/intersectors.vala"
|
|
live_chart_config_boundaries (config, &_tmp0_);
|
|
#line 31 "../src/intersectors.vala"
|
|
boundaries = _tmp0_;
|
|
#line 32 "../src/intersectors.vala"
|
|
_tmp1_ = boundaries;
|
|
#line 32 "../src/intersectors.vala"
|
|
_tmp2_ = _tmp1_.y;
|
|
#line 32 "../src/intersectors.vala"
|
|
_tmp3_ = config->y_axis;
|
|
#line 32 "../src/intersectors.vala"
|
|
y = _tmp2_.max - (at_y * live_chart_yaxis_get_ratio (_tmp3_));
|
|
#line 33 "../src/intersectors.vala"
|
|
_tmp4_ = boundaries;
|
|
#line 33 "../src/intersectors.vala"
|
|
_tmp5_ = _tmp4_.x;
|
|
#line 33 "../src/intersectors.vala"
|
|
_tmp6_.x = (gdouble) _tmp5_.min;
|
|
#line 33 "../src/intersectors.vala"
|
|
_tmp6_.y = y;
|
|
#line 33 "../src/intersectors.vala"
|
|
_tmp7_ = boundaries;
|
|
#line 33 "../src/intersectors.vala"
|
|
_tmp8_ = _tmp7_.x;
|
|
#line 33 "../src/intersectors.vala"
|
|
_tmp9_.x = (gdouble) _tmp8_.max;
|
|
#line 33 "../src/intersectors.vala"
|
|
_tmp9_.y = y;
|
|
#line 33 "../src/intersectors.vala"
|
|
_tmp10_.from = _tmp6_;
|
|
#line 33 "../src/intersectors.vala"
|
|
_tmp10_.to = _tmp9_;
|
|
#line 33 "../src/intersectors.vala"
|
|
*result = _tmp10_;
|
|
#line 33 "../src/intersectors.vala"
|
|
return;
|
|
#line 419 "intersectors.c"
|
|
}
|
|
|
|
static void
|
|
live_chart_value_bezier_intersector_init (GValue* value)
|
|
{
|
|
#line 6 "../src/intersectors.vala"
|
|
value->data[0].v_pointer = NULL;
|
|
#line 427 "intersectors.c"
|
|
}
|
|
|
|
static void
|
|
live_chart_value_bezier_intersector_free_value (GValue* value)
|
|
{
|
|
#line 6 "../src/intersectors.vala"
|
|
if (value->data[0].v_pointer) {
|
|
#line 6 "../src/intersectors.vala"
|
|
live_chart_bezier_intersector_unref (value->data[0].v_pointer);
|
|
#line 437 "intersectors.c"
|
|
}
|
|
}
|
|
|
|
static void
|
|
live_chart_value_bezier_intersector_copy_value (const GValue* src_value,
|
|
GValue* dest_value)
|
|
{
|
|
#line 6 "../src/intersectors.vala"
|
|
if (src_value->data[0].v_pointer) {
|
|
#line 6 "../src/intersectors.vala"
|
|
dest_value->data[0].v_pointer = live_chart_bezier_intersector_ref (src_value->data[0].v_pointer);
|
|
#line 449 "intersectors.c"
|
|
} else {
|
|
#line 6 "../src/intersectors.vala"
|
|
dest_value->data[0].v_pointer = NULL;
|
|
#line 453 "intersectors.c"
|
|
}
|
|
}
|
|
|
|
static gpointer
|
|
live_chart_value_bezier_intersector_peek_pointer (const GValue* value)
|
|
{
|
|
#line 6 "../src/intersectors.vala"
|
|
return value->data[0].v_pointer;
|
|
#line 462 "intersectors.c"
|
|
}
|
|
|
|
static gchar*
|
|
live_chart_value_bezier_intersector_collect_value (GValue* value,
|
|
guint n_collect_values,
|
|
GTypeCValue* collect_values,
|
|
guint collect_flags)
|
|
{
|
|
#line 6 "../src/intersectors.vala"
|
|
if (collect_values[0].v_pointer) {
|
|
#line 473 "intersectors.c"
|
|
LiveChartBezierIntersector * object;
|
|
object = collect_values[0].v_pointer;
|
|
#line 6 "../src/intersectors.vala"
|
|
if (object->parent_instance.g_class == NULL) {
|
|
#line 6 "../src/intersectors.vala"
|
|
return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
|
|
#line 480 "intersectors.c"
|
|
} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
|
|
#line 6 "../src/intersectors.vala"
|
|
return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
|
|
#line 484 "intersectors.c"
|
|
}
|
|
#line 6 "../src/intersectors.vala"
|
|
value->data[0].v_pointer = live_chart_bezier_intersector_ref (object);
|
|
#line 488 "intersectors.c"
|
|
} else {
|
|
#line 6 "../src/intersectors.vala"
|
|
value->data[0].v_pointer = NULL;
|
|
#line 492 "intersectors.c"
|
|
}
|
|
#line 6 "../src/intersectors.vala"
|
|
return NULL;
|
|
#line 496 "intersectors.c"
|
|
}
|
|
|
|
static gchar*
|
|
live_chart_value_bezier_intersector_lcopy_value (const GValue* value,
|
|
guint n_collect_values,
|
|
GTypeCValue* collect_values,
|
|
guint collect_flags)
|
|
{
|
|
LiveChartBezierIntersector ** object_p;
|
|
object_p = collect_values[0].v_pointer;
|
|
#line 6 "../src/intersectors.vala"
|
|
if (!object_p) {
|
|
#line 6 "../src/intersectors.vala"
|
|
return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
|
|
#line 511 "intersectors.c"
|
|
}
|
|
#line 6 "../src/intersectors.vala"
|
|
if (!value->data[0].v_pointer) {
|
|
#line 6 "../src/intersectors.vala"
|
|
*object_p = NULL;
|
|
#line 517 "intersectors.c"
|
|
} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
|
|
#line 6 "../src/intersectors.vala"
|
|
*object_p = value->data[0].v_pointer;
|
|
#line 521 "intersectors.c"
|
|
} else {
|
|
#line 6 "../src/intersectors.vala"
|
|
*object_p = live_chart_bezier_intersector_ref (value->data[0].v_pointer);
|
|
#line 525 "intersectors.c"
|
|
}
|
|
#line 6 "../src/intersectors.vala"
|
|
return NULL;
|
|
#line 529 "intersectors.c"
|
|
}
|
|
|
|
GParamSpec*
|
|
live_chart_param_spec_bezier_intersector (const gchar* name,
|
|
const gchar* nick,
|
|
const gchar* blurb,
|
|
GType object_type,
|
|
GParamFlags flags)
|
|
{
|
|
LiveChartParamSpecBezierIntersector* spec;
|
|
#line 6 "../src/intersectors.vala"
|
|
g_return_val_if_fail (g_type_is_a (object_type, LIVE_CHART_TYPE_BEZIER_INTERSECTOR), NULL);
|
|
#line 6 "../src/intersectors.vala"
|
|
spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
|
|
#line 6 "../src/intersectors.vala"
|
|
G_PARAM_SPEC (spec)->value_type = object_type;
|
|
#line 6 "../src/intersectors.vala"
|
|
return G_PARAM_SPEC (spec);
|
|
#line 548 "intersectors.c"
|
|
}
|
|
|
|
gpointer
|
|
live_chart_value_get_bezier_intersector (const GValue* value)
|
|
{
|
|
#line 6 "../src/intersectors.vala"
|
|
g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_BEZIER_INTERSECTOR), NULL);
|
|
#line 6 "../src/intersectors.vala"
|
|
return value->data[0].v_pointer;
|
|
#line 558 "intersectors.c"
|
|
}
|
|
|
|
void
|
|
live_chart_value_set_bezier_intersector (GValue* value,
|
|
gpointer v_object)
|
|
{
|
|
LiveChartBezierIntersector * old;
|
|
#line 6 "../src/intersectors.vala"
|
|
g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_BEZIER_INTERSECTOR));
|
|
#line 6 "../src/intersectors.vala"
|
|
old = value->data[0].v_pointer;
|
|
#line 6 "../src/intersectors.vala"
|
|
if (v_object) {
|
|
#line 6 "../src/intersectors.vala"
|
|
g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_BEZIER_INTERSECTOR));
|
|
#line 6 "../src/intersectors.vala"
|
|
g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
|
|
#line 6 "../src/intersectors.vala"
|
|
value->data[0].v_pointer = v_object;
|
|
#line 6 "../src/intersectors.vala"
|
|
live_chart_bezier_intersector_ref (value->data[0].v_pointer);
|
|
#line 580 "intersectors.c"
|
|
} else {
|
|
#line 6 "../src/intersectors.vala"
|
|
value->data[0].v_pointer = NULL;
|
|
#line 584 "intersectors.c"
|
|
}
|
|
#line 6 "../src/intersectors.vala"
|
|
if (old) {
|
|
#line 6 "../src/intersectors.vala"
|
|
live_chart_bezier_intersector_unref (old);
|
|
#line 590 "intersectors.c"
|
|
}
|
|
}
|
|
|
|
void
|
|
live_chart_value_take_bezier_intersector (GValue* value,
|
|
gpointer v_object)
|
|
{
|
|
LiveChartBezierIntersector * old;
|
|
#line 6 "../src/intersectors.vala"
|
|
g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIVE_CHART_TYPE_BEZIER_INTERSECTOR));
|
|
#line 6 "../src/intersectors.vala"
|
|
old = value->data[0].v_pointer;
|
|
#line 6 "../src/intersectors.vala"
|
|
if (v_object) {
|
|
#line 6 "../src/intersectors.vala"
|
|
g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIVE_CHART_TYPE_BEZIER_INTERSECTOR));
|
|
#line 6 "../src/intersectors.vala"
|
|
g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
|
|
#line 6 "../src/intersectors.vala"
|
|
value->data[0].v_pointer = v_object;
|
|
#line 611 "intersectors.c"
|
|
} else {
|
|
#line 6 "../src/intersectors.vala"
|
|
value->data[0].v_pointer = NULL;
|
|
#line 615 "intersectors.c"
|
|
}
|
|
#line 6 "../src/intersectors.vala"
|
|
if (old) {
|
|
#line 6 "../src/intersectors.vala"
|
|
live_chart_bezier_intersector_unref (old);
|
|
#line 621 "intersectors.c"
|
|
}
|
|
}
|
|
|
|
static void
|
|
live_chart_bezier_intersector_class_init (LiveChartBezierIntersectorClass * klass,
|
|
gpointer klass_data)
|
|
{
|
|
#line 6 "../src/intersectors.vala"
|
|
live_chart_bezier_intersector_parent_class = g_type_class_peek_parent (klass);
|
|
#line 6 "../src/intersectors.vala"
|
|
((LiveChartBezierIntersectorClass *) klass)->finalize = live_chart_bezier_intersector_finalize;
|
|
#line 6 "../src/intersectors.vala"
|
|
g_type_class_adjust_private_offset (klass, &LiveChartBezierIntersector_private_offset);
|
|
#line 635 "intersectors.c"
|
|
}
|
|
|
|
static void
|
|
live_chart_bezier_intersector_live_chart_intersector_interface_init (LiveChartIntersectorIface * iface,
|
|
gpointer iface_data)
|
|
{
|
|
#line 6 "../src/intersectors.vala"
|
|
live_chart_bezier_intersector_live_chart_intersector_parent_iface = g_type_interface_peek_parent (iface);
|
|
#line 6 "../src/intersectors.vala"
|
|
iface->intersect = (void (*) (LiveChartIntersector*, LiveChartIntersections*, LiveChartPoint*, LiveChartPoint*, gconstpointer)) live_chart_bezier_intersector_real_intersect;
|
|
#line 646 "intersectors.c"
|
|
}
|
|
|
|
static void
|
|
live_chart_bezier_intersector_instance_init (LiveChartBezierIntersector * self,
|
|
gpointer klass)
|
|
{
|
|
#line 6 "../src/intersectors.vala"
|
|
self->priv = live_chart_bezier_intersector_get_instance_private (self);
|
|
#line 6 "../src/intersectors.vala"
|
|
self->ref_count = 1;
|
|
#line 657 "intersectors.c"
|
|
}
|
|
|
|
static void
|
|
live_chart_bezier_intersector_finalize (LiveChartBezierIntersector * obj)
|
|
{
|
|
LiveChartBezierIntersector * self;
|
|
#line 6 "../src/intersectors.vala"
|
|
self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIVE_CHART_TYPE_BEZIER_INTERSECTOR, LiveChartBezierIntersector);
|
|
#line 6 "../src/intersectors.vala"
|
|
g_signal_handlers_destroy (self);
|
|
#line 7 "../src/intersectors.vala"
|
|
_live_chart_region_unref0 (self->priv->region);
|
|
#line 8 "../src/intersectors.vala"
|
|
_live_chart_config_unref0 (self->priv->config);
|
|
#line 672 "intersectors.c"
|
|
}
|
|
|
|
static GType
|
|
live_chart_bezier_intersector_get_type_once (void)
|
|
{
|
|
static const GTypeValueTable g_define_type_value_table = { live_chart_value_bezier_intersector_init, live_chart_value_bezier_intersector_free_value, live_chart_value_bezier_intersector_copy_value, live_chart_value_bezier_intersector_peek_pointer, "p", live_chart_value_bezier_intersector_collect_value, "p", live_chart_value_bezier_intersector_lcopy_value };
|
|
static const GTypeInfo g_define_type_info = { sizeof (LiveChartBezierIntersectorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) live_chart_bezier_intersector_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LiveChartBezierIntersector), 0, (GInstanceInitFunc) live_chart_bezier_intersector_instance_init, &g_define_type_value_table };
|
|
static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
|
|
static const GInterfaceInfo live_chart_intersector_info = { (GInterfaceInitFunc) live_chart_bezier_intersector_live_chart_intersector_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
|
|
GType live_chart_bezier_intersector_type_id;
|
|
live_chart_bezier_intersector_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LiveChartBezierIntersector", &g_define_type_info, &g_define_type_fundamental_info, 0);
|
|
g_type_add_interface_static (live_chart_bezier_intersector_type_id, LIVE_CHART_TYPE_INTERSECTOR, &live_chart_intersector_info);
|
|
LiveChartBezierIntersector_private_offset = g_type_add_instance_private (live_chart_bezier_intersector_type_id, sizeof (LiveChartBezierIntersectorPrivate));
|
|
return live_chart_bezier_intersector_type_id;
|
|
}
|
|
|
|
GType
|
|
live_chart_bezier_intersector_get_type (void)
|
|
{
|
|
static volatile gsize live_chart_bezier_intersector_type_id__once = 0;
|
|
if (g_once_init_enter (&live_chart_bezier_intersector_type_id__once)) {
|
|
GType live_chart_bezier_intersector_type_id;
|
|
live_chart_bezier_intersector_type_id = live_chart_bezier_intersector_get_type_once ();
|
|
g_once_init_leave (&live_chart_bezier_intersector_type_id__once, live_chart_bezier_intersector_type_id);
|
|
}
|
|
return live_chart_bezier_intersector_type_id__once;
|
|
}
|
|
|
|
gpointer
|
|
live_chart_bezier_intersector_ref (gpointer instance)
|
|
{
|
|
LiveChartBezierIntersector * self;
|
|
self = instance;
|
|
#line 6 "../src/intersectors.vala"
|
|
g_atomic_int_inc (&self->ref_count);
|
|
#line 6 "../src/intersectors.vala"
|
|
return instance;
|
|
#line 710 "intersectors.c"
|
|
}
|
|
|
|
void
|
|
live_chart_bezier_intersector_unref (gpointer instance)
|
|
{
|
|
LiveChartBezierIntersector * self;
|
|
self = instance;
|
|
#line 6 "../src/intersectors.vala"
|
|
if (g_atomic_int_dec_and_test (&self->ref_count)) {
|
|
#line 6 "../src/intersectors.vala"
|
|
LIVE_CHART_BEZIER_INTERSECTOR_GET_CLASS (self)->finalize (self);
|
|
#line 6 "../src/intersectors.vala"
|
|
g_type_free_instance ((GTypeInstance *) self);
|
|
#line 724 "intersectors.c"
|
|
}
|
|
}
|
|
|