Ellipse, S_Ellipse, F_Ellipse, SF_Ellipse, S_Circle, F_Circle,
SF_Circle - abstract base class and predefined subclasses for elliptical
structured graphics
#include <Unidraw/Graphic/ellipses.h>
Ellipse is an abstract base class for elliptical structured
graphics objects. It stores geometric information that such graphics require
and provides helper functions for calculating extents and for hit detection.
Predefined subclasses include S_Ellipse, F_Ellipse, and SF_Ellipse, which
draw stroked, filled, and stroked-filled ellipses, respectively; and
S_Circle, F_Circle, and SF_Circle, which draw stroked, filled, and
stroked-filled circles, respectively. The stroked subclasses store a
PSBrush, the filled subclasses store a PSPattern, and the stroked-filled
subclasses store one of each.
- Ellipse(Coord
x, Coord y, int rx, int ry, Graphic* = nil)
- The constructor is protected to disallow instantiation of the abstract
base class. An ellipse's geometry is defined in terms of its center and
its horizontal and vertical radii. 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 ellipse defines. s_getExtent, s_contains, and
s_intersects return information that accounts for the width of a brush, as
would be necessary if the ellipse is stroked, while f_getExtent,
f_contains, and f_intersects assumes that the ellipse is filled.
Subclasses can use the operations to help implement their getExtent,
contains, and intersects operations.
- S_Ellipse(Coord
x, Coord y, int rx, int ry, Graphic* = nil)
- F_Ellipse(Coord
x, Coord y, int rx, int ry, Graphic* = nil)
- SF_Ellipse(Coord
x, Coord y, int rx, int ry, Graphic* = nil)
- S_Circle(Coord
x, Coord y, int radius, Graphic* = nil)
- F_Circle(Coord
x, Coord y, int radius, Graphic* = nil)
- SF_Circle(Coord
x, Coord y, int radius, Graphic* = nil)
- Constructors for the various predefined Ellipse subclasses.
Graphic(3U), geomobjs(3U), pspaint(3U)