SceneIFS PTΒΆ

scene.spad line 1849

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.