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>
88 void calculateNormals();
97 virtual void doUpdate()
override;
107 #endif // SURGSIM_DATASTRUCTURES_TRIANGLEMESH_H Definition: DriveElementFromInputBehavior.cpp:27
This class is used to facilitate file loading.
Definition: Asset.h:33
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
string(TOUPPER ${DEVICE}DEVICE_UPPER_CASE) option(BUILD_DEVICE_ $
Definition: CMakeLists.txt:35
Eigen::Transform< double, 3, Eigen::Isometry > RigidTransform3d
A 3D rigid (isometric) transform, represented as doubles.
Definition: RigidTransform.h:46
Definitions of small fixed-size vector types.
Basic class for storing Triangle Meshes, handling basic vertex, edge, and triangle functionality...
Definition: TriangleMeshBase.h:58
TriangleMeshBase< EmptyData, EmptyData, EmptyData > TriangleMeshPlain
Definition: TriangleMesh.h:59
A TriangleMesh stores normal information for the triangles.
Definition: TriangleMesh.h:62
virtual bool doLoad(const std::string &filePath) override
Derived classes will overwrite this method to do actual loading.
Definition: MeshShape.cpp:42
Eigen::Matrix< double, 3, 1 > Vector3d
A 3D vector of doubles.
Definition: Vector.h:56
bool operator==(const SurgSim::DataStructures::NormalData &rhs) const
Equality operator.
Definition: TriangleMesh.h:45