GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  SOLEVELOFDETAIL (3)

NAME

SoLevelOfDetail — level-of-detail switching group node

CONTENTS

Inherits From
Synopsis
Description
Fields
Methods
Action Behavior
File Format/defaults
See Also

INHERITS FROM

SoBase > SoFieldContainer > SoNode > SoGroup > SoLevelOfDetail

SYNOPSIS

#include <Inventor/nodes/SoLevelOfDetail.h>

Fields from class SoLevelOfDetail:

    SoMFFloat    
                    
SoMFFloat            screenArea

Methods from class SoLevelOfDetail:

       
                    
                     SoLevelOfDetail()    
static SoType    
                    
static SoType        getClassTypeId()

Methods from class SoGroup:

    void    
                    
void                 addChild(SoNode *child)    
void    
                    
void                 insertChild(SoNode *child, int newChildIndex)    
SoNode *    
                    
SoNode *             getChild(int index) const    
int    
                    
int                  findChild(const SoNode *child) const    
int    
                    
int                  getNumChildren() const    
void    
                    
void                 removeChild(int index)    
void    
                    
void                 removeChild(SoNode *child)    
void    
                    
void                 removeAllChildren()    
void    
                    
void                 replaceChild(int index, SoNode *newChild)    
void    
                    
void                 replaceChild(SoNode *oldChild, SoNode *newChild)

Methods from class SoNode:

    void    
                    
void                 setOverride(SbBool state)    
SbBool    
                    
SbBool               isOverride() const    
SoNode *    
                    
SoNode *             copy(SbBool copyConnections = FALSE) const    
virtual SbBool    
                    
virtual SbBool       affectsState() const    
static SoNode *    
                    
static SoNode *      getByName(const SbName &name)    
static int    
                    
static int           getByName(const SbName &name, SoNodeList &list)

Methods from class SoFieldContainer:

    void    
                    
void                 setToDefaults()    
SbBool    
                    
SbBool               hasDefaultValues() const    
SbBool    
                    
SbBool               fieldsAreEqual(const SoFieldContainer *fc) const    
void    
                    
void                 copyFieldValues(const SoFieldContainer *fc, SbBool copyConnections = FALSE)    
SbBool    
                    
SbBool               set(const char *fieldDataString)    
void    
                    
void                 get(SbString &fieldDataString)    
virtual int    
                    
virtual int          getFields(SoFieldList &resultList) const    
virtual SoField *    
                    
virtual SoField *    getField(const SbName &fieldName) const    
SbBool    
                    
SbBool               getFieldName(const SoField *field, SbName &fieldName) const    
SbBool    
                    
SbBool               isNotifyEnabled() const    
SbBool    
                    
SbBool               enableNotify(SbBool flag)

Methods from class SoBase:

    void    
                    
void                 ref()    
void    
                    
void                 unref() const    
void    
                    
void                 unrefNoDelete() const    
void    
                    
void                 touch()    
virtual SoType    
                    
virtual SoType       getTypeId() const    
SbBool    
                    
SbBool               isOfType(SoType type) const    
virtual void    
                    
virtual void         setName(const SbName &name)    
virtual SbName    
                    
virtual SbName       getName() const

DESCRIPTION

The children of this node typically represent the same object or objects at varying levels of detail, from highest detail to lowest. The size of the objects when projected into the viewport is used to determine which version to use (i.e., which child to traverse).

The size is computed as the area of the screen rectangle enclosing the projection of the 3D bounding box that encloses all of the children. When rendering, this size is compared to the values in the screenArea field. If the size is greater than the first value, child 0 is traversed. If it is smaller than the first, but greater than the second, child 1 is traversed, and so on. If there are fewer children than are required by this rule, the last child is traversed. The screenArea field contains just 0 by default, so the first child is always traversed.

The size calculation takes the current complexity into account. If the complexity is 0 or is of type BOUNDING_BOX, the last child is always traversed. If the complexity is less than .5, the computed size is scaled down appropriately to use (possibly) a less detailed representation. If the complexity is greater than .5, the size is scaled up. At complexity 1, the first child is always used.

Note that the SoLOD node is similar to SoLevelOfDetail, except the switching between levels in the SoLOD node is based on distance from the camera, which is faster than using screen area.

FIELDS

    SoMFFloat    
                    
SoMFFloat            screenArea
Areas to use for comparison

METHODS

       
                    
                     SoLevelOfDetail()
Creates a level-of-detail node with default settings.

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

SoGetBoundingBoxAction
The box that encloses all children is computed. (This is the box that is needed to compute the projected size.)

others
All implemented as for SoGroup.

FILE FORMAT/DEFAULTS

LevelOfDetail {



screenArea  0


}

SEE ALSO

SoLOD, SoComplexity, SoSwitch, SoGroup

Search for    or go to Top of page |  Section 3 |  Main Index


SOLEVELOFDETAIL(3IV) (-->)

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.