<> <> <> DIRECTORY Draw2d, Imager, Rope, Matrix3d, Spline3d, ThreeDBasics, Vector3d; Draw3d: CEDAR DEFINITIONS ~ BEGIN <> origin: Triple ~ Vector3d.origin; ROPE: TYPE ~ Rope.ROPE; Context: TYPE ~ Imager.Context; Pair: TYPE ~ Vector3d.Pair; Triple: TYPE ~ Vector3d.Triple; Quad: TYPE ~ Vector3d.Quad; Matrix: TYPE ~ Matrix3d.Matrix; Coeffs: TYPE ~ Spline3d.Coeffs; Bezier: TYPE ~ Spline3d.Bezier; PairSequence: TYPE ~ Vector3d.PairSequence; PairSequenceRep: TYPE ~ Vector3d.PairSequenceRep; TripleSequence: TYPE ~ Vector3d.TripleSequence; TripleSequenceRep: TYPE ~ Vector3d.TripleSequenceRep; NatTable: TYPE ~ ThreeDBasics.NatTable; NatSequence: TYPE ~ ThreeDBasics.NatSequence; DrawType: TYPE ~ Draw2d.DrawType; -- {solid, dashed, dotted} MarkType: TYPE ~ Draw2d.MarkType; -- {cross, x, asterisk, dot, none} PointProc: TYPE ~ PROC [context: Context, pair: Pair]; <> <> <> <> Mark: PUBLIC PROC [ context: Context, point: Triple, matrix: Matrix, label: ROPE _ NIL, markType: MarkType _ cross]; <> <<>> DoWithPoint: PUBLIC PROC [ context: Context, point: Triple, matrix: Matrix, pointProc: PointProc]; <> <> <> Segment: PUBLIC PROC [ context: Context, point0, point1: Triple, matrix: Matrix, drawType: DrawType _ solid]; <> <<>> Vector: PUBLIC PROC [ context: Context, base, vector: Triple, matrix: Matrix, label: ROPE _ NIL, scale: REAL _ 0.2, markType: MarkType _ none, drawType: DrawType _ solid]; <> <> <<>> Axes: PUBLIC PROC [context: Context, matrix: Matrix]; <> <> Curve: PUBLIC PROC [context: Context, coeffs: Coeffs, matrix: Matrix _ NIL]; <> <> <<>> DotCurve: PUBLIC PROC [context: Context, coeffs: Coeffs, matrix: Matrix _ NIL]; <> <<>> BezierPolygon: PUBLIC PROC [ context: Context, bezier: Bezier, matrix: Matrix _ NIL, drawType: DrawType _ solid, close: BOOL _ FALSE]; <> <> Triangle: PUBLIC PROC [ context: Context, p0, p1, p2: Triple, view: Matrix]; <> <<>> FrontFacingTriangle: PUBLIC PROC [ context: Context, p0, p1, p2: Triple, view: Matrix, normal: Triple _ origin]; <> <> PolygonPairs: PUBLIC PROC [ triples: TripleSequence, view: Matrix, pairs: PairSequence _ NIL] RETURNS [PairSequence]; <<>> <> << >> Polygon: PUBLIC PROC [ context: Context, poly: REF NatSequence, pairs: PairSequence _ NIL, triples: TripleSequence _ NIL, view: Matrix _ NIL]; <<>> <> <> <<>> FrontFacingPolygon: PUBLIC PROC [ context: Context, poly: REF NatSequence, view: Matrix, normal: Triple _ origin, pairs: PairSequence _ NIL, triples: TripleSequence _ NIL]; <<>> <> <> <> <<>> Polygons: PUBLIC PROC [ context: Context, polygons: REF NatTable, pairs: PairSequence _ NIL, triples: TripleSequence _ NIL, view: Matrix _ NIL]; <> <> <<>> FrontFacingPolygons: PUBLIC PROC [ context: Context, polygons: REF NatTable, view: Matrix, normals: TripleSequence, pairs: PairSequence _ NIL, triples: TripleSequence _ NIL]; <<>> <> <> <> <> Pendant: PUBLIC PROC [ context: Context, view: Matrix, size: REAL _ .07, wPos, hPos: REAL _ .7, names: ARRAY [0..6) OF ROPE _ ALL[NIL]]; <> <<>> LabelPairs: PUBLIC PROC [context: Context, pairs: PairSequence]; <> <<>> END.