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: DoubleFloat -> PT, 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.