<<>> <> <> <> <> DIRECTORY G3dBasic, G3dMatrix, IO, Rope; G3dTetrahedron: CEDAR DEFINITIONS ~ BEGIN <> Error: ERROR [reason: Rope.ROPE]; <> <> <<>> TetrahedronRep: TYPE ~ RECORD [ from3d: G3dMatrix.Matrix ¬ NIL, fromBary: G3dMatrix.Matrix ¬ NIL ]; Tetrahedron: TYPE ~ REF TetrahedronRep; <> Create: PROC [p0, p1,p2,p3: G3dBasic.Triple] RETURNS [Tetrahedron]; <> Copy: PROC [Tetrahedron] RETURNS [Tetrahedron]; <> <> MapFromBarycentric: PROC [t: Tetrahedron, pt: G3dBasic.Quad] RETURNS [G3dBasic.Quad]; <> <<>> MapFrom3D: PROC [t: Tetrahedron, pt: G3dBasic.Quad] RETURNS [G3dBasic.Quad]; <> <<>> IsInside: PROC [t: Tetrahedron, pt: G3dBasic.Quad, tol: REAL ¬ 0.001] RETURNS [BOOL]; <> <> BoundingBox: PROC [t: Tetrahedron] RETURNS [G3dBasic.Box]; <> Read: PROC[IO.STREAM] RETURNS [Tetrahedron]; Write: PROC[Tetrahedron, IO.STREAM]; <> Debug: PROC [dbg: IO.STREAM]; <> END.