16 #ifndef SURGSIM_DATASTRUCTURES_TRIANGLEMESH_H
17 #define SURGSIM_DATASTRUCTURES_TRIANGLEMESH_H
33 namespace DataStructures
47 return normal == rhs.
normal;
55 return !((*this) == rhs);
62 class TriangleMesh:
public std::enable_shared_from_this<TriangleMesh>,
78 template <
class VertexDataSource,
class EdgeDataSource,
class TriangleDataSource>
99 virtual bool doLoad(
const std::string& fileName)
override;
107 #endif // SURGSIM_DATASTRUCTURES_TRIANGLEMESH_H
Definition: DriveElementFromInputBehavior.cpp:27
This class is used to facilitate file loading.
Definition: Asset.h:33
const SurgSim::Math::Vector3d & getNormal(size_t triangleId)
Get normal for triangle.
Definition: TriangleMesh.cpp:31
Mesh shape: shape made of a triangle mesh The triangle mesh needs to be watertight to produce valid v...
Definition: MeshShape.h:53
SurgSim::Math::Vector3d normal
Definition: TriangleMesh.h:40
bool operator!=(const SurgSim::DataStructures::NormalData &rhs) const
Inequality operator.
Definition: TriangleMesh.h:53
Store normal for each triangle in a triangle mesh.
Definition: TriangleMesh.h:37
virtual bool doLoad(const std::string &fileName) override
Derived classes will overwrite this method to do actual loading.
Definition: TriangleMesh.cpp:57
Eigen::Transform< double, 3, Eigen::Isometry > RigidTransform3d
A 3D rigid (isometric) transform, represented as doubles.
Definition: RigidTransform.h:46
virtual void doUpdate() override
Performs any updates that are required when the vertices are modified.
Definition: TriangleMesh.cpp:52
Definitions of small fixed-size vector types.
Basic class for storing Triangle Meshes, handling basic vertex, edge, and triangle functionality...
Definition: TriangleMeshBase.h:58
void copyWithTransform(const SurgSim::Math::RigidTransform3d &pose, const TriangleMesh &source)
Sets the mesh's vertices and normals by transforming a similar mesh.
Definition: TriangleMesh.cpp:71
TriangleMeshBase< EmptyData, EmptyData, EmptyData > TriangleMeshPlain
Definition: TriangleMesh.h:59
A TriangleMesh stores normal information for the triangles.
Definition: TriangleMesh.h:62
void calculateNormals()
Calculate normals for all triangles.
Definition: TriangleMesh.cpp:36
Eigen::Matrix< double, 3, 1 > Vector3d
A 3D vector of doubles.
Definition: Vector.h:56
TriangleMesh()
Constructor.
Definition: TriangleMesh.cpp:27
bool operator==(const SurgSim::DataStructures::NormalData &rhs) const
Equality operator.
Definition: TriangleMesh.h:45