All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MeshShape-inl.h
Go to the documentation of this file.
1 // This file is a part of the OpenSurgSim project.
2 // Copyright 2013, SimQuest Solutions Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16 
17 #ifndef SURGSIM_MATH_MESHSHAPE_INL_H
18 #define SURGSIM_MATH_MESHSHAPE_INL_H
19 
20 namespace SurgSim
21 {
22 namespace Math
23 {
24 
25 template <class VertexData, class EdgeData, class TriangleData>
27  m_volume(0.0)
28 {
29  SURGSIM_ASSERT(mesh.isValid()) << "Invalid mesh";
30 
31  m_initialMesh = std::make_shared<SurgSim::DataStructures::TriangleMesh>(mesh);
32  m_mesh = std::make_shared<SurgSim::DataStructures::TriangleMesh>(*m_initialMesh);
34 
35  // Computes the geometric properties for the initial mesh
37 }
38 
39 }; // namespace Math
40 }; // namespace SurgSim
41 
42 #endif
std::shared_ptr< SurgSim::DataStructures::TriangleMesh > m_initialMesh
The initial triangle mesh contained by this shape.
Definition: MeshShape.h:131
bool isValid() const
Test if the TriangleMeshBase is valid (valid vertex Ids used in all MeshElements) ...
Definition: TriangleMeshBase-inl.h:194
#define SURGSIM_ASSERT(condition)
Assert that condition is true.
Definition: Assert.h:77
void updateAabbTree()
Update the AabbTree, which is an axis-aligned bounding box r-tree used to accelerate spatial searches...
Definition: MeshShape.cpp:197
std::shared_ptr< SurgSim::DataStructures::TriangleMesh > m_mesh
The triangle mesh contained by this shape.
Definition: MeshShape.h:128
Basic class for storing Triangle Meshes, handling basic vertex, edge, and triangle functionality...
Definition: TriangleMeshBase.h:58
MeshShape()
Constructor.
Definition: MeshShape.cpp:27
void computeVolumeIntegrals()
Compute useful volume integrals based on the triangle mesh, which are used to get the volume ...
Definition: MeshShape.cpp:116