ellipses(3U)
π ellipses(3U) β bestie edition π
okay so this is ellipses from the InterViews Reference Manual, section 3U, and it's genuinely iconic. we're talking the abstract base class and all the predefined subclasses for elliptical structured graphics. yes. circles and ovals. structured. let's go. π¦
β¨ NAME β¨
Ellipse, S_Ellipse, F_Ellipse, SF_Ellipse, S_Circle, F_Circle, SF_Circle β the abstract base class plus all its predefined subclasses, for elliptical structured graphics. π
β¨ SYNOPSIS β¨
#include <Unidraw/Graphic/ellipses.h>
πΈ DESCRIPTION πΈ
okay so Ellipse is an abstract base class for elliptical structured graphics objects. it's giving foundation, not finished product. it stores the geometric info that these graphics need, and it hands out helper functions for calculating extents and for hit detection. so useful. so necessary. π«Ά
the predefined subclasses are:
S_Ellipse,F_Ellipse,SF_Ellipseβ these draw stroked, filled, and stroked-filled ellipses, respectivelyS_Circle,F_Circle,SF_Circleβ and these draw stroked, filled, and stroked-filled circles, respectively
and the storage tea β: the stroked subclasses store a PSBrush, the filled subclasses store a PSPattern, and the stroked-filled subclasses store one of each. they said both. periodt. π
π ELLIPSE PUBLIC OPERATIONS π
void GetOriginal(Coord& x, Coord& y, int& rx, int& ry)β returns the ellipse's geometry.(x, y)defines the ellipse's center, whilerxandrydefine its horizontal and vertical radii, respectively. sox,yis where it's at andrx,ryis how wide and how tall. that's the whole vibe. β¨
π ELLIPSE PROTECTED OPERATIONS π
Ellipse(Coord x, Coord y, int rx, int ry, Graphic* = nil)β the constructor is protected to disallow instantiation of the abstract base class. like, you literally cannot make one of these directly, that's the point. 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*)
these are the helper functions, and they return extent and hit detection info based on the bounding box that the ellipse defines. here's the split, bestie:
s_getExtent,s_contains, ands_intersectsreturn information that accounts for the width of a brush, as would be necessary if the ellipse is strokedf_getExtent,f_contains, andf_intersectsassumes that the ellipse is filled
subclasses can use these operations to help implement their own getExtent, contains, and intersects operations. it's giving inheritance. it's giving reuse. we love to see it. π
π SUBCLASS PUBLIC 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)
these are the constructors for the various predefined Ellipse subclasses. note that the ellipse ones take rx and ry, and the circle ones take a single radius, because a circle is just an ellipse that said "i'm not doing two radii today." πβ¨
π¦ SEE ALSO π¦
Graphic(3U), geomobjs(3U), pspaint(3U)
no cap, everything above is exactly as the page says β no invented behaviour, no made-up defaults, nothing extra. just the facts with better vibes. π
and that's the whole page, bestie!! this one came from the Unidraw crew, dated 2 February 1991, and it lives in section 3U of the manual. so old, so iconic, so still relevant. mwah. π ππ«Ά
π¦ where this page comes from
- debian bookworm: ivtools-dev 2.0.11d.a1-1+b4
- debian trixie: ivtools-dev 2.0.11d.a1-3+b4
- ubuntu jammy: ivtools-dev 2.0.11d.a1-1build1
- ubuntu noble: ivtools-dev 2.0.11d.a1-3build1
- ubuntu questing: ivtools-dev 2.0.11d.a1-3build7
- ubuntu resolute: ivtools-dev 2.0.11d.a1-3build9
- ubuntu stonking: ivtools-dev 2.1.1+git.2025.07.26.a1-1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms