Go to the documentation of this file.
16 #ifndef SURGSIM_MATH_SEGMENTMESHSHAPE_H
17 #define SURGSIM_MATH_SEGMENTMESHSHAPE_H
30 SURGSIM_STATIC_REGISTRATION(SegmentMeshShape);
50 template <
class VertexData,
class EdgeData>
52 double radius = Geometry::DistanceEpsilon);
69 std::shared_ptr<const DataStructures::AabbTree>
getAabbTree()
const;
98 #endif // SURGSIM_MATH_SEGMENTMESHSHAPE_H
void updateAabbTree()
Update the AabbTree, which is an axis-aligned bounding box r-tree used to accelerate spatial searches...
Definition: SegmentMeshShape.cpp:128
Matrix33d getSecondMomentOfVolume() const override
Get the second central moment of the volume, commonly used to calculate the moment of inertia matrix.
Definition: SegmentMeshShape.cpp:62
std::shared_ptr< Shape > getTransformed(const RigidTransform3d &pose) const override
Get a copy of this shape with an applied rigid transform.
Definition: SegmentMeshShape.cpp:120
bool isValid() const override
Check if the shape is valid.
Definition: SegmentMeshShape.cpp:68
bool isTransformable() const override
Definition: SegmentMeshShape.cpp:152
double getVolume() const override
Get the volume of the shape.
Definition: SegmentMeshShape.cpp:50
bool doUpdate() override
Performs any updates that are required when the vertices are modified.
Definition: SegmentMeshShape.cpp:87
Eigen::Transform< double, 3, Eigen::Isometry > RigidTransform3d
A 3D rigid (isometric) transform, represented as doubles.
Definition: RigidTransform.h:46
SURGSIM_CLASSNAME(SurgSim::Math::SegmentMeshShape)
::SurgSim::Math::Matrix33d Matrix33d
Definition: Shape.h:69
std::shared_ptr< const DataStructures::AabbTree > getAabbTree() const
Definition: SegmentMeshShape.cpp:115
void setRadius(double radius)
Definition: SegmentMeshShape.cpp:76
Definition: CompoundShapeToGraphics.cpp:29
bool doLoad(const std::string &fileName) override
Derived classes will overwrite this method to do actual loading.
Definition: SegmentMeshShape.cpp:93
Vector3d getCenter() const override
Get the volumetric center of the shape.
Definition: SegmentMeshShape.cpp:56
SegmentMeshShape()
Constructor.
Definition: SegmentMeshShape.cpp:32
double getRadius() const
Definition: SegmentMeshShape.cpp:82
int getType() const override
Definition: SegmentMeshShape.cpp:45
std::shared_ptr< DataStructures::AabbTree > m_aabbTree
The aabb tree used to accelerate collision detection against the mesh.
Definition: SegmentMeshShape.h:87
SegmentMeshShape defines a shape based on a mesh, like MeshShape.
Definition: SegmentMeshShape.h:36
Generic rigid shape class defining a shape.
Definition: Shape.h:65
::SurgSim::Math::Vector3d Vector3d
Definition: Shape.h:68
Class to hold the type of a SegmentMesh.
Definition: SegmentMesh.h:33
string(TOUPPER ${DEVICE} DEVICE_UPPER_CASE) option(BUILD_DEVICE_$
Definition: CMakeLists.txt:38
Vector3d m_segmentEndBoundingBoxHalfExtent
Half extent of the AABB of the sphere at one of the segment end.
Definition: SegmentMeshShape.h:90
double m_radius
Segment radius.
Definition: SegmentMeshShape.h:84