00001 #ifndef GL_MODELS_IG_SO_TWIG_H
00002 # define GL_MODELS_IG_SO_TWIG_H
00003
00004
00005
00006 # include "Iguana/GLModels/interface/config.h"
00007 # include "Iguana/Framework/interface/IgTwig.h"
00008
00009
00010
00011
00012
00013 class SoGroup;
00014 class SoNode;
00015
00016
00017
00018
00019
00020 class IGUANA_GL_MODELS_API IgSoTwig : public IgSimpleTwig
00021 {
00022 public:
00023 IgSoTwig (IgTwig *parent,
00024 const std::string &name,
00025 bool selectable = false,
00026 bool traverse = true,
00027 bool visibility = true,
00028 bool cascade = true);
00029 explicit
00030 IgSoTwig (const std::string &name,
00031 bool selectable = false,
00032 bool traverse = true,
00033 bool visibility = true,
00034 bool cascade = true);
00035 ~IgSoTwig (void);
00036
00037
00038 virtual void destroy (void);
00039
00040
00041 virtual SoGroup * node (void) const;
00042 virtual SoGroup * node (SoGroup *node);
00043 virtual SoGroup * magic (void) const;
00044 virtual SoGroup * magic (SoGroup *node);
00045
00046 static IgSoTwig * buildFrom (SoNode *from);
00047
00048
00049
00050
00051 protected:
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061 virtual void cleared (IgTwig *parent);
00062 static IgSoTwig * buildFromReps (SoNode *from);
00063 static IgSoTwig * buildFromVis (SoNode *from, bool top);
00064 static IgSoTwig * buildFromOther (SoNode *from);
00065
00066 private:
00067 SoGroup *m_magic;
00068 SoGroup *m_node;
00069 bool m_selectable;
00070 };
00071
00072
00073
00074
00075 #endif // GL_MODELS_IG_SO_TWIG_H