ShapeRep:
TYPE ~
RECORD [
Data for rendering, modeling, organizing, and the client
renderData: REF ¬ NIL, -- rendering params/procs, (see G3dRender)
modelData: REF ¬ NIL, -- modeling parameters (see G3dModel)
hierarchyData: REF ¬ NIL, -- node within hierarchy (see G3dTimeTrees)
clientData: REF ¬ NIL, -- data for a client
Bookkeeping
name: ROPE ¬ NIL, -- local shape name (allows instancing)
fileName: ROPE ¬ NIL, -- file name
props: PropList ¬ NIL, -- for extensibility
Transformation
centroid: Triple ¬ [], -- vertex average
scale: REAL ¬ 1.0, -- scale of the object
translation: Triple ¬ [], -- within a scene
orientation: Quaternion ¬ [], -- rotation (degrees) about an axis
rotationBase: Triple ¬ [], -- origin point of axis of rotation
matrix: Matrix ¬ NIL, -- within world space; presumed always valid
State
visible: BOOL ¬ TRUE, -- display shape or not?
centroidValid: BOOL ¬ FALSE, -- centroid computed?
renderValid: BOOL ¬ FALSE, -- are vertex normals, etc. valid?
showBackfaces: BOOL ¬ FALSE, -- if back facing polygons to be displayed
triangulated: BOOL ¬ FALSE, -- all surfaces are three-sided
normalsNegated: BOOL ¬ FALSE, -- if file vertex normals negated
surfacesReversed: BOOL ¬ FALSE, -- if file surfaces order reversed
verticesIsolated: BOOL ¬ FALSE, -- if vertices have been isolated
Interaction
selected: BOOL ¬ FALSE, -- true if chosen
Bounds
sphereExtent: Sphere ¬ [], -- center and radius of bounding sphere
objectExtent: Box3d ¬ [], -- 3d bounds
Vertices
vertices: VertexSequence ¬ NIL, -- vertices used by the renderer
Surfaces
type: ATOM ¬ $ConvexPolygon, -- patches, polygons, or other
faces: FaceSequence ¬ NIL, -- polygon normals, colors, and transmittances
surfaces: SurfaceSequence ¬ NIL, -- vertex connectivity (polygons or patches)
Edges
edges: EdgeSequence ¬ NIL -- for fast line drawing and other operations
];