splines(3U)

πŸ’– NAME πŸ’–

OpenBSpline, S_OpenBSpline, F_OpenBSpline, SF_OpenBSpline, SFH_OpenBSpline, ClosedBSpline, S_ClosedBSpline, F_ClosedBSpline, SF_ClosedBSpline, SFH_ClosedBSpline β€” structured graphics classes for open and closed B-splines

okay so bestie, this is splines(3U) from the InterViews Reference Manual, and it's literally your one-stop shop for B-spline structured graphics, both the open kind and the closed kind. no cap. πŸŽ€


✨ SYNOPSIS ✨

#include <Unidraw/Graphic/splines.h>

🌸 DESCRIPTION 🌸

So here's the tea πŸ“: OpenBSpline and ClosedBSpline are Vertices subclasses, and they're abstract base classes β€” like, they exist to be the blueprint, not to be instantiated directly, iykyk. One is for open B-splines, one is for closed B-splines.

The predefined subclasses you actually get to play with:

  • S_OpenBSpline, F_OpenBSpline, and SF_OpenBSpline β€” these draw stroked, filled, and stroked-filled open B-splines, respectively.
  • S_ClosedBSpline, F_ClosedBSpline, and SF_ClosedBSpline β€” these draw stroked, filled, and stroked-filled closed B-splines, respectively.

Then we have the extra-special ones πŸ‘‘: SFH_OpenBSpline and SFH_ClosedBSpline are identical to their SF_-prefixed counterparts, EXCEPT β€” and this is the part that eats πŸ’… β€” they can detect hits on their control points in addition to detecting hits on their visible parts. main character energy fr fr.

And the storage situation, because everything has a home 🫢:

  • the stroked subclasses store a PSBrush
  • the filled subclasses store a PSPattern
  • the stroked-filled subclasses store one of each

πŸ¦‹ OPENBSPLINE PROTECTED OPERATIONS πŸ¦‹

  • OpenBSpline(Coord* x, Coord* y, int count, Graphic* = nil) β€” OpenBSpline's constructor is protected, and that's on purpose, bestie: it's there to prevent instantiation of the abstract base class. The parameters get passed directly to the Vertices constructor. so don't try to make one, it's not for you πŸ™ˆ

πŸ’… OPENBSPLINE SUBCLASS PUBLIC OPERATIONS πŸ’…

  • S_OpenBSpline(Coord* x, Coord* y, int count, Graphic* = nil)
  • F_OpenBSpline(Coord* x, Coord* y, int count, Graphic* = nil)
  • SF_OpenBSpline(Coord* x, Coord* y, int count, Graphic* = nil)
  • SFH_OpenBSpline(Coord* x, Coord* y, int count, Graphic* = nil)

These are the constructors for the various predefined Rect subclasses. (yes, it says Rect, that's what the page says, we're just the messenger πŸ’€)


πŸŽ€ CLOSEDBSPLINE PROTECTED OPERATIONS πŸŽ€

  • ClosedBSpline(Coord* x, Coord* y, int count, Graphic* = nil) β€” same deal as its open sibling: the constructor is protected to prevent instantiation of the abstract base class, and the parameters are passed directly to the Vertices constructor. no touching, it's abstract βœ‹

⭐ CLOSEDBSPLINE SUBCLASS PUBLIC OPERATIONS ⭐

  • S_ClosedBSpline(Coord* x, Coord* y, int count, Graphic* = nil)
  • F_ClosedBSpline(Coord* x, Coord* y, int count, Graphic* = nil)
  • SF_ClosedBSpline(Coord* x, Coord* y, int count, Graphic* = nil)
  • SFH_ClosedBSpline(Coord* x, Coord* y, int count, Graphic* = nil)

Constructors for the various predefined Rect subclasses. (again with the Rect, we know, we know 😭)


πŸ”₯ SEE ALSO πŸ”₯

  • Graphic(3U)
  • Vertices(3U)
  • geomobjs(3U)
  • pspaint(3U)

go read those too, they're iconic, we stan cross-references πŸ’œ


okay that's the whole page, periodt ✨ this one came from Unidraw and it's dated 2 February 1991 β€” vintage, retro, ahead of its time, we love a classic πŸŒˆπŸ¦‹ bye bestie, go draw some splines πŸ’–