16 #ifndef SURGSIM_MATH_PARTICLESSHAPE_H 17 #define SURGSIM_MATH_PARTICLESSHAPE_H 21 #include "SurgSim/DataStructures/EmptyData.h" 22 #include "SurgSim/DataStructures/Vertices.h" 23 #include "SurgSim/Framework/ObjectFactory.h" 25 #include "SurgSim/Math/Shape.h" 27 #include "SurgSim/Math/VerticesShape.h" 31 namespace DataStructures
39 SURGSIM_STATIC_REGISTRATION(ParticlesShape);
69 const std::shared_ptr<const SurgSim::DataStructures::AabbTree> getAabbTree()
const;
73 void setRadius(
double radius);
77 double getRadius()
const;
79 int getType()
const override;
81 double getVolume()
const override;
83 Vector3d getCenter()
const override;
85 Matrix33d getSecondMomentOfVolume()
const override;
87 std::shared_ptr<Shape> getTransformed(
const RigidTransform3d& pose)
const override;
91 const Math::Aabbd& getBoundingBox()
const override;
95 void updateShape()
override;
96 void updateShapePartial()
override;
99 bool doUpdate()
override;
102 std::shared_ptr<SurgSim::DataStructures::AabbTree> m_aabbTree;
111 double m_volume = std::numeric_limits<double>::signaling_NaN();
114 Matrix33d m_secondMomentOfVolume;
120 #include "SurgSim/Math/ParticlesShape-inl.h" 122 #endif // SURGSIM_MATH_PARTICLESSHAPE_H Wraps glewInit() to separate the glew opengl definitions from the osg opengl definitions only imgui n...
Definition: AddRandomSphereBehavior.cpp:36
A Shape that also inherits from Vertices is transformable and carries a member variable of the initia...
Definition: VerticesShape.h:30
Definitions of small fixed-size square matrix types.
Definitions of small fixed-size vector types.
bool isValid(float value)
Check if a float value is valid.
Definition: Valid-inl.h:97
Base class for mesh structures, handling basic vertex functionality.
Definition: Vertices.h:51
Particles Shape: A shape consisting of a group of particles of equal radius.
Definition: ParticlesShape.h:42