NAME¶
Rect, S_Rect, F_Rect, SF_Rect, Polygon, S_Polygon, F_Polygon, SF_Polygon -
structured graphics classes for rectangles and polygons
SYNOPSIS¶
#include <Unidraw/Graphic/polygons.h>
DESCRIPTION¶
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.
RECT PUBLIC OPERATIONS¶
- 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.
RECT PROTECTED OPERATIONS¶
- 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.
RECT SUBCLASS PUBLIC 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 PROTECTED OPERATIONS¶
- 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.
POLYGON SUBCLASS PUBLIC OPERATIONS¶
- 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.
SEE ALSO¶
Graphic(3U), Vertices(3U), geomobjs(3U), pspaint(3U)