SceneIFS(PT)

scene.spad line 1837 [edit on github]

Generates various surfaces (2 dimensional subsets of 3D space). When 1 dimensional subspace (a line) needs to be represented in a 3D editor then we convert the line into a tube. Many of the functions here are from NumericTubePlot and related packages. However I needed them to be defined over SPointCategory so I adapted them here.

coerce : % -> OutputForm

coerce(me) list this instance to the command line

curveLoops : (List(PT), DoubleFloat, Integer) -> List(List(PT))

curveLoops(pts1, r, nn) generates ifs from line given by pts1

indexes : % -> List(List(NonNegativeInteger))

indexes(me) returns indexes into pointList(me)

pointList : % -> List(PT)

pointList(me) returns points at vertices of this mesh.

sierpinskiDivide : (%, NonNegativeInteger) -> %

sierpinskiDivide(me, level) for each edge of each face calculate a new point in the centre of the edge, then build a new set of faces which include the new points.

singleFace : List(PT) -> %

singleFace(ptin) constructs a ifs representation of a face from an array of points

smesh : (List(List(PT)), Boolean) -> %

smesh(ptin, clos) constructs a ifs representation of a mesh from a 2 dimensional array of points

stube : (List(Record(source : Mapping(PT, DoubleFloat), ranges : List(Segment(DoubleFloat)), knots : List(DoubleFloat), points : List(PT))), DoubleFloat, Integer) -> %

stube(functions: List Clipd, r, n) creates a tube of radius r around the curve functions.

subdivide : % -> %

subdivide(me) for each face calculate a new point in the centre of the face, then build a new set of faces which include the new point.