Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_SCENE_NODE_H__
00009 #define __SP_SCENE_NODE_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013 #include "Base/spDimension.hpp"
00014 #include "Base/spBaseObject.hpp"
00015 #include "Base/spInputOutputString.hpp"
00016
00017 #include <list>
00018 #include <algorithm>
00019
00020
00021 namespace sp
00022 {
00023
00024
00025 class SP_EXPORT Node : public BaseObject
00026 {
00027
00028 public:
00029
00030 Node();
00031 virtual ~Node();
00032
00033
00034
00036 virtual void setVisible(bool isVisible);
00037
00039 virtual void addChild(Node* Child);
00040
00042 virtual void addChildren(const std::list<Node*> &Children);
00043
00045 virtual bool removeChild(Node* Child);
00046
00048 virtual bool removeChild();
00049
00051 virtual u32 removeChildren(const std::list<Node*> &Children);
00052
00054 virtual void removeChildren();
00055
00056
00057
00059 inline const std::list<Node*>& getChildren() const
00060 {
00061 return Children_;
00062 }
00063
00065 inline bool getVisible() const
00066 {
00067 return isVisible_;
00068 }
00069
00071 inline void setParent(Node* Parent)
00072 {
00073 Parent_ = Parent;
00074 }
00076 inline Node* getParent() const
00077 {
00078 return Parent_;
00079 }
00080
00081 protected:
00082
00083
00084
00085 bool isVisible_;
00086
00087 Node* Parent_;
00088 std::list<Node*> Children_;
00089
00090 };
00091
00092
00093 }
00094
00095
00096 #endif
00097
00098
00099
00100