27#include <Inventor/SbBasic.h>
28#include <Inventor/SoType.h>
29#include <Inventor/misc/SoTempPath.h>
30#include <Inventor/tools/SbPimplPtr.h>
35#include <Inventor/lists/SoActionMethodList.h>
36#include <Inventor/lists/SoEnabledElementsList.h>
39#ifdef COIN_UNDEF_IN_PATH_HACK
40#include <sys/unistd.h>
53#define SO_ENABLE(action, element) \
55 assert(!element::getClassTypeId().isBad()); \
56 action::enableElement(element::getClassTypeId(), \
57 element::getClassStackIndex()); \
74 enum PathCode { NO_PATH = 0, IN_PATH = 1, BELOW_PATH = 2, OFF_PATH = 3 };
78 static SoType getClassTypeId(
void);
84 virtual void apply(
const SoPathList & pathlist, SbBool obeysrules = FALSE);
108 void usePathCode(
int & numindices,
const int * & indices);
141 static SoType classTypeId;
146 static void atexit_cleanup(
void);
153 SbPimplPtr<SoActionP> pimpl;
165 return this->currentpathcode;
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:68
PathCode
Definition SoAction.h:74
void pushCurPath(const int childindex, SoNode *node=NULL)
Definition SoAction.cpp:955
AppliedCode
Definition SoAction.h:73
virtual void invalidateState(void)
Definition SoAction.cpp:815
void switchToPathTraversal(SoPath *path)
Definition SoAction.cpp:1307
PathCode getPathCode(int &numindices, const int *&indices)
Definition SoAction.cpp:922
SoState * getState(void) const
Definition SoAction.cpp:1078
virtual SoNode * getCurPathTail(void)
Definition SoAction.cpp:1111
const SoPathList * getOriginalPathListAppliedTo(void) const
Definition SoAction.cpp:898
virtual SbBool isOfType(SoType type) const
Definition SoAction.cpp:445
SoState * state
Definition SoAction.h:131
virtual SbBool shouldCompactPathList(void) const
Definition SoAction.cpp:1297
static SoActionMethodList * getClassActionMethods(void)
Definition SoAction.cpp:1243
virtual SoType getTypeId(void) const =0
static void nullAction(SoAction *action, SoNode *node)
Definition SoAction.cpp:828
static void initClass(void)
Definition SoAction.cpp:366
const SoPathList * getPathListAppliedTo(void) const
Definition SoAction.cpp:883
SoNode * getNodeAppliedTo(void) const
Definition SoAction.cpp:849
AppliedCode getWhatAppliedTo(void) const
Definition SoAction.cpp:837
SoAction(void)
Definition SoAction.cpp:333
void traverse(SoNode *const node)
Definition SoAction.cpp:934
void popCurPath(const PathCode prevpathcode)
Definition SoAction.cpp:1044
virtual void beginTraversal(SoNode *node)
Definition SoAction.cpp:1263
virtual void endTraversal(SoNode *node)
Definition SoAction.cpp:1273
static void initClasses(void)
Definition SoAction.cpp:405
void setTerminated(const SbBool flag)
Definition SoAction.cpp:1288
PathCode getCurPathCode(void) const
Definition SoAction.h:163
static SoEnabledElementsList * getClassEnabledElements(void)
Definition SoAction.cpp:1231
void switchToNodeTraversal(SoNode *node)
Definition SoAction.cpp:1334
virtual void apply(SoNode *root)
Definition SoAction.cpp:459
SbBool isLastPathListAppliedTo(void) const
Definition SoAction.cpp:909
void popPushCurPath(const int childindex, SoNode *node=NULL)
Definition SoAction.cpp:1187
virtual const SoEnabledElementsList & getEnabledElements(void) const
Definition SoAction.cpp:1219
void usePathCode(int &numindices, const int *&indices)
Definition SoAction.cpp:1120
SoPath * getPathAppliedTo(void) const
Definition SoAction.cpp:863
SbBool hasTerminated(void) const
Definition SoAction.cpp:1068
const SoPath * getCurPath(void)
Definition SoAction.cpp:1102
SoActionMethodList * traversalMethods
Definition SoAction.h:132
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 SoTempPath class is used to store temporary paths.
Definition SoTempPath.h:29
The SoType class is the basis for the run-time type system in Coin.
Definition SoType.h:50