16 #ifndef SURGSIM_MATH_OCTREESHAPE_H 17 #define SURGSIM_MATH_OCTREESHAPE_H 30 SURGSIM_STATIC_REGISTRATION(OctreeShape);
77 void setOctree(std::shared_ptr<SurgSim::Framework::Asset> node);
90 bool isValid(std::shared_ptr<NodeType> node)
const;
101 #endif // SURGSIM_MATH_OCTREESHAPE_H virtual ~OctreeShape()
Destructor.
Definition: OctreeShape.cpp:42
Definition: CompoundShapeToGraphics.cpp:29
::SurgSim::Math::Vector3d Vector3d
Definition: Shape.h:68
SurgSim::DataStructures::OctreeNode< SurgSim::DataStructures::EmptyData > NodeType
Definition: OctreeShape.h:37
int getType() const override
Definition: OctreeShape.cpp:46
std::shared_ptr< NodeType > getOctree()
Get the root node.
Definition: OctreeShape.cpp:79
SURGSIM_CLASSNAME(SurgSim::Math::OctreeShape)
Eigen::AlignedBox< double, 3 > Aabbd
Wrapper around the Eigen type.
Definition: Aabb.h:30
std::shared_ptr< NodeType > m_rootNode
Root node of the octree datastructure.
Definition: OctreeShape.h:93
void setOctree(std::shared_ptr< SurgSim::Framework::Asset > node)
Set the root node.
Definition: OctreeShape.cpp:84
Matrix33d getSecondMomentOfVolume() const override
Get the second central moment of the volume, commonly used to calculate the moment of inertia matrix...
Definition: OctreeShape.cpp:73
double getVolume() const override
Get the volume of the shape.
Definition: OctreeShape.cpp:62
void loadOctree(const std::string &filePath)
Definition: OctreeShape.cpp:51
::SurgSim::Math::Matrix33d Matrix33d
Definition: Shape.h:69
bool isValid() const override
Definition: OctreeShape.cpp:100
OctreeShape()
Constructor.
Definition: OctreeShape.cpp:29
Vector3d getCenter() const override
Get the volumetric center of the shape.
Definition: OctreeShape.cpp:68
Octree data structure.
Definition: OctreeNode.h:131
Octree Shape A defined by an octree data structure.
Definition: OctreeShape.h:34
Generic rigid shape class defining a shape.
Definition: Shape.h:65
const Math::Aabbd & getBoundingBox() const override
Definition: OctreeShape.cpp:105