0D types
vertex/knot/vector (float,float,float)
1D types
arc/line (vertex,vertex)
2D types
polyforms
closed/open (bool, closed if the last/first vertex are identical, the last vertex is also dropped)
vertex (list[float], sequential list)
curves (all curves with non uniform radius are assumed to be NURBS)
closed/open (bool, closed if the last/first knot are identical, the last vertex is also dropped)
radius (radians) (float, if radius is set the curve is assumed to be constant radius)
knot & vector (dict(knot,vector))
3D types
solid
closed/open (boo, closed if the last/first vertex are identical, the last vertex is also dropped)
segment (list, polyforms and curves)
some notes on Relational Geometry (used in MultiSurf by www.aerohydro.com)
this is an object oriented geometry model.
Points can be directly specified (Abspoint), but also depend on other geometry
Curves are defined by Points
Surfaces are defined by Points or Curves
Points:
AbsPoint (x,y,z)
RelPoint (AbsPoint,dx,dy,dz)
Beads: (points that lie on a curve)
AbsBead (Curve, t) 0<t<1
RelBead (Bead, dt) bead offset by dt from another bead
ArcLenBead (Bead, ds) bead offset by ds along arc length of curve
Magnets: (points that lie on a surface)
AbsMagnet (Surface, u,v)
...
Curves:
LineCurve (Point,Point)
ArcCurve (Point,Point,Point)
BCurve (Point,...) B-pline
Surfaces:
DevSurf (Line,Line)
xxxSurf (supports) a surface somehow calculated from its supporting objects
Snakes: (Curves that lie on a surface)
ArcSnake
LineSnake