Scroll to navigation

SoLOD(3IV)() SoLOD(3IV)()

NAME

SoLOD — distance-based level-of-detail switching group node

INHERITS FROM

SoBase > SoFieldContainer > SoNode > SoGroup > SoLOD

SYNOPSIS

#include <Inventor/nodes/SoLOD.h>
 

Fields from class SoLOD:
 

SoMFFloat range
 

SoSFVec3f center
 

Methods from class SoLOD:
 

SoLOD()
 

static SoType getClassTypeId()
 

Methods from class SoGroup:
 

void addChild(SoNode *child)
 

void insertChild(SoNode *child, int newChildIndex)
 

SoNode * getChild(int index) const
 

int findChild(const SoNode *child) const
 

int getNumChildren() const
 

void removeChild(int index)
 

void removeChild(SoNode *child)
 

void removeAllChildren()
 

void replaceChild(int index, SoNode *newChild)
 

void replaceChild(SoNode *oldChild, SoNode *newChild)
 

Methods from class SoNode:
 

void setOverride(SbBool state)
 

SbBool isOverride() const
 

SoNode * copy(SbBool copyConnections = FALSE) const
 

virtual SbBool affectsState() const
 

static SoNode * getByName(const SbName &name)
 

static int getByName(const SbName &name, SoNodeList &list)
 

Methods from class SoFieldContainer:
 

void setToDefaults()
 

SbBool hasDefaultValues() const
 

SbBool fieldsAreEqual(const SoFieldContainer *fc) const
 

void copyFieldValues(const SoFieldContainer *fc, SbBool copyConnections = FALSE)
 

SbBool set(const char *fieldDataString)
 

void get(SbString &fieldDataString)
 

virtual int getFields(SoFieldList &resultList) const
 

virtual SoField * getField(const SbName &fieldName) const
 

SbBool getFieldName(const SoField *field, SbName &fieldName) const
 

SbBool isNotifyEnabled() const
 

SbBool enableNotify(SbBool flag)
 

Methods from class SoBase:
 

void ref()
 

void unref() const
 

void unrefNoDelete() const
 

void touch()
 

virtual SoType getTypeId() const
 

SbBool isOfType(SoType type) const
 

virtual void setName(const SbName &name)
 

virtual SbName getName() const
 

DESCRIPTION

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:
 
 

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

 
 
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.
 
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.

FIELDS


SoMFFloat range
 

World-space distances to use as switching criteria.
 


SoSFVec3f center
 

Object-space center of the model.
 

METHODS


SoLOD()
 

Creates a distance-based level-of-detail node with default settings.
 


static SoType getClassTypeId()
 

Returns type identifier for this class.
 

ACTION BEHAVIOR

SoGLRenderAction, SoRayPickAction, SoCallbackAction
 

Only the child with the appropriate level of detail is traversed.
 

others
 

All implemented as for SoGroup.
 

FILE FORMAT/DEFAULTS

LOD {

center 0 0 0 range [ ]
}

SEE ALSO

SoSwitch, SoGroup