32 #ifndef LVR2_ALGORITHM_GEOMETRYALGORITHMS_H_ 33 #define LVR2_ALGORITHM_GEOMETRYALGORITHMS_H_ 57 template<
typename BaseVecT>
59 const BaseMesh<BaseVecT>&
mesh,
62 vector<VertexHandle>& neighborsOut
76 template <
typename BaseVecT,
typename VisitorF>
78 const BaseMesh<BaseVecT>&
mesh,
93 template<
typename BaseVecT>
112 template<
typename BaseVecT>
114 const BaseMesh<BaseVecT>&
mesh,
116 const VertexMap<Normal<typename BaseVecT::CoordType>>& normals
128 template<
typename BaseVecT>
130 const BaseMesh<BaseVecT>&
mesh,
131 const VertexMap<Normal<typename BaseVecT::CoordType>>& normals
143 template<
typename BaseVecT>
145 const BaseMesh<BaseVecT>&
mesh,
146 const VertexMap<Normal<typename BaseVecT::CoordType>>& normals
166 template<
typename BaseVecT>
168 const BaseMesh<BaseVecT>&
mesh,
170 const VertexMap<Normal<typename BaseVecT::CoordType>>& normals,
171 DenseVertexMap<float>& roughness,
172 DenseVertexMap<float>& heightDiff
181 template<
typename BaseVecT>
194 template<
typename BaseVecT>
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);
209 #include "GeometryAlgorithms.tcc"
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'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's handle).
AttributeMap< VertexHandle, ValueT > VertexMap
DenseVertexMap< float > calcVertexRoughness(const BaseMesh< BaseVecT > &mesh, double radius, const VertexMap< Normal< typename BaseVecT::CoordType >> &normals)
Calculates the roughness for each vertex.