SGL Class Hierarchy
The class hierarchy is as follows (indentation indicates subclassing):
-
sglObject - name, user data, reference counting
-
sglNode - bounding sphere, parent list
-
sglGroup - interior nodes with child list
-
sglBillboard - a transform node that rotates to face viewer
-
sglCallback - performs a user defined callback during some phase
of traversal
-
sglDiscriminator - prune a traversal based on a bitmask test
-
sglLayer - ordered rendering for coplanar polygons without rendering
artifacts
-
sglLOD - select a child based on range from the viewer
-
sglDistanceSwitch - select all or no children based on range from the viewer (a simplified version of sglLOD)
-
sglLODStateNode - affect the LOD range calculation (bias and offset)
for all sglLOD and sglDistanceSwitch nodes below this one in the tree
-
sglOrderedGroup - ensures the order in which the children are rendered.
-
sglScene - root of a scenegraph (traversals must begin here?)
-
sglSwitch - select a none, one or all children for further traversal
-
sglBitMaskSwitch - select a none, one or any subset of up to 32
children for further traversal
-
sglIndexedBitMaskSwitch - with an index select one of an array of
subsets of (up to 32) children for further traversal
-
sglAnimation - abstract base class for all animation nodes
-
sglKeyFrameAnimation - animation class where transitions are based
on the number of frames that have elapsed
-
sglTimedAnimation - animation class where transitions are based
on amount of time elapsed
-
sglScale - an SP or DP uniform scale node
-
sglTranslate - an SP or DP translate node
-
sglTransform - an SP or DP transform node
-
sglDefaultStateNode - specify default statelets for all sglDrawable
objects below (only affects those leaf nodes that do not explicitly specify
that statelet, and can be "overridden" by subsequent sglDefaultStateNodes
in the sub-tree below).
-
sglOverrideStateNode - specify override values for the statelets
contained within (only overridden by ancestor sglOverrideStateNode nodes
in the graph *ABOVE*).
-
sglUnProject - a node that transforms the current view matrix so
that objects below will appear on the near clip plane.
-
sglUnScale - a node that transforms the current view matrix such
that objects below are scaled to appear the same size no matter how far
in front of the near clip plane they are.
-
sglGeode - a leaf node that consists of a number of sglDrawable
objects
-
sglLight - abstract base class for all types of lights (defines
the color components)
-
sglDirectionalLight - defines an "inifinite" light (parallel light
rays from a specified direction).
-
sglPositionalLight - defines a "local?" light at a specified position
with optional attenuation.
-
sglSpotLight - a positional light with spot light parameters (direction,
cutoff and exponent).
-
sglLightPoint - (future) currently in the proposal phase
-
sglViewPlatform - leaf node whose origin indicates the position
and orientation of an sglCamera (the view point)
-
sglCamera - abstract base class for all camera types, it encapsulates
the specification of the view frustum used for culling and rendering
-
sglOrthographicCamera - specifies an orthographic viewing volume
-
sglPerspectiveCamera - specifies a perspective viewing volume (frustum).
-
sglDrawable - abstract base class that enforces a pure virtual draw
function (all things that get selected for drawing by the cull traversal
must be subclassed from this); stores state (sglStatelets); an axis-aligned
bounding box; a parent sglGeode list
-
sglTextSet - contains a string to be rendered as a
bitmap (using sglBitmapFont).
-
sglTexturedTextSet - contains a string to be rendered
as a texture on a polygon face (using sglTextureFont).
-
sglInterleavedGeometry - one big array for all components (vertices,
colors, normal, and/or texcoords).
-
sglGeoSet - base class for all non-interleaved geometry specifications
which contains separate arrays for vertex, color, normal, and texcoord
arrays.
-
sglPointSet -
-
sglLineSet -
-
sglTriangleSet -
-
sglQuadSet -
-
sglGeoStripSet -
-
sglLineStripSet -
-
sglTriangleFanSet -
-
sglTriangleStripSet -
-
sglQuadStripSet -
-
sglPolygonSet -
-
sglIndexedGeoSet - includes four separate indices into the vertex,
color, normal, and texcoord arrays.
-
sglIndexedPointSet -
-
sglIndexedLineSet -
-
sglIndexedTriangleSet -
-
sglIndexedQuadSet -
-
sglIndexedGeoStripSet -
-
sglIndexedLineStripSet -
-
sglIndexedTriangleFanSet -
-
sglIndexedTriangleStripSet -
-
sglIndexedQuadStripSet -
-
sglIndexedPolygonSet -
-
sglMonoIndexedGeoSet - includes a single index into the vertex,
color, normal, and texcoord arrays.
-
sglMonoIndexedPointSet -
-
sglMonoIndexedLineSet -
-
sglMonoIndexedTriangleSet -
-
sglMonoIndexedQuadSet -
-
sglMonoIndexedGeoStripSet -
-
sglMonoIndexedLineStripSet -
-
sglMonoIndexedTriangleFanSet -
-
sglMonoIndexedTriangleStripSet -
-
sglMonoIndexedQuadStripSet -
-
sglMonoIndexedPolygonSet -
-
sglBezierCurveSet -
-
sglBezierSurfaceSet -
-
sglStatelet - base class for elements of OpenGL state that is used
to affect the appearance of an sglDrawable
-
sglBooleanStatelet - base class for all statelets that are either
on or off
-
sglAntiAliasLine
-
sglAntiAliasPoint
-
sglAntiAliasPolygon
-
sglDepthMask
-
sglDithering
-
sglHighlight
-
sglLighting
-
sglTransparency
-
sglAlphaTest - set the glAlphaFunc parameters
-
sglBlending - set the glBlendFunc parameters
-
sglColorMask
-
sglCullMode - off, front, back, or "front and back" face culling
-
sglDepthRange
-
sglDepthSort
-
sglDepthTest
-
sglFog - define the fog properties
-
sglFrontFace
-
sglLineStipple - define the line stipple pattern
-
sglLineWidth - define the width of lines
-
sglLogicOp
-
sglMaterial - define the material properties
-
sglOcclusionCull - enable occlusion culling (where supported)
-
sglPointParameters -
-
sglPointSize - define the point radius
-
sglPolygonOffset - define the scale and offset for depth buffer
adjustments
-
sglPolygonStipple - define the polygon stipple pattern.
-
sglPolyStyle - define for point, line or fill modes
-
sglPolyFrontStyle
-
sglPolyBackStyle
-
sglShadeModel
-
sglMultiTextureStatelet - support multitexturing
-
sglTexturingStatelet - abstract base class for texture related
statelets that could be applied to separate texturing units
-
sglTexture - define the texture properties
-
sglTexture1D - 1D textures
-
sglTexture2D - 2D textures
-
sglTextureCubeMap - Cube map textures
-
sglTexEnv - part of the sglTexture configuration (decal/modulate,
blend colors)
-
sglTexGen - part of the sglTexture configuration (automatic texcoord
generation configuration)
-
sglTextureMatrix - push a new matrix on the texture matrix stack
-
sglTransformationStatelet - only used internally to sort on matrix
pushes
-
sglLODState - affect the range calculation in an sglLOD node (this
should become an sglStatelet)
A number of classes are used in the traversal and state sorting processing:
-
sglRangeObject - used for transparency sorting
-
sglOcclusionObject - used for occlusion sorting
-
sglTraversalState - the actual traverser; contains a vector of statelets
defining the complete OpenGL state
-
sglStatsTraversalState - same as above, but with statistics collection
-
sglFullState - a complete vector of all statelets defining a complete OpenGL
state
-
sglCurrState - the current vector of statelets (during traversal)
-
sglDrawablePool - base class for user defined state sorting mechanism
-
sglUnsortedDrawablePool - traversals without state sorting.
-
sglSortedDrawablePool - with state sorting
-
sglObjPool - pool of objects used during sorting
-
sglView - a convenience class for fast prototyping (encapsulates a basic
traversal functionality).
Classes used in the intersect and pick traversals:
-
sglProbe - contains the intersect and probe specific enums
-
sglIntersect - maintains the traversal state for intersect (was sglSegSet)
-
sglPick (future) - maintains the traversal state for pick
A number of geometric math classes are also used (most are templated for
SP and DP versions):
-
sglVec2
-
sglVec3
-
sglVec4
-
sglMat2
-
sglMat3
-
sglMat4
-
sglPlane
-
sglPolytope - a set of planes
-
sglFrustum - a six-sided polytope generated from orthographic or perspective
view parameters
-
sglSphereBound - bounding sphere
-
sglBoxBound - bounding box
-
sglSegment - a directed segment (mainly for intersect traversals)
-
sglBitmapFont - for use with the sglText node
-
sglBitmapFontGLUT - wrapper for bitmap fonts in the GLUT library
-
sglBitmapFontGLX - wrapper for bitmap fonts built into GLX (X windows only)
-
sglBitmapFontWGL - wrapper for bitmap fonts built into Windoze (Micro$oft
Windoze only).
-
sglTextureFont - for use with the sglTexturedText node.