DIRECTORY CastRays, CoordSys, CSG, CSGGraphics, DisplayList3d, Graphics, IO, Rope, SV2d, SVBoundBox; SVHalfSpaces: DEFINITIONS = BEGIN BoundHedron: TYPE = SVBoundBox.BoundHedron; CoordSystem: TYPE = REF CoordSysObj; CoordSysObj: TYPE = CoordSys.CoordSysObj; Classification: TYPE = REF ClassificationObj; ClassificationObj: TYPE = CastRays.ClassificationObj; LightSourceList: TYPE = DisplayList3d.LightSourceList; Point2d: TYPE = SV2d.Point2d; Ray: TYPE = REF RayObj; RayObj: TYPE = CSG.RayObj; PlanarSurface: TYPE = REF PlanarSurfaceObj; PlanarSurfaceObj: TYPE = DisplayList3d.PlanarSurfaceObj; PlanarSurfaceList: TYPE = DisplayList3d.PlanarSurfaceList; Camera: TYPE = CSGGraphics.Camera; MasterObject: TYPE = REF MasterObjectRec; MasterObjectRec: TYPE = DisplayList3d.MasterObjectRec; Primitive: TYPE = CSG.Primitive; Assembly: TYPE = REF AssemblyObj; AssemblyObj: TYPE = DisplayList3d.AssemblyObj; HalfSpaceRec: TYPE = REF HalfSpaceRecObj; HalfSpaceRecObj: TYPE = RECORD [ gridSide: REAL]; PlaneSurface: TYPE = REF PlaneSurfaceObj; PlaneSurfaceObj: TYPE = RECORD []; LonelyAssemblyHasSon: ERROR; -- returned from *PrimitiveFromAssembly if assembly is not a primitive assembly WrongTypeOfData: SIGNAL; -- signalled if the assembly given to *PrimitiveFromAssembly has an assembly.object which is not a MasterObject; HalfSpaceMakeMasterObject: PROC [name: Rope.ROPE] RETURNS [mo: MasterObject]; HalfSpaceGetBoundHedron: PROC [mo: MasterObject] RETURNS [hedron: BoundHedron]; HalfSpaceRayCast: PROC [cameraPoint: Point2d, localRay: Ray, masterObject: REF ANY, prim: Primitive] RETURNS [class: Classification]; HalfSpacePreprocess: PROC [prim: Primitive, camera: Camera]; HalfSpaceLineDraw: PROC[dc: Graphics.Context, data: REF ANY, camera: Camera, localCS: CoordSystem]; HalfSpaceDrawNormals: PROC[dc: Graphics.Context, data: REF ANY, camera: Camera, localCS: CoordSystem]; HalfSpaceCountSurf: PROC [masterObject: MasterObject] RETURNS [len: NAT]; HalfSpaceCountVert: PROC [masterObject: MasterObject] RETURNS [len: NAT]; HalfSpaceGetSurf: PROC [assembly: Assembly, camera: CoordSystem] RETURNS [psl: PlanarSurfaceList]; HalfSpaceDrawSurf: PROC [dc: Graphics.Context, ps: PlanarSurface, lightSources: LightSourceList, camera: Camera]; HalfSpaceDrawSubBoxes: PROC [dc: Graphics.Context, prim: Primitive, screenCS: CoordSystem]; HalfSpaceFileout: PROC [f: IO.STREAM, mo: MasterObject]; HalfSpaceFilein: PROC [f: IO.STREAM, name: Rope.ROPE] RETURNS [mo: MasterObject]; END. ΐFile: SVHalfSpaces.mesa Author: Eric Bier on August 12, 1983 1:58 pm Last edited by Bier: August 12, 1983 2:55 pm Contents: Implementation of the half-space object class BASIC SHAPES ΚΝ˜Ihead™J™,J™,J™8˜ Iprocšœ ˜ Lšœ ˜ LšΟkœ˜Lšœ ˜ Lšœ˜J˜ J˜Lšœ˜Lšœ˜Lšœ ˜ —J˜˜Lšœ œ˜+Lšœ œœ ˜$Lšœ œ˜)Lšœœœ˜.Lšœœ˜5Lšœœ!˜6Lšœ œ˜Lšœœœ˜Lšœœœ˜Lšœœœ˜+Lšœœ"˜8Lšœœ#˜:Lšœœ˜"Lšœœœ˜)Lšœœ!˜6Lšœ œœ ˜ Lšœ œœ ˜!Lšœ œ˜/—šœ ™ Lšœœœ˜)šœœœ˜ Lšœ œ˜—Lšœœœ˜)Lšœœœ˜#LšœœQ˜lLšœœt˜‹JšΟnœœ œœ˜MLšžœœœ˜OLš žœœ5œœœ˜…Lšžœœ#˜