<> <> <> DIRECTORY Imager, SV2d, SV3d, SVBasicTypes, SVModelTypes, SVSceneTypes, SVSelect; SVBoundBox: CEDAR DEFINITIONS = BEGIN BoundHedron: TYPE = SVBasicTypes.BoundHedron; BoundBox: TYPE = SVBasicTypes.BoundBox; Camera: TYPE = SVModelTypes.Camera; CoordSystem: TYPE = SVModelTypes.CoordSystem; Point2d: TYPE = SV2d.Point2d; Point3d: TYPE = SV3d.Point3d; Poly3d: TYPE = SV3d.Poly3d; Scene: TYPE = SVSceneTypes.Scene; SelectionClass: TYPE = SVSelect.SelectionClass; <> CreateBoundHedron: PROC [len: NAT] RETURNS [bh: BoundHedron]; AddBoundHedronPoint: PROC [bh: BoundHedron, point: Point3d]; AddBoundHedronPoly: PROC [bh: BoundHedron, poly: Poly3d]; RectangularBoundHedron: PROC [sx, sy, sz: REAL] RETURNS [bh: BoundHedron]; <> RectangularBoundHedron2: PROC [x1, x2, y1, y2, z1, z2: REAL] RETURNS [bh: BoundHedron]; <> PyramidBoundHedron: PROC [sx, sy, sz: REAL] RETURNS [bh: BoundHedron]; <> HexagonalBoundHedron: PROC [r, hOver2: REAL] RETURNS [bh: BoundHedron]; <> HexPyramidBoundHedron: PROC [r, h: REAL] RETURNS [bh: BoundHedron]; <> GeneralConeBoundHedron: PROC [r1, h1, r2, h2: REAL] RETURNS [bh: BoundHedron]; <> DiskBoundHedron: PROC [r, h: REAL] RETURNS [bh: BoundHedron]; <> ClearBoundHedron: PROC [bh: BoundHedron]; DrawBoundHedron: PROC [dc: Imager.Context, bh: BoundHedron, localWRTWorld: CoordSystem, camera: Camera, screen: CoordSystem]; CenterOfMassBoundHedron: PROC [bh: BoundHedron] RETURNS [cm: Point3d]; <> <<>> <> <<>> <> NullBoundBox: PROC [] RETURNS [bBox: BoundBox]; BoundBoxFromBoundHedron: PROC [bh: BoundHedron, camera: Camera, localCS: CoordSystem] RETURNS [boundBox: BoundBox]; FillBoundBoxFromBoundHedron: PROC [bh: BoundHedron, camera: Camera, localCS: CoordSystem, boundBox: BoundBox]; BoundBoxFromValues: PROC [minX, minY, maxX, maxY: REAL] RETURNS [boundBox: BoundBox]; BoundBoxFromRectangle: PROC [rect: Imager.Rectangle, camera: Camera] RETURNS [bBox: BoundBox]; <> UnionCombineBoundBoxes: PROC [bb1, bb2: BoundBox] RETURNS [newBB: BoundBox]; IntersectionCombineBoundBoxes: PROC [bb1, bb2: BoundBox] RETURNS [newBB: BoundBox]; DifferenceCombineBoundBoxes: PROC [bb1, bb2: BoundBox] RETURNS [newBB: BoundBox]; <> EnlargeByBox: PROC [bBox: BoundBox, by: BoundBox]; BoundBoxOfMoving: PROC [scene: Scene, camera: Camera] RETURNS [bigBox: BoundBox]; BoundBoxOfSelected: PROC [scene: Scene, camera: Camera, selectClass: SelectionClass] RETURNS [bigBox: BoundBox]; PointInBoundBox: PROC [cameraPoint: Point2d, boundBox: BoundBox] RETURNS [BOOL]; OutsideOf: PROC [test, bound: BoundBox] RETURNS [BOOL]; <> DrawBoundBox: PROC [dc: Imager.Context, boundBox: BoundBox, screen: CoordSystem]; EraseWithinBoundBox: PROC [dc: Imager.Context, boundBox: BoundBox, screen: CoordSystem]; Clip: PROC [dc: Imager.Context, bBox: BoundBox, screen: CoordSystem]; END.