<> <> <> <> DIRECTORY SVCoordSys, Feedback, GGBoundBox, GGCoreOps, GGParseIn, GGParseOut, Imager, ImagerColor, IO, SVMatrix3d, SVPredefSweeps, Real, Rope, SV2d, SV3d, SVArtwork, SVAssembly, SVBasicTypes, SVBoundBox, SVDraw3d, SVFaces, SVGraphics, SVLines3d, SVMasterObject, SVMasterObjectTypes, SVModelTypes, SVObjectCast, SVPolygon3d, SVScene, SVSceneTypes, SVVector3d, SVSweepCast, SVSweepGeometry, SVParseIn, SVParseOut; SVMasterObjectImplC: CEDAR PROGRAM IMPORTS GGBoundBox, GGCoreOps, GGParseIn, GGParseOut, Imager, ImagerColor, IO, Rope, SVArtwork, SVAssembly, SVBoundBox, SVCoordSys, SVDraw3d, SVGraphics, SVLines3d, SVMasterObject, SVMatrix3d, SVObjectCast, SVParseIn, SVParseOut, SVPolygon3d, SVPredefSweeps, SVScene, SVSweepGeometry, SVVector3d EXPORTS SVMasterObject = BEGIN OPEN SVMasterObject; <> Artwork: TYPE = SVModelTypes.Artwork; ArtworkClass: TYPE = SVModelTypes.ArtworkClass; BoundBlock: TYPE = SVBasicTypes.BoundBlock; BoundBox: TYPE = SVBasicTypes.BoundBox; BoundHedron: TYPE = SVBasicTypes.BoundHedron; Box3d: TYPE = SVMasterObjectTypes.Box3d; Camera: TYPE = SVModelTypes.Camera; Classification: TYPE = SVSceneTypes.Classification; Color: TYPE = Imager.Color; Composite: TYPE = SVSceneTypes.Composite; CoordSystem: TYPE = SVModelTypes.CoordSystem; CoordSysList: TYPE = SVModelTypes.CoordSysList; Edge3d: TYPE = SV3d.Edge3d; Face: TYPE = REF FaceObj; FaceObj: TYPE = SVMasterObjectTypes.FaceObj; FeedbackData: TYPE = Feedback.FeedbackData; LightSourceList: TYPE = SVModelTypes.LightSourceList; Line3d: TYPE = SV3d.Line3d; LinearMesh: TYPE = REF LinearMeshRecord; LinearMeshArray: TYPE = SVSweepGeometry.LinearMeshArray; LinearMeshRecord: TYPE = SVSweepGeometry.LinearMeshRecord; MasterObject: TYPE = SVSceneTypes.MasterObject; MasterObjectClass: TYPE = SVSceneTypes.MasterObjectClass; MasterObjectClassList: TYPE = SVSceneTypes.MasterObjectClassList; MasterObjectClassObj: TYPE = SVSceneTypes.MasterObjectClassObj; MasterObjectList: TYPE = SVSceneTypes.MasterObjectList; Material: TYPE = SVModelTypes.Material; Matrix4by4: TYPE = SV3d.Matrix4by4; Path: TYPE = SV2d.Path; PlanarSurface: TYPE = SVSceneTypes.PlanarSurface; PlanarSurfaceList: TYPE = SVSceneTypes.PlanarSurfaceList; PlanarSurfaceObj: TYPE = SVSceneTypes.PlanarSurfaceObj; Plane: TYPE = REF PlaneObj; PlaneObj: TYPE = SV3d.PlaneObj; Point2d: TYPE = SV2d.Point2d; Point3d: TYPE = SV3d.Point3d; PointAndDone: TYPE = SVSceneTypes.PointAndDone; PointGenerator: TYPE = REF PointGeneratorObj; PointGeneratorObj: TYPE = SVSceneTypes.PointGeneratorObj; Poly3d: TYPE = SV3d.Poly3d; Polygon: TYPE = SV2d.Polygon; Primitive: TYPE = SVSceneTypes.Primitive; Ray: TYPE = SVSceneTypes.Ray; RectSurface: TYPE = REF RectSurfaceObj; RectSurfaceObj: TYPE = SVObjectCast.RectSurfaceObj; RevoFace: TYPE = SVSweepCast.RevoFace; Scene: TYPE = SVSceneTypes.Scene; Segment: TYPE = REF SegmentObj; SegmentObj: TYPE = SVMasterObjectTypes.SegmentObj; SelectionClass: TYPE = SVSceneTypes.SelectionClass; SelectMode: TYPE = SVSceneTypes.SelectMode; Shape: TYPE = SVSceneTypes.Shape; Slice: TYPE = SVSceneTypes.Slice; SliceDescriptor: TYPE = SVSceneTypes.SliceDescriptor; SliceParts: TYPE = SVSceneTypes.SliceParts; SubBoxesBody: TYPE = REF SubBoxesBodyObj; SubBoxesBodyObj: TYPE = SVSweepCast.SubBoxesBodyObj; SubSpheresBody: TYPE = REF SubSpheresBodyObj; SubSpheresBodyObj: TYPE = SVSweepCast.SubSpheresBodyObj; SurfaceArray: TYPE = REF SurfaceArrayObj; SurfaceArrayObj: TYPE = SVSceneTypes.SurfaceArrayObj; Vector3d: TYPE = SV3d.Vector3d; GetHedronProc: TYPE = SVSceneTypes.GetHedronProc; LineDrawProc: TYPE = SVSceneTypes.LineDrawProc; CountSurfProc: TYPE = SVSceneTypes.CountSurfProc; GetSurfProc: TYPE = SVSceneTypes.GetSurfProc; NormalsDrawProc: TYPE = SVSceneTypes.NormalsDrawProc; PreprocessProc: TYPE = SVSceneTypes.PreprocessProc; RayCastProc: TYPE = SVSceneTypes.RayCastProc; RayCastNoBBoxesProc: TYPE = SVSceneTypes.RayCastNoBBoxesProc; RayCastBoundingSpheresProc: TYPE = SVSceneTypes.RayCastBoundingSpheresProc; DrawPlanarSurfaceProc: TYPE = SVSceneTypes.DrawPlanarSurfaceProc; DrawSubBoxesProc: TYPE = SVSceneTypes.DrawSubBoxesProc; DrawSubSpheresProc: TYPE = SVSceneTypes.DrawSubSpheresProc; FileinProc: TYPE = SVSceneTypes.FileinProc; FileoutProc: TYPE = SVSceneTypes.FileoutProc; FileoutPolyProc: TYPE = SVSceneTypes.FileoutPolyProc; PointsInDescriptorProc: TYPE = SVSceneTypes.PointsInDescriptorProc; NextPointProc: TYPE = SVSceneTypes.NextPointProc; UpdateProc: TYPE = SVSceneTypes.UpdateProc; BuildBlockClass: PUBLIC PROC [] RETURNS [class: MasterObjectClass] = { class _ NEW[MasterObjectClassObj _ [ name: "block", <> getHedron: BlockBoundHedron, copy: BlockCopy, <> lineDraw: BlockLineDraw, lineDrawTransform: BlockLineDrawTransform, countSurf: BlockCountSurf, getSurf: BlockGetSurf, getSurfTransform: BlockGetSurfTransform, normalsDraw: BlockDrawNormals, preprocess: BlockPreprocess, rayCast: BlockRayCast, rayCastNoBBoxes: BlockRayCastNoBBoxes, rayCastBoundingSpheres: BlockRayCastBoundingSpheres, drawSurf: BlockDrawSurf, drawSubBoxes: NoOpDrawSubBoxes, drawSubSpheres: NoOpDrawSubSpheres, drawSelectionFeedback: BlockDrawSelectionFeedback, drawAttractorFeedback: NoOpDrawAttractorFeedback, <> transform: BlockTransform, <> describe: BlockDescribe, describeHit: BlockDescribeHit, filein: BlockFilein, fileout: BlockFileout, fileoutPoly: BlockFileoutPoly, <> isEmptyParts: BlockIsEmptyParts, isCompleteParts: BlockIsCompleteParts, newParts: BlockNewParts, unionParts: BlockUnionParts, differenceParts: BlockDifferenceParts, movingParts: BlockMovingParts, augmentParts: BlockAugmentParts, <> pointsInDescriptor: BlockPointsInDescriptor, nextPoint: BlockNextPoint, pointPairsInDescriptor: NoOpPointPairsInDescriptor, nextPointPair: NoOpNextPointPair, <> closestPointToPoint: BlockClosestPointToPoint, closestPointToLine: BlockClosestPointToLine, closestSegmentToLine: BlockClosestSegmentToLine, withinBoundBlock: BlockWithinBoundBlock, <> update: BlockUpdate, <