<> <> <> <> <> DIRECTORY Rope, SVBasicTypes, SVModelTypes, SVRayTypes; Preprocess3d: CEDAR DEFINITIONS = BEGIN BoundBox: TYPE = SVBasicTypes.BoundBox; BoundSphere: TYPE = SVBasicTypes.BoundSphere; Camera: TYPE = SVModelTypes.Camera; CoordSystem: TYPE = SVModelTypes.CoordSystem; CSGTree: TYPE = SVRayTypes.CSGTree; PreprocessForImage: PROC [tree: CSGTree, camera: Camera] RETURNS [bb: BoundBox, bs: BoundSphere]; <> PreprocessForCatScan: PROC [tree: CSGTree, camera: Camera] RETURNS [bs: BoundSphere]; <> PreprocessForInteraction: PROC [tree: CSGTree, camera: Camera] RETURNS [bb: BoundBox]; <> SetCurrentRayInPrimitives: PROC [node: REF ANY]; << Do this before each row of ray casting>> FindRayStepXInPrimitives: PROC [node: REF ANY]; << Do this before casting any rays so that we only have to do it once. Sets up the csg structure so you can cast rays at them.>> <> <> END.