osgEarth 2.1.1
Public Member Functions | Private Attributes

osgEarth::Util::ObjectLocatorNode Class Reference

Collaboration diagram for osgEarth::Util::ObjectLocatorNode:

List of all members.

Public Member Functions

 ObjectLocatorNode ()
 ObjectLocatorNode (ObjectLocator *locator)
 ObjectLocatorNode (const Map *map)
 ObjectLocatorNode (const ObjectLocatorNode &rhs, const osg::CopyOp &=osg::CopyOp::SHALLOW_COPY)
 META_Node (osgEarthUtil, ObjectLocatorNode)
void setLocator (ObjectLocator *locator)
ObjectLocatorgetLocator ()
const ObjectLocatorgetLocator () const
virtual void update ()
virtual void traverse (osg::NodeVisitor &nv)

Private Attributes

osg::ref_ptr< ObjectLocator_locator
osgEarth::Revision _matrixRevision

Detailed Description

A transform node that tracks the position/orientation information in an ObjectLocator.

Definition at line 152 of file ObjectLocator.


Constructor & Destructor Documentation

ObjectLocatorNode::ObjectLocatorNode ( )

Definition at line 229 of file ObjectLocator.cpp.

{
    setNumChildrenRequiringUpdateTraversal( 1 );
}
ObjectLocatorNode::ObjectLocatorNode ( ObjectLocator locator)

Definition at line 243 of file ObjectLocator.cpp.

                                                             :
_matrixRevision( -1 )
{
    setNumChildrenRequiringUpdateTraversal( 1 );
    setLocator( locator );
}

Here is the call graph for this function:

ObjectLocatorNode::ObjectLocatorNode ( const Map map)

Definition at line 250 of file ObjectLocator.cpp.

                                                     :
_matrixRevision( -1 )
{
    setNumChildrenRequiringUpdateTraversal( 1 );
    setLocator( new ObjectLocator(map) );
}

Here is the call graph for this function:

ObjectLocatorNode::ObjectLocatorNode ( const ObjectLocatorNode rhs,
const osg::CopyOp &  op = osg::CopyOp::SHALLOW_COPY 
)

Definition at line 234 of file ObjectLocator.cpp.

                                                                                        :
osg::MatrixTransform( rhs, op ),
_matrixRevision( rhs._matrixRevision ),
_locator( rhs._locator.get() )
{
    setNumChildrenRequiringUpdateTraversal( 1 );
    setLocator( _locator.get() ); // to update the trav count
}

Here is the call graph for this function:


Member Function Documentation

ObjectLocator* osgEarth::Util::ObjectLocatorNode::getLocator ( ) [inline]

Definition at line 166 of file ObjectLocator.

{ return _locator.get(); }

Here is the caller graph for this function:

const ObjectLocator* osgEarth::Util::ObjectLocatorNode::getLocator ( ) const [inline]

Definition at line 167 of file ObjectLocator.

{ return _locator.get(); }
osgEarth::Util::ObjectLocatorNode::META_Node ( osgEarthUtil  ,
ObjectLocatorNode   
)
void ObjectLocatorNode::setLocator ( ObjectLocator locator)

The locator creates the positioning matrix for the component.

Definition at line 258 of file ObjectLocator.cpp.

{
    _locator = locator;
    _matrixRevision = -1;    
}

Here is the caller graph for this function:

void ObjectLocatorNode::traverse ( osg::NodeVisitor &  nv) [virtual]

Definition at line 266 of file ObjectLocator.cpp.

{
    if (nv.getVisitorType() == osg::NodeVisitor::UPDATE_VISITOR)
    {
        update();
    }
    osg::MatrixTransform::traverse( nv );
}

Here is the call graph for this function:

void ObjectLocatorNode::update ( ) [virtual]

Synchronizes the transform matrix with the locator.

Definition at line 276 of file ObjectLocator.cpp.

{
    if ( _locator.valid() && _locator->outOfSyncWith( _matrixRevision ) )
    {
        osg::Matrix mat;
        if ( _locator->getLocatorMatrix( mat ) )
        {
            this->setMatrix( mat );
            this->dirtyBound();
            _locator->sync( _matrixRevision );
        }
    }
}

Here is the caller graph for this function:


Member Data Documentation

Definition at line 176 of file ObjectLocator.

Definition at line 177 of file ObjectLocator.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines