Structured graphics classes for rectangles and polygons
#include <Unidraw/Graphic/polygons.h>
Rect and Polygon serve as abstract base classes for rectangle and polygon structured graphics. They are derived from Graphic and Vertices, respectively. Predefined subclasses include S_Rect, F_Rect, and SF_Rect, which draw stroked, filled, and stroked-filled rectangles, respectively; and S_Polygon, F_Polygon, and SF_Polygon, which draw stroked, filled, and stroked-filled polygons, respectively. The stroked subclasses store a PSBrush, the filled subclasses store a PSPattern, and the stroked-filled subclasses store one of each.
void GetOriginal(Coord& x0, Coord& y0, Coord& x1, Coord& y1)
Return the rectangle's geometry, as specified in the constructor. (x0, y0) defines one corner of the rectangle, while (x1, y1) defines the opposing corner.
Rectangle(Coord x0, Coord y0, Coord x1, Coord y1, Graphic* = nil)
The constructor is protected to disallow instantiation of the abstract base class. A rectangle's geometry is defined by two points, corresponding to opposing corners of the rectangle. The constructor also takes an optional graphic from which to obtain an initial set of graphics state.
void s_getExtent(
float&, float&, float&, float&, float&, Graphic*
)
void f_getExtent(
float&, float&, float&, float&, float&, Graphic*
)
boolean s_contains(PointObj&, Graphic*)
boolean f_contains(PointObj&, Graphic*)
boolean s_intersects(BoxObj&, Graphic*)
boolean f_intersects(BoxObj&, Graphic*)
Helper functions that return extent and hit detection information based on the bounding box that the rectangle defines. s_getExtent, s_contains, and s_intersects return information that accounts for the width of a brush, as would be necessary if the rectangle is stroked, while f_getExtent, f_contains, and f_intersects assumes that the rectangle is filled. Subclasses can use the operations to help implement their getExtent, contains, and intersects operations.
S_Rect(Coord x0, Coord y0, Coord x1, Coord y1, Graphic* = nil)
F_Rect(Coord x0, Coord y0, Coord x1, Coord y1, Graphic* = nil)
SF_Rect(Coord x0, Coord y0, Coord x1, Coord y1, Graphic* = nil)
Constructors for the various predefined Rect subclasses.
Polygon(Coord* x, Coord* y, int count, Graphic* = nil)
Polygon's constructor is protected to prevent instantiation of the abstract base class. The parameters are passed directly to the Vertices constructor.
S_Polygon(Coord* x, Coord* y, int count, Graphic* = nil)
F_Polygon(Coord* x, Coord* y, int count, Graphic* = nil)
SF_Polygon(Coord* x, Coord* y, int count, Graphic* = nil)
Constructors for the various predefined Rect subclasses.
Graphic(3U), Vertices(3U), geomobjs(3U), pspaint(3U)