1 #ifndef COIN_SOACTION_H
2 #define COIN_SOACTION_H
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);
79 virtual SbBool isOfType(
SoType type)
const;
82 virtual void apply(
SoNode * root);
83 virtual void apply(
SoPath * path);
84 virtual void apply(
const SoPathList & pathlist, SbBool obeysrules = FALSE);
86 virtual void invalidateState(
void);
91 SoNode * getNodeAppliedTo(
void)
const;
92 SoPath * getPathAppliedTo(
void)
const;
93 const SoPathList * getPathListAppliedTo(
void)
const;
94 const SoPathList * getOriginalPathListAppliedTo(
void)
const;
96 SbBool isLastPathListAppliedTo(
void)
const;
98 PathCode getPathCode(
int & numindices,
const int * & indices);
100 void traverse(
SoNode *
const node);
101 SbBool hasTerminated(
void)
const;
103 const SoPath * getCurPath(
void);
104 SoState * getState(
void)
const;
106 PathCode getCurPathCode(
void)
const;
107 virtual SoNode * getCurPathTail(
void);
108 void usePathCode(
int & numindices,
const int * & indices);
110 void pushCurPath(
const int childindex,
SoNode * node = NULL);
111 void popCurPath(
const PathCode prevpathcode);
112 void pushCurPath(
void);
114 void popPushCurPath(
const int childindex,
SoNode * node = NULL);
115 void popCurPath(
void);
118 void switchToPathTraversal(
SoPath * path);
119 void switchToNodeTraversal(
SoNode * node);
125 virtual void beginTraversal(
SoNode * node);
126 virtual void endTraversal(
SoNode * node);
127 void setTerminated(
const SbBool flag);
130 virtual SbBool shouldCompactPathList(
void)
const;
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;
171 #endif // !COIN_SOACTION_H
SoNode * getNodeAppliedTo(void) const
Definition: SoAction.cpp:817
static void initClasses(void)
Definition: SoAction.cpp:424
int getLength(void) const
Definition: SbPList.h:94
static SoType badType(void)
Definition: SoType.cpp:664
The SoState class manages the Coin scenegraph traversal state data.
Definition: SoState.h:35
void usePathCode(int &numindices, const int *&indices)
Definition: SoAction.cpp:1062
SbBool hasTerminated(void) const
Definition: SoAction.cpp:1018
const Type * getArrayPtr(const int start=0) const
Definition: SbList.h:168
virtual void apply(SoNode *root)
Definition: SoAction.cpp:476
static SoEnabledElementsList * getClassEnabledElements(void)
Definition: SoAction.cpp:1176
void truncate(const int length)
Definition: SoBaseList.cpp:156
static SoActionMethodList * getClassActionMethods(void)
Definition: SoAction.cpp:1188
void truncate(const int length, const int dofit=0)
Definition: SbList.h:149
virtual const SoEnabledElementsList & getEnabledElements(void) const
Definition: SoAction.cpp:1164
virtual void beginTraversal(SoNode *node)
Definition: SoAction.cpp:1208
virtual SbName getName(void) const
Definition: SoBase.cpp:730
const SoPath * getCurPath(void)
Definition: SoAction.cpp:1044
static void postWarning(const char *const source, const char *const format,...)
Definition: SoDebugError.cpp:324
The SoAction class is the base class for all traversal actions.
Definition: SoAction.h:67
SoAction(void)
Definition: SoAction.cpp:357
The SoPathList class is a container for pointers to SoPath objects.
Definition: SoPathList.h:31
void append(const Type item)
Definition: SbList.h:98
static SoType getClassTypeId(void)
Definition: SoAction.cpp:452
SbBool containsPath(const SoPath *const path) const
Definition: SoPath.cpp:611
void popPushCurPath(const int childindex, SoNode *node=NULL)
Definition: SoAction.cpp:1132
SoPath * getPathAppliedTo(void) const
Definition: SoAction.cpp:831
void popCurPath(void)
Definition: SoAction.cpp:1152
SoActionMethodList * traversalMethods
Definition: SoAction.h:133
SbBool isDerivedFrom(const SoType type) const
Definition: SoType.cpp:687
void enable(const SoType elementtype, const int stackindex)
Definition: SoEnabledElementsList.cpp:124
The SoEnabledElementsList class is a container for type info for element types that are enabled in ac...
Definition: SoEnabledElementsList.h:29
void append(SoPath *const path)
Definition: SoPathList.cpp:88
The SoPath class is a container class for traversal path descriptions.
Definition: SoPath.h:43
int32_t getRefCount(void) const
Definition: SoBase.cpp:686
The SoType class is the basis for the run-time type system in Coin.
Definition: SoType.h:50
int getLength(void) const
Definition: SoPath.cpp:473
static int getCounter(void)
Definition: SoEnabledElementsList.cpp:158
The SbList class is a template container class for lists.
Definition: SoType.h:46
const char * getString(void) const
Definition: SbName.cpp:278
The SoActionMethodList class contains function pointers for action methods.
Definition: SoActionMethodList.h:35
int getLength(void) const
Definition: SbList.h:145
AppliedCode
Definition: SoAction.h:69
void pushCurPath(void)
Definition: SoAction.cpp:1119
void sort(void)
Definition: SoPathList.cpp:161
PathCode getPathCode(int &numindices, const int *&indices)
Definition: SoAction.cpp:890
SoState * getState(void) const
Definition: SoAction.cpp:1028
void switchToNodeTraversal(SoNode *node)
Definition: SoAction.cpp:1279
static void readlock(void)
Definition: SoDB.cpp:1828
void ref(void) const
Definition: SoBase.cpp:574
virtual ~SoAction()
Definition: SoAction.cpp:375
AppliedCode getWhatAppliedTo(void) const
Definition: SoAction.cpp:805
const SoPathList * getPathListAppliedTo(void) const
Definition: SoAction.cpp:851
PathCode getCurPathCode(void) const
Definition: SoAction.h:159
virtual SoType getTypeId(void) const =0
void switchToPathTraversal(SoPath *path)
Definition: SoAction.cpp:1252
static const SoType createType(const SoType parent, const SbName name, const instantiationMethod method=(instantiationMethod) NULL, const uint16_t data=0)
Definition: SoType.cpp:256
virtual void invalidateState(void)
Definition: SoAction.cpp:783
SbBool isLastPathListAppliedTo(void) const
Definition: SoAction.cpp:877
static void initClass(void)
Definition: SoAction.cpp:392
int getIndex(const int index) const
Definition: SoPath.cpp:436
const SoPathList * getOriginalPathListAppliedTo(void) const
Definition: SoAction.cpp:866
virtual SbBool shouldCompactPathList(void) const
Definition: SoAction.cpp:1242
SoNode * getNode(const int index) const
Definition: SoPath.cpp:402
virtual void endTraversal(SoNode *node)
Definition: SoAction.cpp:1218
The SoNode class is the base class for nodes used in scene graphs.
Definition: SoNode.h:47
PathCode
Definition: SoAction.h:70
static void nullAction(SoAction *action, SoNode *node)
Definition: SoAction.cpp:796
void setUp(void)
Definition: SoActionMethodList.cpp:131
void traverse(SoNode *const node)
Definition: SoAction.cpp:902
virtual SoNode * getCurPathTail(void)
Definition: SoAction.cpp:1053
virtual SoType getTypeId(void) const =0
void unrefNoDelete(void) const
Definition: SoBase.cpp:665
static int getActionMethodIndex(const SoType type)
Definition: SoNode.cpp:445
static void readunlock(void)
Definition: SoDB.cpp:1843
void uniquify(void)
Definition: SoPathList.cpp:175
void setTerminated(const SbBool flag)
Definition: SoAction.cpp:1233
SoState * state
Definition: SoAction.h:132
virtual SbBool isOfType(SoType type) const
Definition: SoAction.cpp:462
Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.
Generated on Mon Jul 27 2020 for Coin by Doxygen. 1.8.18