Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_TREENODEBSP_H__
00009 #define __SP_TREENODEBSP_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013 #include "Base/spTreeNode.hpp"
00014
00015
00016 namespace sp
00017 {
00018 namespace scene
00019 {
00020
00021
00023 class SP_EXPORT BSPTreeNode : public TreeNode
00024 {
00025
00026 public:
00027
00028 BSPTreeNode(TreeNode* Parent = 0);
00029 ~BSPTreeNode();
00030
00031
00032
00033 bool isLeaf() const;
00034
00035 void addChildren();
00036 void removeChildren();
00037
00045 void findTreeNodes(
00046 std::list<const BSPTreeNode*> &TreeNodeList, const dim::vector3df &Pos
00047 ) const;
00048
00053 void findTreeNodes(
00054 std::list<const BSPTreeNode*> &TreeNodeList, const dim::vector3df &Pos, const f32 Radius
00055 ) const;
00056
00057
00058
00060 inline void setPlane(const dim::plane3df &Plane)
00061 {
00062 Plane_ = Plane;
00063 }
00064
00066 inline dim::plane3df getPlane() const
00067 {
00068 return Plane_;
00069 }
00070
00072 inline BSPTreeNode* getChildFront() const
00073 {
00074 return ChildFront_;
00075 }
00076
00078 inline BSPTreeNode* getChildBack() const
00079 {
00080 return ChildBack_;
00081 }
00082
00083 private:
00084
00085
00086
00087 BSPTreeNode* ChildFront_;
00088 BSPTreeNode* ChildBack_;
00089
00090 dim::plane3df Plane_;
00091
00092 };
00093
00094
00095 }
00096
00097 }
00098
00099
00100 #endif
00101
00102
00103
00104