DIRECTORY G3dBasic, G3dOctree; G3dRayCube: CEDAR DEFINITIONS ~ BEGIN Ray: TYPE ~ G3dBasic.Ray; Cube: TYPE ~ G3dOctree.Cube; Octree: TYPE ~ G3dOctree.Octree; Intersection: TYPE ~ G3dOctree.Intersection; IntersectionList: TYPE ~ G3dOctree.IntersectionList; IntersectRayWithCube: PROC [ray: Ray, cube: Cube] RETURNS [Intersection]; IntersectRayInsideCube: PROC [ray: Ray, cube: Cube] RETURNS [Intersection]; IntersectRayOutsideCube: PROC [ray: Ray, cube: Cube] RETURNS [Intersection]; FirstIntersectionWithOctree: PROC [ray: Ray, octree: Octree] RETURNS [Intersection]; IntersectRayWithOctree: PROC [ray: Ray, octree: Octree] RETURNS [IntersectionList]; END. ΐ G3dRayCube.mesa Copyright Σ 1988, 1992 by Xerox Corporation. All rights reserved. Bloomenthal, July 15, 1992 11:07 pm PDT Imported Types Ray-Cube Operations Find first intersection (either entering or leaving) of ray with cube. Assuming ray.base is within cube, find intersection of ray with cube. Assuming ray.base is outside cube, find intersection of ray with cube. Find first intersection of ray with a terminal node; ray.axis is presumed normalized. Return a list of the intersections of the ray with the terminal nodes of the Octree. The intersection leaving a cube and that entering an adjacent one (i.e., the same point) are both added to the list. ray.axis is presumed normalized. ΚW•NewlineDelimiter –"cedarcode" style™™Jšœ Οeœ6™BJ™'J˜JšΟk œ˜J˜—šΠbl œžœž ˜J˜—Jšœž˜headšΟl™Jšœžœ˜Jšœžœ˜ Jšœ žœ˜#Jšœžœ˜.Jšœžœ˜5—š ™šΟnœžœžœ˜IJ™FJ™—š‘œžœžœ˜KJ™EJ™—š‘œžœžœ˜LJ™FJ™—š‘œžœžœ˜TJ™UJ™—š‘œžœžœ˜SJ™TJ™XJ™=—J™—Jšžœ˜—…—’Ή