Package com.openinventor.inventor.nodes
Class SoLOD
- All Implemented Interfaces:
SafeDisposable
- Direct Known Subclasses:
SoLevelOfSimplification
Distance-based level-of-detail switching group node.
This group node is used to allow applications to switch between various representations of objects automatically. The children of this node typically represent the same object or objects at varying levels of detail, from highest detail to lowest. The distance from the world-space eye point to the transformed center of the LOD is computed, and one child is drawn, based on the values in the ranges field.
More precisely, if the distance from the world-space eyepoint to the transformed center is D and the ranges array contains LAST_RANGE+1 values (numbered 0...LAST_RANGE), then:
Thus, N ranges and N+1 children should be specified. If you specify too few children, the last child will be used for the extra ranges. If you specify too few ranges, the extra children will never be used.if D < ranges[0] : Child 0 is drawn else if ranges[i-1] < D < ranges[i] : Child i is drawn else if D > ranges[LAST_RANGE] : Child LAST_RANGE+1 is drawn
It is often useful to define the lowest detail child to be an SoInfo
node. This causes the object to completely disappear if it is far enough away from the eyepoint. Defining the highest detail child to be an SoInfo
node can also be useful if you want the object to disappear if it gets too close to the eyepoint.
File format/default:
LOD {
center | 0 0 0 |
range | [ ] |
Action behavior:
SoGLRenderAction
, SoRayPickAction
, SoCallbackAction
Only the child with the appropriate level of detail is traversed.
Other actions
All implemented as for SoGroup
.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.openinventor.inventor.nodes.SoNode
SoNode.RenderModes
Nested classes/interfaces inherited from class com.openinventor.inventor.Inventor
Inventor.ConstructorCommand
-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal SoSFVec3f
Object-space center of the model.final SoMFFloat
World-space distances to use as switching criteria.Fields inherited from class com.openinventor.inventor.nodes.SoGroup
boundingBoxIgnoring
Fields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle
-
Constructor Summary
Constructors -
Method Summary
Methods inherited from class com.openinventor.inventor.nodes.SoGroup
addChild, findChild, getChild, getNumChildren, insertChild, removeAllChildren, removeChild, removeChild, replaceChild, replaceChild
Methods inherited from class com.openinventor.inventor.nodes.SoNode
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, getRenderEngineMode, getRenderUnitID, GLRender, GLRenderBelowPath, GLRenderInPath, GLRenderOffPath, grabEventsCleanup, grabEventsSetup, handleEvent, isBoundingBoxIgnoring, isOverride, pick, rayPick, search, setOverride, touch, write
Methods inherited from class com.openinventor.inventor.fields.SoFieldContainer
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaults
Methods inherited from class com.openinventor.inventor.misc.SoBase
dispose, getName, isDisposable, isSynchronizable, setName, setSynchronizable
Methods inherited from class com.openinventor.inventor.Inventor
getNativeResourceHandle
-
Field Details
-
range
World-space distances to use as switching criteria. -
center
Object-space center of the model.
-
-
Constructor Details
-
SoLOD
public SoLOD(int nChildren) Constructor that takes approximate number of children. -
SoLOD
public SoLOD()Creates a distance-based level-of-detail node with default settings.
-