Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_TREENODEQUAD_H__
00009 #define __SP_TREENODEQUAD_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 QuadTreeNode : public TreeNode
00024 {
00025
00026 public:
00027
00028 QuadTreeNode(TreeNode* Parent = 0);
00029 ~QuadTreeNode();
00030
00031
00032
00033 bool isLeaf() const;
00034
00035 void addChildren();
00036 void removeChildren();
00037
00045 void findTreeNodes(
00046 std::list<const QuadTreeNode*> &TreeNodeList, const dim::point2df &Pos
00047 ) const;
00048
00053 void findTreeNodes(
00054 std::list<const QuadTreeNode*> &TreeNodeList, const dim::point2df &Pos, const dim::size2df &Radius
00055 ) const;
00056
00057
00058
00060 inline QuadTreeNode* getChild(u32 Index) const
00061 {
00062 return (Children_ && Index < 4) ? Children_[Index] : 0;
00063 }
00064
00065 private:
00066
00067
00068
00069 QuadTreeNode** Children_;
00070
00071 dim::point2df Min_, Max_;
00072
00073 };
00074
00075
00076 }
00077
00078 }
00079
00080
00081 #endif
00082
00083
00084
00085