GeometryAlgorithms.hpp
Go to the documentation of this file.
1 
28 /*
29  * GeometryAlgorithms.hpp
30  */
31 
32 #ifndef LVR2_ALGORITHM_GEOMETRYALGORITHMS_H_
33 #define LVR2_ALGORITHM_GEOMETRYALGORITHMS_H_
34 
38 #include <list>
39 
40 namespace lvr2
41 {
42 
57 template<typename BaseVecT>
59  const BaseMesh<BaseVecT>& mesh,
60  VertexHandle vH,
61  double radius,
62  vector<VertexHandle>& neighborsOut
63 );
64 
65 
76 template <typename BaseVecT, typename VisitorF>
78  const BaseMesh<BaseVecT>& mesh,
79  VertexHandle vH,
80  double radius,
81  VisitorF visitor
82 );
83 
93 template<typename BaseVecT>
94 DenseVertexMap<float> calcVertexHeightDifferences(const BaseMesh<BaseVecT>& mesh, double radius);
95 
112 template<typename BaseVecT>
113 DenseVertexMap<float> calcVertexRoughness(
114  const BaseMesh<BaseVecT>& mesh,
115  double radius,
116  const VertexMap<Normal<typename BaseVecT::CoordType>>& normals
117 );
118 
128 template<typename BaseVecT>
129 DenseVertexMap<float> calcAverageVertexAngles(
130  const BaseMesh<BaseVecT>& mesh,
131  const VertexMap<Normal<typename BaseVecT::CoordType>>& normals
132 );
133 
143 template<typename BaseVecT>
144 DenseEdgeMap<float> calcVertexAngleEdges(
145  const BaseMesh<BaseVecT>& mesh,
146  const VertexMap<Normal<typename BaseVecT::CoordType>>& normals
147 );
148 
166 template<typename BaseVecT>
168  const BaseMesh<BaseVecT>& mesh,
169  double radius,
170  const VertexMap<Normal<typename BaseVecT::CoordType>>& normals,
171  DenseVertexMap<float>& roughness,
172  DenseVertexMap<float>& heightDiff
173 );
174 
181 template<typename BaseVecT>
182 DenseEdgeMap<float> calcVertexDistances(const BaseMesh<BaseVecT>& mesh);
183 
194 template<typename BaseVecT>
195 bool Dijkstra(
196  const BaseMesh<BaseVecT>& mesh,
197  const VertexHandle& start,
198  const VertexHandle& goal,
199  const DenseEdgeMap<float>& edgeCosts,
200  std::list<VertexHandle>& path,
201  DenseVertexMap<float>& distances,
202  DenseVertexMap<VertexHandle>& predecessors,
203  DenseVertexMap<bool>& seen,
204  DenseVertexMap<float>& vertex_costs);
205 
206 
207 } // namespace lvr2
208 
209 #include "GeometryAlgorithms.tcc"
210 
211 #endif /* LVR2_ALGORITHM_GEOMETRYALGORITHMS_H_ */
HalfEdgeMesh< Vec > mesh
void calcVertexRoughnessAndHeightDifferences(const BaseMesh< BaseVecT > &mesh, double radius, const VertexMap< Normal< typename BaseVecT::CoordType >> &normals, DenseVertexMap< float > &roughness, DenseVertexMap< float > &heightDiff)
Calculates the roughness and the height difference for each vertex.
bool Dijkstra(const BaseMesh< BaseVecT > &mesh, const VertexHandle &start, const VertexHandle &goal, const DenseEdgeMap< float > &edgeCosts, std::list< VertexHandle > &path, DenseVertexMap< float > &distances, DenseVertexMap< VertexHandle > &predecessors, DenseVertexMap< bool > &seen, DenseVertexMap< float > &vertex_costs)
Dijkstra&#39;s algorithm.
DenseVertexMap< float > calcAverageVertexAngles(const BaseMesh< BaseVecT > &mesh, const VertexMap< Normal< typename BaseVecT::CoordType >> &normals)
Calculates the average angle for each vertex.
DenseEdgeMap< float > calcVertexAngleEdges(const BaseMesh< BaseVecT > &mesh, const VertexMap< Normal< typename BaseVecT::CoordType >> &normals)
Calculates the angle between two vertex normals for each edge.
DenseEdgeMap< float > calcVertexDistances(const BaseMesh< BaseVecT > &mesh)
Computes the distances between the vertices and stores them in the given dense edge map...
DenseVertexMap< float > calcVertexHeightDifferences(const BaseMesh< BaseVecT > &mesh, double radius)
Calculate the height difference value for each vertex of the given BaseMesh.
void visitLocalVertexNeighborhood(const BaseMesh< BaseVecT > &mesh, VertexHandle vH, double radius, VisitorF visitor)
Visits every vertex in the local neighborhood of vH.
void calcLocalVertexNeighborhood(const BaseMesh< BaseVecT > &mesh, VertexHandle vH, double radius, vector< VertexHandle > &neighborsOut)
Calculates the local neighborhood of a given vertex (defined by it&#39;s handle).
AttributeMap< VertexHandle, ValueT > VertexMap
Definition: AttrMaps.hpp:94
DenseVertexMap< float > calcVertexRoughness(const BaseMesh< BaseVecT > &mesh, double radius, const VertexMap< Normal< typename BaseVecT::CoordType >> &normals)
Calculates the roughness for each vertex.


lvr2
Author(s): Thomas Wiemann , Sebastian Pütz , Alexander Mock , Lars Kiesow , Lukas Kalbertodt , Tristan Igelbrink , Johan M. von Behren , Dominik Feldschnieders , Alexander Löhr
autogenerated on Mon Feb 28 2022 22:46:06