36#include <Inventor/SbBasic.h>
37#include <Inventor/SoType.h>
38#include <Inventor/misc/SoTempPath.h>
39#include <Inventor/tools/SbPimplPtr.h>
44#include <Inventor/lists/SoActionMethodList.h>
45#include <Inventor/lists/SoEnabledElementsList.h>
48#ifdef COIN_UNDEF_IN_PATH_HACK
49#include <sys/unistd.h>
62#define SO_ENABLE(action, element) \
64 assert(!element::getClassTypeId().isBad()); \
65 action::enableElement(element::getClassTypeId(), \
66 element::getClassStackIndex()); \
83 enum PathCode { NO_PATH = 0, IN_PATH = 1, BELOW_PATH = 2, OFF_PATH = 3 };
87 static SoType getClassTypeId(
void);
93 virtual void apply(
const SoPathList & pathlist, SbBool obeysrules = FALSE);
117 void usePathCode(
int & numindices,
const int * & indices);
150 static SoType classTypeId;
155 static void atexit_cleanup(
void);
174 return this->currentpathcode;
Definition SbPimplPtr.h:55
The SoActionMethodList class contains function pointers for action methods.
Definition SoActionMethodList.h:44
The SoAction class is the base class for all traversal actions.
Definition SoAction.h:77
PathCode
Definition SoAction.h:83
void pushCurPath(const int childindex, SoNode *node=NULL)
Definition SoAction.cpp:961
AppliedCode
Definition SoAction.h:82
virtual void invalidateState(void)
Definition SoAction.cpp:821
void switchToPathTraversal(SoPath *path)
Definition SoAction.cpp:1313
PathCode getPathCode(int &numindices, const int *&indices)
Definition SoAction.cpp:928
SoState * getState(void) const
Definition SoAction.cpp:1084
virtual SoNode * getCurPathTail(void)
Definition SoAction.cpp:1117
const SoPathList * getOriginalPathListAppliedTo(void) const
Definition SoAction.cpp:904
virtual SbBool isOfType(SoType type) const
Definition SoAction.cpp:449
SoState * state
Definition SoAction.h:140
virtual SbBool shouldCompactPathList(void) const
Definition SoAction.cpp:1303
static SoActionMethodList * getClassActionMethods(void)
Definition SoAction.cpp:1249
virtual SoType getTypeId(void) const =0
static void nullAction(SoAction *action, SoNode *node)
Definition SoAction.cpp:834
static void initClass(void)
Definition SoAction.cpp:370
const SoPathList * getPathListAppliedTo(void) const
Definition SoAction.cpp:889
SoNode * getNodeAppliedTo(void) const
Definition SoAction.cpp:855
AppliedCode getWhatAppliedTo(void) const
Definition SoAction.cpp:843
SoAction(void)
Definition SoAction.cpp:337
void traverse(SoNode *const node)
Definition SoAction.cpp:940
void popCurPath(const PathCode prevpathcode)
Definition SoAction.cpp:1050
virtual void beginTraversal(SoNode *node)
Definition SoAction.cpp:1269
virtual void endTraversal(SoNode *node)
Definition SoAction.cpp:1279
static void initClasses(void)
Definition SoAction.cpp:409
void setTerminated(const SbBool flag)
Definition SoAction.cpp:1294
PathCode getCurPathCode(void) const
Definition SoAction.h:172
static SoEnabledElementsList * getClassEnabledElements(void)
Definition SoAction.cpp:1237
void switchToNodeTraversal(SoNode *node)
Definition SoAction.cpp:1340
virtual void apply(SoNode *root)
Definition SoAction.cpp:463
SbBool isLastPathListAppliedTo(void) const
Definition SoAction.cpp:915
void popPushCurPath(const int childindex, SoNode *node=NULL)
Definition SoAction.cpp:1193
virtual const SoEnabledElementsList & getEnabledElements(void) const
Definition SoAction.cpp:1225
void usePathCode(int &numindices, const int *&indices)
Definition SoAction.cpp:1126
SoPath * getPathAppliedTo(void) const
Definition SoAction.cpp:869
SbBool hasTerminated(void) const
Definition SoAction.cpp:1074
const SoPath * getCurPath(void)
Definition SoAction.cpp:1108
SoActionMethodList * traversalMethods
Definition SoAction.h:141
The SoEnabledElementsList class is a container for type info for element types that are enabled in ac...
Definition SoEnabledElementsList.h:38
The SoNode class is the base class for nodes used in scene graphs.
Definition SoNode.h:56
The SoPathList class is a container for pointers to SoPath objects.
Definition SoPathList.h:40
The SoPath class is a container class for traversal path descriptions.
Definition SoPath.h:52
The SoState class manages the Coin scene graph traversal state data.
Definition SoState.h:44
The SoTempPath class is used to store temporary paths.
Definition SoTempPath.h:38
The SoType class is the basis for the runtime type system in Coin.
Definition SoType.h:59