<-- Back to AG_Intro.3


#include <agar/math.h>


The M_Rectangle2 structure describes a rectangle in R2 in terms of four points:
typedef struct m_rectangle2 {
	M_Vector2 a, b, c, d;
} M_Rectangle2;

Similarly, M_Rectangle3 describes a rectangle in R3:
typedef struct m_rectangle3 {
	M_Vector3 a, b, c, d;
} M_Rectangle3;


M_Rectangle2 M_RectangleFromLines2 (M_Line2 L1, M_Line2 L2)

M_Rectangle3 M_RectangleFromLines3 (M_Line2 L1, M_Line2 L2, M_Line2 L3)

M_Rectangle2 M_RectangleFromPts2 (M_Vector2 a, M_Vector2 b)

M_Rectangle3 M_RectangleFromPts3 (M_Vector3 a, M_Vector3 b, M_Vector3 c)

M_Rectangle2 M_RectangleRead2 (AG_DataSource *ds)

M_Rectangle3 M_RectangleRead3 (AG_DataSource *ds)

void M_RectangleWrite2 (AG_DataSource *ds, M_Rectangle2 *R)

void M_RectangleWrite3 (AG_DataSource *ds, M_Rectangle3 *R)

M_Rectangle2 M_RECTANGLE2_INITIALIZER (M_Vector2 a, M_Vector2 b, M_Vector2 c)

M_Rectangle3 M_RECTANGLE3_INITIALIZER (M_Vector3 a, M_Vector3 b, M_Vector3 c)

The functions M_RectangleFromLines2() and M_RectangleFromLines3() return an M_Rectangle2 or M_Rectangle3 describing a rectangle in terms of two or three lines.

M_RectangleFromPts2() and M_RectangleFromPts3() return a rectangle in terms of two or three points.

The M_RectangleRead[23]() and M_RectangleWrite[23]() functions read or write a rectangle structure from/to an AG_DataSource(3).

The macros M_RECTANGLE2_INITIALIZER() and M_RECTANGLE3_INITIALIZER() expand to static initializers for M_Rectangle2 and M_Rectangle3, respectively.


int M_PointInRectangle2 (M_Rectangle2 R, M_Vector2 p)

M_Real M_RectangleWidth2 (M_Rectangle2 R)

M_Real M_RectangleWidth2v (const M_Rectangle2 *R)

M_Real M_RectangleHeight2 (M_Rectangle2 R)

M_Real M_RectangleHeight2v (const M_Rectangle2 *R)

M_Real M_RectangleWidth3 (M_Rectangle3 R)

M_Real M_RectangleWidth3v (const M_Rectangle3 *R)

M_Real M_RectangleHeight3 (M_Rectangle3 R)

M_Real M_RectangleHeight3v (const M_Rectangle3 *R)

The M_PointInRectangle2() routine tests whether point p lies inside the rectangle R and returns 1 if it does, otherwise 0.

The M_RectangleWidth[23]() and M_RectangleHeight[23]() routines return the width and height of the rectangle.


AG_DataSource(3), AG_Intro(3), M_Circle(3), M_Geometry(3), M_Plane(3), M_Polygon(3), M_Rectangle(3), M_Sphere(3), M_Triangle(3), M_Vector(3)


The M_Rectangle structure first appeared in Agar 1.3.4.