<> <> <> DIRECTORY Rope, Vector3d; Plane3d: CEDAR DEFINITIONS ~ BEGIN Triple: TYPE ~ Vector3d.Triple; Quad: TYPE ~ Vector3d.Quad; Line: TYPE ~ Vector3d.Line; ROPE: TYPE ~ Rope.ROPE; Circle: TYPE ~ RECORD [center: Triple, radius: REAL]; Error: ERROR [code: ATOM, reason: 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 [Line]; <> <> Center: PROC [plane: Quad] RETURNS [Triple]; <> <<>> DistanceToPt: PROC [point: Triple, plane: Quad] RETURNS [REAL]; <> <> <> END.