TriangleMeshUtilities-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 #ifndef SURGSIM_DATASTRUCTURES_TRIANGLEMESHUTILITIES_INL_H
17 #define SURGSIM_DATASTRUCTURES_TRIANGLEMESHUTILITIES_INL_H
18 
19 template <class M>
20 std::shared_ptr<M> SurgSim::DataStructures::loadTriangleMesh(const std::string& fileName)
21 {
22  auto triangleMeshDelegate = std::make_shared<SurgSim::DataStructures::TriangleMeshPlyReaderDelegate<M>>();
23 
24  PlyReader reader(fileName);
25  if (reader.isValid())
26  {
27  SURGSIM_ASSERT(reader.parseWithDelegate(triangleMeshDelegate)) <<
28  "The input file " << fileName << " does not have the property required by triangle mesh.";
29  }
30 
31  return triangleMeshDelegate->getMesh();
32 }
33 
34 
35 #endif
#define SURGSIM_ASSERT(condition)
Assert that condition is true.
Definition: Assert.h:77
std::shared_ptr< TriangleMeshPlain > loadTriangleMesh(const std::string &filename)
Helper function to load a mesh from a given filename, does NOT do path resolution.
Definition: TriangleMeshUtilities.cpp:23