<> <> <> DIRECTORY Graphics, GraphicsColor, Rope, SV2d, SV3d, SVModelTypes; CSGGraphics: DEFINITIONS = BEGIN Artwork: TYPE = SVModelTypes.Artwork; Color: TYPE = GraphicsColor.Color; CoordSystem: TYPE = SVModelTypes.CoordSystem; DrawStyle: TYPE = SVModelTypes.DrawStyle; Matrix4by4: TYPE = SV3d.Matrix4by4; Plane: TYPE = SV3d.Plane; Point3d: TYPE = SV3d.Point3d; Point2d: TYPE = SV2d.Point2d; Poly3d: TYPE = SV3d.Poly3d; QualityMode: TYPE = SVModelTypes.QualityMode; LightSource: TYPE = SVModelTypes.LightSource; LightSourceList: TYPE = SVModelTypes.LightSourceList; -- LIST OF LightSource; StrokeEnds: TYPE = Graphics.StrokeEnds; Vector: TYPE = SV3d.Vector; Camera: TYPE = SVModelTypes.Camera; FrameBox: TYPE = SVModelTypes.FrameBox; Projection: TYPE = SVModelTypes.Projection; CreateCamera: PROC [viewName: Rope.ROPE, coordSys: CoordSystem, screenCS: CoordSystem, resolution: REAL, focalLength: REAL, projection: Projection, frame: FrameBox, clippingPlanes: LIST OF Plane, visibleAssemblies: LIST OF Rope.ROPE, style: DrawStyle, colorFilm: BOOL, useBoundBoxes: BOOL, useBoundSpheresForShadows: BOOL] RETURNS [camera: Camera]; PlaceCamera: PROC [camera: Camera, focus: Point3d, origin: Point3d, slant: REAL]; SetFocalLengthCamera: PROC [camera: Camera, focalLength: REAL]; SetQualityCamera: PROC [camera: Camera, qual: QualityMode]; <> ColorFilmCamera: PROC [camera: Camera, colorFilm: BOOL]; <> Clip: PROC [dc: Graphics.Context, camera: Camera]; <> DoProjection: PROC [point3d: Point3d, camera: Camera] RETURNS [newPoint: Point2d]; <> LocalToCamera: PROC [localPoint: Point3d, localCS: CoordSystem] RETURNS [cameraPoint: Point3d]; LocalToWorld: PROC [localPt: Point3d, localCS: CoordSystem] RETURNS [worldPt: Point3d]; VectorToWorld: PROC [vector: Vector, localCS: CoordSystem] RETURNS [worldVector: Vector]; DrawFrame: PROC [dc: Graphics.Context, camera: Camera]; <> <> <<>> SetCP: PROC [dc: Graphics.Context, point3d: Point3d, camera: Camera, localCS: CoordSystem]; SetCPAbsolute: PROC [dc: Graphics.Context, point3d: Point3d, camera: Camera]; <> DrawTo: PROC [dc: Graphics.Context, point3d: Point3d, camera: Camera, localCS: CoordSystem]; DrawToAbsolute: PROC [dc: Graphics.Context, point3d: Point3d, camera: Camera]; <> MoveTo: PROC [path: Graphics.Path, point3d: Point3d, camera: Camera, localCS: CoordSystem]; MoveToAbsolute: PROC [path: Graphics.Path, point3d: Point3d, camera: Camera]; <> LineTo: PROC [path: Graphics.Path, point3d: Point3d, camera: Camera, localCS: CoordSystem]; LineToAbsolute: PROC [path: Graphics.Path, point3d: Point3d, camera: Camera]; <> DrawStroke: PROC [dc: Graphics.Context, path: Graphics.Path, width: REAL _ 1, closed: BOOLEAN _ FALSE, ends: StrokeEnds _ butt]; DrawFilled: PROC[dc: Graphics.Context, path: Graphics.Path, parityFill: BOOLEAN _ FALSE]; <> DrawPolygonAbsolute: PROC [dc: Graphics.Context, poly: Poly3d, width: REAL _ 1, ends: StrokeEnds _ butt, camera: Camera]; <> DrawLine: PROC [dc: Graphics.Context, start: Point3d, end: Point3d, camera: Camera, localCS: CoordSystem]; <> DrawLineOnScreen: PROC [dc: Graphics.Context, screenPoint1, screenPoint2: Point2d, camera: Camera]; <> DrawChar: PROC [dc: Graphics.Context, c: CHARACTER, camera: Camera]; <> DrawArea: PROC [dc: Graphics.Context, localNormal: Vector, poly3d: Poly3d, artwork: Artwork, lightSources: LightSourceList, camera: Camera, localCS: CoordSystem]; <> DrawAreaNormalAbsolute: PROC [dc: Graphics.Context, cameraNormal: Vector, poly3d: Poly3d, artwork: Artwork, lightSources: LightSourceList, camera: Camera, localCS: CoordSystem]; <> DrawAreaAbsolute: PROC [dc: Graphics.Context, poly3d: Poly3d, camera: Camera]; <> <> <<>> DrawHorizonOfPlane: PROC [dc: Graphics.Context, plane: Plane, camera: Camera, localCS: CoordSystem]; <> DrawHorizonOfPlaneAbsolute: PROC [dc: Graphics.Context, plane: Plane, camera: Camera]; <> DrawInfiniteLine: PROC [dc: Graphics.Context, p1, p2: Point3d, camera: Camera, localCS: CoordSystem]; <> DrawInfiniteLineAbsolute: PROC [dc: Graphics.Context, p1, p2: Point3d, camera: Camera, localCS: CoordSystem]; <> DrawInfinitePlaneWireFrame: PROC [dc: Graphics.Context, plane: Plane, camera: Camera, localCS: CoordSystem]; <> DrawInfinitePlaneWireFrameAbsolute: PROC [dc: Graphics.Context, plane: Plane, camera: Camera, localCS: CoordSystem]; <> DrawInfinitePlaneShaded: PROC [dc: Graphics.Context, plane: Plane, artwork: Artwork, lightSources: LightSourceList, camera: Camera, localCS: CoordSystem]; <> DrawInfinitePlaneShadedAbsolute: PROC [dc: Graphics.Context, plane: Plane, artwork: Artwork, lightSources: LightSourceList, camera: Camera]; <> DrawStyleToRope: PROC [drawStyle: DrawStyle] RETURNS [rope: Rope.ROPE]; RopeToDrawStyle: PROC [rope: Rope.ROPE] RETURNS [drawStyle: DrawStyle, success: BOOL]; ProjectionToRope: PROC [projection: Projection] RETURNS [rope: Rope.ROPE]; RopeToProjection: PROC [rope: Rope.ROPE] RETURNS [projection: Projection, success: BOOL]; END.