Shapes

Concrete shape drawer implementations for the ShapesDrawer system. Each file contains a sealed drawer class (extending ShapeDrawer<TShape>) and a nested readonly struct defining the shape's data. Some files also define Paragon-specific enums that wrap the Shapes library's enum values.

Pattern

Every shape follows the same pattern:

  1. Readonly struct — Nested struct (e.g., LineDrawer.Line) holding all draw parameters as readonly fields.

  2. Sealed drawer class — Extends ShapeDrawer<TShape>, provides an Add(...) method to enqueue shapes and a Draw() override that iterates the queue and calls the Shapes library.

  3. Optional enum — Wraps Shapes library enums (e.g., LineEndCap, ArcEndCap) with Paragon-friendly naming.

Classes

Class
Shape Struct
Description

Line

Draws lines between two points with configurable end caps

Arc

Draws arc segments with configurable radius, angles, and end caps

Cube

Draws solid cuboids with position, rotation, and size

RingDrawer

Ring

Draws ring (circle outline) with thickness

PieDrawer

Pie

Draws filled pie/wedge shapes

SphereDrawer

Sphere

Draws solid spheres

WireSphereDrawer

WireSphere

Draws wireframe spheres

WireCubeDrawer

WireCube

Draws wireframe cuboids

Enums

Enum
Values
Wraps

LineEndCap

NONE, SQUARE, ROUND

Shapes.LineEndCap

ArcEndCap

NONE, ROUND

Shapes.ArcEndCap

See Also

Last updated