OpenFrames
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
OpenFrames::SubtreeTracker Class Reference

Remembers each frame of a tracked frame. More...

#include <SubtreeTracker.hpp>

Inheritance diagram for OpenFrames::SubtreeTracker:
OpenFrames::FrameTracker

Public Member Functions

 SubtreeTracker (ReferenceFrame *frame)
 
virtual void childAdded (ReferenceFrame *child, ReferenceFrame *parent)
 
virtual void childRemoved (ReferenceFrame *child, ReferenceFrame *parent)
 
virtual void setRoot (ReferenceFrame *frame)
 
virtual void rescan ()
 
ReferenceFramegetFrame (const std::string &name)
 
void printFrameList ()
 
- Public Member Functions inherited from OpenFrames::FrameTracker
 FrameTracker (ReferenceFrame *frame)
 
ReferenceFramegetRoot ()
 

Protected Member Functions

void _addAllChildren (ReferenceFrame *frame)
 
void _removeAllChildren (ReferenceFrame *frame)
 

Protected Attributes

FrameMap _frames
 
- Protected Attributes inherited from OpenFrames::FrameTracker
osg::ref_ptr< ReferenceFrame_root
 

Detailed Description

Remembers each frame of a tracked frame.

Implements a simple FrameTracker that remembers each frame in the tracked frame's subtree, by name. This allows for quick lookups of frames by their names without having to traverse the subtree. Note that if there are multiple frames with the same name, then only the first encountered frame will be remembered. All other frames with the same name (and their subtrees) will be ignored.

Member Function Documentation

◆ childAdded()

virtual void OpenFrames::SubtreeTracker::childAdded ( ReferenceFrame child,
ReferenceFrame parent 
)
virtual

Called when a frame is added/removed from a tracked frame

Implements OpenFrames::FrameTracker.

◆ getFrame()

ReferenceFrame* OpenFrames::SubtreeTracker::getFrame ( const std::string &  name)

Lookup a frame based on its name

◆ printFrameList()

void OpenFrames::SubtreeTracker::printFrameList ( )

Print a list (to std::cout) of all tracked frames

◆ rescan()

virtual void OpenFrames::SubtreeTracker::rescan ( )
virtual

Rescan the root's subtree to check if there are any previously untracked frames that can now be tracked. This should be called if a frame is removed from root's subtree, in case there are different frames with the same name in the root's subtree.

◆ setRoot()

virtual void OpenFrames::SubtreeTracker::setRoot ( ReferenceFrame frame)
virtual

Set which frame to track

Reimplemented from OpenFrames::FrameTracker.


The documentation for this class was generated from the following file: