Go to the documentation of this file.
16 #ifndef SURGSIM_DATASTRUCTURES_AABBTREENODE_H
17 #define SURGSIM_DATASTRUCTURES_AABBTREENODE_H
26 namespace DataStructures
70 void setData(
const std::list<AabbTreeData::Item>& items,
size_t maxNodeData = 0);
79 void setData(std::list<AabbTreeData::Item>&& items,
size_t maxNodeData);
size_t m_axis
Cache for the index of the longest axis on this node.
Definition: AabbTreeNode.h:96
void setData(std::shared_ptr< TreeData > data)
Sets the data of this node.
Definition: TreeNode.cpp:57
bool doAccept(TreeVisitor *visitor) override
Private function for use with the visitor pattern, this needs to be implemented to make the correct d...
Definition: AabbTreeNode.cpp:157
Definition: CompoundShapeToGraphics.cpp:30
virtual ~AabbTreeNode()
Destructor.
Definition: AabbTreeNode.cpp:30
const SurgSim::Math::Aabbd & getAabb() const
Get the aabb of this node, it is the union of the aabb of all the items in the data when the node has...
Definition: AabbTreeNode.cpp:98
void getIntersections(const SurgSim::Math::Aabbd &aabb, std::list< size_t > *result)
Fetch a list of items that have AABBs intersecting with the given AABB.
Definition: AabbTreeNode.cpp:162
Eigen::AlignedBox< double, 3 > Aabbd
Wrapper around the Eigen type.
Definition: Aabb.h:30
void setData(std::shared_ptr< TreeData > data)
Sets the data of this node.
Definition: TreeNode.cpp:57
SurgSim::Math::Aabbd m_aabb
The internal bounding box for this node, it is used when the node does not have any data.
Definition: AabbTreeNode.h:93
Basic tree node structure.
Definition: TreeNode.h:37
Node class for the AabbTree, this handles groups of items and subdivision if the number of items gets...
Definition: AabbTreeNode.h:31
Abstract Class for visitors, this needs to be extended for other tree nodes when necessary return fal...
Definition: TreeVisitor.h:32
void splitNode(size_t maxNodeData=0)
Splits the data into two parts, creates two children and puts the split data into the children the aa...
Definition: AabbTreeNode.cpp:35
AabbTreeNode()
Constructor.
Definition: AabbTreeNode.cpp:26
void addData(const SurgSim::Math::Aabbd &aabb, size_t id, size_t maxNodeData=0)
Add data to this node, if maxNodeData is >0 the node will split if the number of data items exceeds m...
Definition: AabbTreeNode.cpp:111