Add support for LdDiagramConnection to LdCanvas.
Heavy LdCanvas refactoring, some modifications to ld-types. It just wasn't possible for me to further work with an old, 2000 lines long file without shuffling everything around at the same time.
This commit is contained in:
parent
ee95916749
commit
1277b6eaaf
File diff suppressed because it is too large
Load Diff
|
@ -90,7 +90,7 @@ DEFINE_BOXED_TRIVIAL_FREE (LdPoint, ld_point)
|
||||||
* Compute the distance between two points.
|
* Compute the distance between two points.
|
||||||
*/
|
*/
|
||||||
gdouble
|
gdouble
|
||||||
ld_point_distance (LdPoint *self, gdouble x, gdouble y)
|
ld_point_distance (const LdPoint *self, gdouble x, gdouble y)
|
||||||
{
|
{
|
||||||
gdouble dx, dy;
|
gdouble dx, dy;
|
||||||
|
|
||||||
|
@ -291,22 +291,6 @@ DEFINE_BOXED_TRIVIAL_COPY (LdRectangle, ld_rectangle)
|
||||||
*/
|
*/
|
||||||
DEFINE_BOXED_TRIVIAL_FREE (LdRectangle, ld_rectangle)
|
DEFINE_BOXED_TRIVIAL_FREE (LdRectangle, ld_rectangle)
|
||||||
|
|
||||||
/**
|
|
||||||
* ld_rectangle_contains:
|
|
||||||
* @self: an #LdRectangle structure.
|
|
||||||
* @x: the X coordinate of the point to be checked.
|
|
||||||
* @y: the Y coordinate of the point to be checked.
|
|
||||||
*
|
|
||||||
* Return value: %TRUE if the rectangle contains the specified point.
|
|
||||||
*/
|
|
||||||
gboolean
|
|
||||||
ld_rectangle_contains (LdRectangle *self, gdouble x, gdouble y)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail (self != NULL, FALSE);
|
|
||||||
return (x >= self->x && x <= self->x + self->width
|
|
||||||
&& y >= self->y && y <= self->y + self->height);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ld_rectangle_intersects:
|
* ld_rectangle_intersects:
|
||||||
* @self: an #LdRectangle structure.
|
* @self: an #LdRectangle structure.
|
||||||
|
@ -315,7 +299,7 @@ ld_rectangle_contains (LdRectangle *self, gdouble x, gdouble y)
|
||||||
* Return value: %TRUE if the two rectangles intersect.
|
* Return value: %TRUE if the two rectangles intersect.
|
||||||
*/
|
*/
|
||||||
gboolean
|
gboolean
|
||||||
ld_rectangle_intersects (LdRectangle *self, LdRectangle *rect)
|
ld_rectangle_intersects (const LdRectangle *self, const LdRectangle *rect)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (self != NULL, FALSE);
|
g_return_val_if_fail (self != NULL, FALSE);
|
||||||
g_return_val_if_fail (rect != NULL, FALSE);
|
g_return_val_if_fail (rect != NULL, FALSE);
|
||||||
|
@ -326,6 +310,42 @@ ld_rectangle_intersects (LdRectangle *self, LdRectangle *rect)
|
||||||
|| self->y + self->height < rect->y);
|
|| self->y + self->height < rect->y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ld_rectangle_contains:
|
||||||
|
* @self: an #LdRectangle structure.
|
||||||
|
* @rect: an #LdRectangle to be checked for containment.
|
||||||
|
*
|
||||||
|
* Return value: %TRUE if @self fully contains @rect.
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
ld_rectangle_contains (const LdRectangle *self, const LdRectangle *rect)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (self != NULL, FALSE);
|
||||||
|
g_return_val_if_fail (rect != NULL, FALSE);
|
||||||
|
|
||||||
|
return (self->x <= rect->x
|
||||||
|
&& self->y <= rect->y
|
||||||
|
&& self->x + self->width >= rect->x + rect->width
|
||||||
|
&& self->y + self->height >= rect->y + rect->height);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ld_rectangle_contains_point:
|
||||||
|
* @self: an #LdRectangle structure.
|
||||||
|
* @point: the point to be checked.
|
||||||
|
*
|
||||||
|
* Return value: %TRUE if the rectangle contains the specified point.
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
ld_rectangle_contains_point (const LdRectangle *self, const LdPoint *point)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (self != NULL, FALSE);
|
||||||
|
g_return_val_if_fail (point != NULL, FALSE);
|
||||||
|
|
||||||
|
return (point->x >= self->x && point->x <= self->x + self->width
|
||||||
|
&& point->y >= self->y && point->y <= self->y + self->height);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ld_rectangle_extend:
|
* ld_rectangle_extend:
|
||||||
* @self: an #LdRectangle structure.
|
* @self: an #LdRectangle structure.
|
||||||
|
|
|
@ -39,7 +39,7 @@ GType ld_point_get_type (void) G_GNUC_CONST;
|
||||||
|
|
||||||
LdPoint *ld_point_copy (const LdPoint *self);
|
LdPoint *ld_point_copy (const LdPoint *self);
|
||||||
void ld_point_free (LdPoint *self);
|
void ld_point_free (LdPoint *self);
|
||||||
gdouble ld_point_distance (LdPoint *self, gdouble x, gdouble y);
|
gdouble ld_point_distance (const LdPoint *self, gdouble x, gdouble y);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -88,8 +88,12 @@ GType ld_rectangle_get_type (void) G_GNUC_CONST;
|
||||||
|
|
||||||
LdRectangle *ld_rectangle_copy (const LdRectangle *self);
|
LdRectangle *ld_rectangle_copy (const LdRectangle *self);
|
||||||
void ld_rectangle_free (LdRectangle *self);
|
void ld_rectangle_free (LdRectangle *self);
|
||||||
gboolean ld_rectangle_contains (LdRectangle *self, gdouble x, gdouble y);
|
gboolean ld_rectangle_intersects (const LdRectangle *self,
|
||||||
gboolean ld_rectangle_intersects (LdRectangle *self, LdRectangle *rect);
|
const LdRectangle *rect);
|
||||||
|
gboolean ld_rectangle_contains (const LdRectangle *self,
|
||||||
|
const LdRectangle *rect);
|
||||||
|
gboolean ld_rectangle_contains_point (const LdRectangle *self,
|
||||||
|
const LdPoint *point);
|
||||||
void ld_rectangle_extend (LdRectangle *self, gdouble border);
|
void ld_rectangle_extend (LdRectangle *self, gdouble border);
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue