osg::GraphOp Class Reference
[Rendering BackendGeometry]

#include <OSGGraphOp.h>

Inheritance diagram for osg::GraphOp:

osg::MakeTransparentGraphOp osg::MaterialMergeGraphOp osg::MergeGraphOp osg::PruneGraphOp osg::SharePtrGraphOp osg::SingleTypeGraphOp< Type > osg::SplitGraphOp osg::VerifyGraphOp osg::SingleTypeGraphOp< osg::Geometry >

List of all members.

Public Member Functions

Constructors


 GraphOp (const char *name="")
virtual GraphOpcreate (void)=0
Destructors


virtual ~GraphOp (void)
Parameters


virtual void setParams (const std::string params)=0
virtual std::string usage (void)=0
Main methods


virtual bool traverse (NodePtr &root)
const std::string & getName (void)
void setName (const char *name)
Exclusion


void addToExcludeList (NodePtr &node)
void addToExcludeList (const std::string &name)
void removeFromExcludeList (NodePtr &node)
void removeFromExcludeList (const std::string &name)
void clearExcludeList (void)
bool isInExcludeListNodes (NodePtr &node)
bool isInExcludeListNames (const std::string &name)
bool isInExcludeList (NodePtr &node)

Static Public Member Functions

Class Get


static const char * getClassname (void)

Protected Member Functions

virtual Action::ResultE traverseEnter (NodePtr &node)=0
virtual Action::ResultE traverseLeave (NodePtr &node, Action::ResultE res)=0

Protected Attributes

std::list< NodePtr_excludeListNodes
std::list< std::string > _excludeListNames

Private Attributes

std::string _name

Classes

class  ParamSet


Detailed Description

GraphOp class

A base class used to traverse geometries.

Parameters are generally passed using the setParams() method (or indirectly from constructing a GraphOpSeq via string) and follow the following conventions:

Calling usage() gives a short textual desription of the purpose and parameters of a GraphOp.

Definition at line 60 of file OSGGraphOp.h.


Constructor & Destructor Documentation

GraphOp::GraphOp ( const char *  name = ""  ) 

Definition at line 85 of file OSGGraphOp.cpp.

00085                                 : 
00086     _name(name), _excludeListNodes(), _excludeListNames()
00087 {
00088 }

GraphOp::~GraphOp ( void   )  [virtual]

Definition at line 90 of file OSGGraphOp.cpp.

00091 {
00092 }


Member Function Documentation

static const char* osg::GraphOp::getClassname ( void   )  [inline, static]

virtual GraphOp* osg::GraphOp::create ( void   )  [pure virtual]

virtual void osg::GraphOp::setParams ( const std::string  params  )  [pure virtual]

virtual std::string osg::GraphOp::usage ( void   )  [pure virtual]

bool GraphOp::traverse ( NodePtr root  )  [virtual]

const std::string & GraphOp::getName ( void   ) 

Definition at line 112 of file OSGGraphOp.cpp.

References _name.

Referenced by osg::GraphOpFactory::registerOp(), and osg::GraphOpFactory::unRegisterOp().

00113 {
00114     return _name;
00115 };

void GraphOp::setName ( const char *  name  ) 

Definition at line 117 of file OSGGraphOp.cpp.

References _name.

00118 {
00119     _name = name;
00120 };

void GraphOp::addToExcludeList ( NodePtr node  ) 

Definition at line 124 of file OSGGraphOp.cpp.

References _excludeListNodes, and isInExcludeListNodes().

Referenced by osg::MergeGraphOp::excludeListLeave(), and osg::GraphOpSeq::setGraphOps().

00125 {
00126     if (!isInExcludeListNodes(node))
00127         _excludeListNodes.push_back(node);
00128 }

void GraphOp::addToExcludeList ( const std::string &  name  ) 

Definition at line 130 of file OSGGraphOp.cpp.

References _excludeListNames, and isInExcludeListNames().

00131 {
00132     if (!isInExcludeListNames(name))
00133         _excludeListNames.push_back(name);
00134 }

void GraphOp::removeFromExcludeList ( NodePtr node  ) 

Definition at line 136 of file OSGGraphOp.cpp.

References _excludeListNodes.

00137 {
00138     _excludeListNodes.remove(node);
00139 }

void GraphOp::removeFromExcludeList ( const std::string &  name  ) 

Definition at line 141 of file OSGGraphOp.cpp.

References _excludeListNames.

00142 {
00143     _excludeListNames.remove(name);
00144 }

void GraphOp::clearExcludeList ( void   ) 

Definition at line 146 of file OSGGraphOp.cpp.

References _excludeListNames, and _excludeListNodes.

00147 {
00148     _excludeListNames.clear();
00149     _excludeListNodes.clear();
00150 }

bool GraphOp::isInExcludeListNodes ( NodePtr node  ) 

Definition at line 152 of file OSGGraphOp.cpp.

References _excludeListNodes.

Referenced by addToExcludeList(), and isInExcludeList().

00153 {
00154     std::list<NodePtr>::iterator list_iter;
00155     list_iter = std::find(_excludeListNodes.begin(),_excludeListNodes.end(),node);
00156 
00157     if (list_iter==_excludeListNodes.end()) 
00158         return false;
00159     else 
00160         return true;
00161 }

bool GraphOp::isInExcludeListNames ( const std::string &  name  ) 

Definition at line 163 of file OSGGraphOp.cpp.

References _excludeListNames.

Referenced by addToExcludeList(), and isInExcludeList().

00164 {
00165     std::list<std::string>::iterator namelist_iter;
00166     namelist_iter = std::find(_excludeListNames.begin(),_excludeListNames.end(),name);
00167 
00168     if (namelist_iter==_excludeListNames.end()) 
00169         return false;
00170     else 
00171         return true;
00172 }

bool GraphOp::isInExcludeList ( NodePtr node  ) 

virtual Action::ResultE osg::GraphOp::traverseEnter ( NodePtr node  )  [protected, pure virtual]

virtual Action::ResultE osg::GraphOp::traverseLeave ( NodePtr node,
Action::ResultE  res 
) [protected, pure virtual]


Member Data Documentation

std::list<NodePtr> osg::GraphOp::_excludeListNodes [protected]

std::list<std::string> osg::GraphOp::_excludeListNames [protected]

std::string osg::GraphOp::_name [private]

Definition at line 166 of file OSGGraphOp.h.

Referenced by getName(), and setName().


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

Generated on Mon Mar 17 11:12:27 2008 for OpenSG by  doxygen 1.5.5