00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef COIN_SOCHILDLIST_H
00021 #define COIN_SOCHILDLIST_H
00022
00023 #include <Inventor/lists/SoNodeList.h>
00024
00025 class SoPath;
00026 class SoAction;
00027
00028
00029 class COIN_DLL_API SoChildList : public SoNodeList {
00030 typedef SoNodeList inherited;
00031
00032 public:
00033 SoChildList(SoNode * const parent);
00034 SoChildList(SoNode * const parent, const int size);
00035 SoChildList(SoNode * const parent, const SoChildList & cl);
00036 ~SoChildList();
00037
00038 void append(SoNode * const node);
00039 void insert(SoNode * const ptr, const int addbefore);
00040 void remove(const int index);
00041 void truncate(const int length);
00042 void copy(const SoChildList & cl);
00043 void set(const int index, SoNode * const node);
00044
00045 void traverseInPath(SoAction * const action, const int numindices,
00046 const int * indices);
00047 void traverse(SoAction * const action);
00048 void traverse(SoAction * const action, const int index);
00049 void traverse(SoAction * const action, SoNode * node);
00050 void traverse(SoAction * const action, const int first, const int last);
00051
00052 public:
00053 void addPathAuditor(SoPath * const path);
00054 void removePathAuditor(SoPath * const path);
00055
00056 private:
00057 SoNode * parent;
00058 SbList<SoPath *> auditors;
00059 };
00060
00061 #endif // !COIN_SOCHILDLIST_H