<> <> <> <> <> DIRECTORY Rope, SV3d, SVBasicTypes, SVModelTypes, SVSceneTypes; SVPreprocess3d: CEDAR DEFINITIONS = BEGIN BoundBox: TYPE = SVBasicTypes.BoundBox; Sphere: TYPE = SV3d.Sphere; Camera: TYPE = SVModelTypes.Camera; CoordSystem: TYPE = SVModelTypes.CoordSystem; CSGTree: TYPE = SVSceneTypes.CSGTree; PreprocessForImage: PROC [tree: CSGTree, camera: Camera] RETURNS [bb: BoundBox, bs: Sphere]; <> PreprocessForCatScan: PROC [tree: CSGTree, camera: Camera] RETURNS [bs: Sphere]; <> 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.