Go to the documentation of this file.
13 #include <boost/graph/graph_traits.hpp>
14 #include <boost/graph/properties.hpp>
16 #include <CGAL/boost/graph/helpers.h>
43 template<
typename HalfedgeGraph,
47 const HalfedgeGraph& g,
49 typename boost::graph_traits<HalfedgeGraph>::edge_descriptor e,
52 const GeometryTraits >)
54 typename boost::graph_traits<HalfedgeGraph>::halfedge_descriptor h1 =
halfedge(e, g);
55 typename boost::graph_traits<HalfedgeGraph>::halfedge_descriptor h2 =
opposite(h1, g);
56 auto iterator_range = CGAL::halfedges_around_target(v, g);
57 for (
auto h : iterator_range)
59 if (CGAL::is_border(h, g))
63 typename boost::graph_traits<HalfedgeGraph>::face_descriptor f =
face(h, g);
76 bool b = FEVV::Math::Vector::are_collinear<GeometryTraits>(gt.sub_p(p0, p1), gt.sub_p(
get(pm, v), p1));
82 std::numeric_limits<typename GeometryTraits::Scalar>::quiet_NaN(),
83 std::numeric_limits<typename GeometryTraits::Scalar>::quiet_NaN());
86 face_normal_after_collapse = gt.normal(p0, p1, new_pos_v);
88 const typename GeometryTraits::Scalar sign = gt.dot_product(
face_normal, face_normal_after_collapse);
boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::halfedge_descriptor opposite(typename boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::halfedge_descriptor h, const FEVV::DataStructures::AIF::AIFMesh &sm)
Returns the halfedge with source and target swapped.
boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::vertex_descriptor source(typename boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::edge_descriptor e, const FEVV::DataStructures::AIF::AIFMesh &)
Returns the source vertex of e.
FEVV::PCLPointCloudPointMap::value_type get(const FEVV::PCLPointCloudPointMap &pm, FEVV::PCLPointCloudPointMap::key_type key)
Specialization of get(point_map, key) for PCLPointCloud.
Interfaces for plugins These interfaces will be used for different plugins.
bool no_normal_flip_for_collapse(const HalfedgeGraph &g, const PointMap &pm, typename boost::graph_traits< HalfedgeGraph >::edge_descriptor e, typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor v, const typename GeometryTraits::Point &new_pos_v, const GeometryTraits >)
Function used to detected a local normal flip due to a vertex position change.
boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::halfedge_descriptor halfedge(typename boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::vertex_descriptor v, const FEVV::DataStructures::AIF::AIFMesh &sm)
Returns a halfedge with target v.
boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::halfedge_descriptor prev(typename boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::halfedge_descriptor h, const FEVV::DataStructures::AIF::AIFMesh &sm)
Returns the previous halfedge around its face.
boost::graph_traits< MeshT >::vertex_descriptor vertex_descriptor
boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::face_descriptor face(typename boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::halfedge_descriptor h, const FEVV::DataStructures::AIF::AIFMesh &)
Returns the face incident to halfedge h.