<> <> <> DIRECTORY Rope, Vector3d; Plane3d: CEDAR DEFINITIONS ~ BEGIN Triple: TYPE ~ Vector3d.Triple; Quad: TYPE ~ Vector3d.Quad; Line: TYPE ~ Vector3d.Line; Circle: TYPE ~ RECORD [center: Triple, radius: REAL]; Error: ERROR [code: ATOM, reason: Rope.ROPE]; <> Normalize: PROC [plane: Quad] RETURNS [Quad]; <> FromPts: PROC [p1, p2, p3: Triple] RETURNS [Quad]; <> FromPtNrm: PROC [point, normal: Triple] RETURNS [Quad]; <> <> <<>> IntWithLine: PROC [plane: Quad, line: Line] RETURNS [Triple]; <> <> TriArea: PUBLIC PROC [p0, p1, p2: Triple] RETURNS [REAL]; <> <<>> CircleFromPts: PROC [p1, p2, p3: Triple] RETURNS [Circle]; <> <> IntOf3: PROC [p1, p2, p3: Quad] RETURNS [Triple]; <> IntOf2: PROC [plane1, plane2: Quad] RETURNS [base, axis: Triple]; <> <> Center: PROC [plane: Quad] RETURNS [Triple]; <> <<>> DistanceToPt: PROC [point: Triple, plane: Quad] RETURNS [REAL]; <> END.