27#include <Inventor/SbBasic.h>
28#include <Inventor/SoType.h>
29#include <Inventor/misc/SoTempPath.h>
34#include <Inventor/lists/SoActionMethodList.h>
35#include <Inventor/lists/SoEnabledElementsList.h>
38#ifdef COIN_UNDEF_IN_PATH_HACK
39#include <sys/unistd.h>
52#define SO_ENABLE(action, element) \
54 assert(!element::getClassTypeId().isBad()); \
55 action::enableElement(element::getClassTypeId(), \
56 element::getClassStackIndex()); \
70 enum PathCode { NO_PATH = 0, IN_PATH = 1, BELOW_PATH = 2, OFF_PATH = 3 };
74 static void initClass(
void);
75 static void initClasses(
void);
77 static SoType getClassTypeId(
void);
84 virtual void apply(
const SoPathList & pathlist, SbBool obeysrules = FALSE);
108 void usePathCode(
int & numindices,
const int * & indices);
142 static SoType classTypeId;
147 static void atexit_cleanup(
void);
150 SoTempPath currentpath;
161 return this->currentpathcode;
167 this->currentpath.pop();
168 this->currentpathcode = prevpathcode;
The SoActionMethodList class contains function pointers for action methods.
Definition SoActionMethodList.h:35
The SoAction class is the base class for all traversal actions.
Definition SoAction.h:67
PathCode
Definition SoAction.h:70
void pushCurPath(const int childindex, SoNode *node=NULL)
Definition SoAction.cpp:919
AppliedCode
Definition SoAction.h:69
virtual void invalidateState(void)
Definition SoAction.cpp:783
void switchToPathTraversal(SoPath *path)
Definition SoAction.cpp:1252
PathCode getPathCode(int &numindices, const int *&indices)
Definition SoAction.cpp:890
SoState * getState(void) const
Definition SoAction.cpp:1028
virtual SoNode * getCurPathTail(void)
Definition SoAction.cpp:1053
const SoPathList * getOriginalPathListAppliedTo(void) const
Definition SoAction.cpp:866
virtual SbBool isOfType(SoType type) const
Definition SoAction.cpp:462
SoState * state
Definition SoAction.h:132
virtual SbBool shouldCompactPathList(void) const
Definition SoAction.cpp:1242
static SoActionMethodList * getClassActionMethods(void)
Definition SoAction.cpp:1188
virtual SoType getTypeId(void) const =0
static void nullAction(SoAction *action, SoNode *node)
Definition SoAction.cpp:796
const SoPathList * getPathListAppliedTo(void) const
Definition SoAction.cpp:851
SoNode * getNodeAppliedTo(void) const
Definition SoAction.cpp:817
AppliedCode getWhatAppliedTo(void) const
Definition SoAction.cpp:805
SoAction(void)
Definition SoAction.cpp:357
void traverse(SoNode *const node)
Definition SoAction.cpp:902
void popCurPath(const PathCode prevpathcode)
Definition SoAction.h:165
virtual void beginTraversal(SoNode *node)
Definition SoAction.cpp:1208
void popCurPath(void)
Definition SoAction.cpp:1152
virtual void endTraversal(SoNode *node)
Definition SoAction.cpp:1218
void setTerminated(const SbBool flag)
Definition SoAction.cpp:1233
PathCode getCurPathCode(void) const
Definition SoAction.h:159
static SoEnabledElementsList * getClassEnabledElements(void)
Definition SoAction.cpp:1176
void switchToNodeTraversal(SoNode *node)
Definition SoAction.cpp:1279
virtual void apply(SoNode *root)
Definition SoAction.cpp:476
SbBool isLastPathListAppliedTo(void) const
Definition SoAction.cpp:877
void popPushCurPath(const int childindex, SoNode *node=NULL)
Definition SoAction.cpp:1132
virtual const SoEnabledElementsList & getEnabledElements(void) const
Definition SoAction.cpp:1164
void usePathCode(int &numindices, const int *&indices)
Definition SoAction.cpp:1062
SoPath * getPathAppliedTo(void) const
Definition SoAction.cpp:831
SbBool hasTerminated(void) const
Definition SoAction.cpp:1018
const SoPath * getCurPath(void)
Definition SoAction.cpp:1044
SoActionMethodList * traversalMethods
Definition SoAction.h:133
The SoEnabledElementsList class is a container for type info for element types that are enabled in ac...
Definition SoEnabledElementsList.h:29
The SoNode class is the base class for nodes used in scene graphs.
Definition SoNode.h:47
The SoPathList class is a container for pointers to SoPath objects.
Definition SoPathList.h:31
The SoPath class is a container class for traversal path descriptions.
Definition SoPath.h:43
The SoState class manages the Coin scenegraph traversal state data.
Definition SoState.h:35
The SoType class is the basis for the run-time type system in Coin.
Definition SoType.h:50