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