<<>> <> <> <> <> <> DIRECTORY G3dBasic, G3dShape; G3dBox: CEDAR DEFINITIONS ~ BEGIN <> Box: TYPE ~ G3dBasic.Box; NatSequence: TYPE ~ G3dBasic.NatSequence; Surface: TYPE ~ G3dBasic.Surface; Triple: TYPE ~ G3dBasic.Triple; TripleSequence: TYPE ~ G3dBasic.TripleSequence; VertexSequence: TYPE ~ G3dShape.VertexSequence; <> BoxFromPoints: PROC [p0, p1: Triple] RETURNS [Box]; <> <<>> BoxFromSurface: PROC [surf: Surface, verts: VertexSequence] RETURNS [Box]; <> BoxFromVertices: PROC [nats: NatSequence, verts: VertexSequence] RETURNS [Box]; <> BoxFromTripleSequence: PROC [ts: TripleSequence] RETURNS [Box]; <> <> Intersect: PROC [box1, box2: Box] RETURNS [has: BOOL, intersection: Box]; <> PointInBox: PROC [box: Box, pt: Triple] RETURNS [BOOL]; <> <> BoxUnionBox: PROC [b1, b2: Box] RETURNS [Box]; <> <<>> BoxUnionPoint: PROC [box: Box, point: Triple] RETURNS [Box]; <> <> BoxMap: PROC [rel, abs: Box] RETURNS [Box]; <> <> BoxCenter: PROC [box: Box] RETURNS [Triple]; <> BoxEdges: PROC [box: Box] RETURNS [Triple]; <> <> Lerp: PROC [alpha, low, high: REAL] RETURNS [REAL]; <> <<>> Min3d: PROC [p0, p1: Triple] RETURNS [Triple]; <> <<>> Max3d: PROC [p0, p1: Triple] RETURNS [Triple]; <> <<>> END.