Mesh shape: shape made of a triangle mesh The triangle mesh needs to be watertight to produce valid volume, center and second moment of volume.
More...
|
| MeshShape () |
| Constructor. More...
|
|
template<class VertexData , class EdgeData , class TriangleData > |
| MeshShape (const SurgSim::DataStructures::TriangleMeshBase< VertexData, EdgeData, TriangleData > &mesh) |
| Constructor. More...
|
|
| SURGSIM_CLASSNAME (SurgSim::Math::MeshShape) |
|
virtual int | getType () override |
|
std::shared_ptr< SurgSim::DataStructures::TriangleMesh > | getInitialMesh () |
| Gets the initial mesh. More...
|
|
std::shared_ptr< SurgSim::DataStructures::TriangleMesh > | getMesh () |
| Get mesh. More...
|
|
virtual double | getVolume () const override |
| Get the volume of the shape. More...
|
|
virtual Vector3d | getCenter () const override |
| Get the volumetric center of the shape. More...
|
|
virtual Matrix33d | getSecondMomentOfVolume () const override |
| Get the second central moment of the volume, commonly used to calculate the moment of inertia matrix. More...
|
|
void | setPose (const SurgSim::Math::RigidTransform3d &pose) |
| Set the object's global pose. More...
|
|
void | updateAabbTree () |
| Update the AabbTree, which is an axis-aligned bounding box r-tree used to accelerate spatial searches. More...
|
|
std::shared_ptr< SurgSim::DataStructures::AabbTree > | getAabbTree () |
| Get the AabbTree. More...
|
|
bool | isValid () const |
| Check if this shape contains a valid mesh. More...
|
|
virtual | ~Shape () |
|
virtual std::string | getClassName () const |
| Get class name. More...
|
|
| Accessible () |
| Default Constructor. More...
|
|
| ~Accessible () |
| Destructor. More...
|
|
template<class T > |
T | getValue (const std::string &name) const |
| Retrieves the value with the name by executing the getter if it is found and tries to convert it to the given type. More...
|
|
boost::any | getValue (const std::string &name) const |
| Retrieves the value with the name by executing the getter if it is found. More...
|
|
template<class T > |
bool | getValue (const std::string &name, T *value) const |
| Retrieves the value with the name by executing the getter if it is found, and converts it to the type of the output parameter. More...
|
|
void | setValue (const std::string &name, const boost::any &value) |
| Sets a value of a property that has setter. More...
|
|
bool | isReadable (const std::string &name) const |
| Check whether a property is readable. More...
|
|
bool | isWriteable (const std::string &name) const |
| Check whether a property is writable. More...
|
|
void | setGetter (const std::string &name, GetterType func) |
| Sets a getter for a given property. More...
|
|
void | setSetter (const std::string &name, SetterType func) |
| Sets a setter for a given property. More...
|
|
void | setAccessors (const std::string &name, GetterType getter, SetterType setter) |
| Sets the accessors getter and setter in one function. More...
|
|
void | removeAccessors (const std::string &name) |
| Removes all the accessors (getter and setter) for a given property. More...
|
|
void | forwardProperty (const std::string &name, const Accessible &target, const std::string &targetProperty) |
| Adds a property with the given name that uses the targets accessors, in effect forwarding the value to the target. More...
|
|
void | setSerializable (const std::string &name, EncoderType encoder, DecoderType decoder) |
| Sets the functions used to convert data from and to a YAML::Node. More...
|
|
YAML::Node | encode () const |
| Encode this Accessible to a YAML::Node. More...
|
|
void | decode (const YAML::Node &node, const std::vector< std::string > &ignoredProperties=std::vector< std::string >()) |
| Decode this Accessible from a YAML::Node, will throw an exception if the data type cannot be converted. More...
|
|
template<> |
boost::any | getValue (const std::string &name) const |
|
| Asset () |
| Constructor. More...
|
|
virtual | ~Asset () |
| Destructor. More...
|
|
void | load (const std::string &fileName, const SurgSim::Framework::ApplicationData &data) |
| Load a file with given name using 'data' as look up path(s). More...
|
|
void | load (const std::string &fileName) |
| Overloaded function using SurgSim::Framework::Runtime::getApplicationData() as look up path(s). More...
|
|
std::string | getFileName () const |
| Return the name of file loaded by this class. More...
|
|
Mesh shape: shape made of a triangle mesh The triangle mesh needs to be watertight to produce valid volume, center and second moment of volume.
If it is not the case and you need valid geometric properties, use SurfaceMeshShape instead. Various geometrical properties (volume based) are computed from the triangle mesh using David Eberly's work: http://www.geometrictools.com/Documentation/PolyhedralMassProperties.pdf
- Note
- The internal mesh should not be modified, otherwise the geometric properties will be invalid.
-
Practical use cases:
-
* Fixed/Rigid object, the mesh will not change anyway.
-
* Deformable object, the mesh will be updated, but the geometric properties will not be used.
- See also
- SurfaceMeshShape