MEPP2 Project
|
Namespaces | |
Geometry | |
Typedefs | |
typedef FEVV::DataStructures::AIF::AIFTopologyHelpers | AIFHelpers |
Functions | |
template<typename MutableFaceIncidentGraph > | |
void | collapse_edge_keep_source (MutableFaceIncidentGraph &g, typename boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor &e) |
Collapse an edge of the graph. The edge to collapse is given as a non-oriented edge. The edge source vertex is kept, and the edge target vertex is removed from the graph. More... | |
template<typename MutableFaceIncidentGraph > | |
void | collapse_edge_keep_target (MutableFaceIncidentGraph &g, typename boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor &e) |
Collapse an edge of the graph. The edge to collapse is given as a non-oriented edge. The edge target vertex is kept, and the edge source vertex is removed from the graph. More... | |
template<typename MutableFaceIncidentGraph > | |
static void | replace_similar_edges (typename boost::graph_traits< MutableFaceIncidentGraph >::face_descriptor face, const typename boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor old_edge, const typename boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor new_edge, MutableFaceIncidentGraph &g) |
Replace the old_edge incident edge of face by the new_edge if old_edge and new_edge were similar/parallel edges. More... | |
template<typename MutableFaceIncidentGraph > | |
static void | merge_similar_edges (typename boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor e_to_keep, typename boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor e_to_remove, MutableFaceIncidentGraph &g) |
For all faces incident to e_to_remove, if e_to_keep and e_to_remove were similar/parallel edges then these faces are made incident to e_to_keep by replacing e_to_remove by e_to_keep among their incident edges. Then each face is added to e_to_keep' incident faces. More... | |
template<typename MutableFaceIncidentGraph > | |
static void | resolve_similar_incident_edges (typename boost::graph_traits< MutableFaceIncidentGraph >::vertex_descriptor v_to_keep, MutableFaceIncidentGraph &g) |
Remove/resolve similar/parallel edges for all incident edges of v_to_keep vertex. More... | |
template<typename MutableFaceIncidentGraph > | |
static void | resolve_similar_incident_faces (typename boost::graph_traits< MutableFaceIncidentGraph >::vertex_descriptor v_to_keep, MutableFaceIncidentGraph &g, bool take_into_account_face_rientation=false) |
Remove/resolve similar faces for all incident faces of v_to_keep vertex. More... | |
template<typename MutableFaceIncidentGraph > | |
static std::vector< std::pair< typename boost::graph_traits< MutableFaceIncidentGraph >::face_descriptor, bool > > | resolve_similar_incident_faces (typename boost::graph_traits< MutableFaceIncidentGraph >::vertex_descriptor v_to_keep, MutableFaceIncidentGraph &g, const std::set< typename boost::graph_traits< MutableFaceIncidentGraph >::face_descriptor > &faces_to_preserve_range, bool take_into_account_face_rientation) |
Remove/resolve similar faces for all incident faces of v_to_keep vertex. More... | |
template<typename MutableFaceIncidentGraph > | |
boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor | split_edge (MutableFaceIncidentGraph &g, typename boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor e, typename boost::graph_traits< MutableFaceIncidentGraph >::vertex_descriptor midpoint_vertex) |
Split an edge of the graph. More... | |
template<typename MutableFaceIncidentGraph > | |
boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor | split_edge (MutableFaceIncidentGraph &g, typename boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor e) |
Split an edge of the graph. More... | |
template<typename MutableFaceIncidentGraph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<MutableFaceIncidentGraph>> | |
boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor | split_edge (MutableFaceIncidentGraph &g, PointMap pm, typename boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor e) |
Split an edge of the graph. More... | |
template<typename FaceIncidentGraph > | |
static bool | are_similar_edges (const typename boost::graph_traits< FaceIncidentGraph >::edge_descriptor edge1, const typename boost::graph_traits< FaceIncidentGraph >::edge_descriptor edge2, const FaceIncidentGraph &g) |
Function determining if the arguments are similar edges (parallel edges). More... | |
template<typename FaceIncidentGraph > | |
static bool | contains_similar_incident_edges (const typename boost::graph_traits< FaceIncidentGraph >::vertex_descriptor v_to_keep, const FaceIncidentGraph &g) |
Function determining if a pair of similar/parallel edges exists among the incident edges of vertex v_to_keep. More... | |
template<typename FaceIncidentGraph > | |
static bool | are_similar_faces (const typename boost::graph_traits< FaceIncidentGraph >::face_descriptor f1, const typename boost::graph_traits< FaceIncidentGraph >::face_descriptor f2, const FaceIncidentGraph &g, bool take_into_account_face_rientation=false) |
Function determining if the arguments are similar faces (parallel faces). More... | |
template<typename FaceIncidentGraph > | |
static bool | contains_similar_incident_faces (const typename boost::graph_traits< FaceIncidentGraph >::edge_descriptor e_to_keep, const FaceIncidentGraph &g) |
Function determining if a pair of similar/parallel faces exists among the incident faces of edge e_to_keep. More... | |
template<typename FaceIncidentGraph > | |
static bool | contains_similar_incident_faces (const typename boost::graph_traits< FaceIncidentGraph >::vertex_descriptor v_to_keep, const FaceIncidentGraph &g) |
Function determining if a pair of similar/parallel faces exists among the incident faces of vertex v_to_keep. More... | |
template<typename IncidentMutableFaceGraph > | |
bool | has_only_incident_triangular_faces (const typename boost::graph_traits< IncidentMutableFaceGraph >::edge_descriptor e, const IncidentMutableFaceGraph &g) |
Function determining if the incident faces to e are all triangles. More... | |
template<typename HalfedgeGraph , typename PointMap , typename GeometryTraits > | |
GeometryTraits::Vector | calculate_face_normal (typename boost::graph_traits< HalfedgeGraph >::face_descriptor f, const HalfedgeGraph &g, const PointMap &pm, const GeometryTraits >) |
Calculate "some" normal to the considered face. More... | |
template<typename FaceGraph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits< FaceGraph >> | |
bool | is_geometrical_fold (const typename boost::graph_traits< FaceGraph >::halfedge_descriptor h1, const typename boost::graph_traits< FaceGraph >::halfedge_descriptor h2, const FaceGraph &g, const PointMap &pm, const GeometryTraits >) |
Geometric fold detection, usually during iterations of an CGAL::Halfedge_around_target_circulator object cir_he. More... | |
template<typename HalfedgeGraph , typename PointMap , typename Vector , typename VertexTangentMap > | |
void | calculate_face_tangent (typename boost::graph_traits< HalfedgeGraph >::face_descriptor f, const HalfedgeGraph &g, const PointMap &pm, const Vector &uv1, const Vector &uv2, const Vector &uv3, VertexTangentMap &vtm) |
Calculate a face tangent, then accumulate its value on every vertices it contains to average them; final vertex tangents are normalized later. More... | |
template<typename HalfedgeGraph , typename PointMap , typename GeometryTraits > | |
GeometryTraits::Vector | calculate_vertex_normal (typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor v, const HalfedgeGraph &g, const PointMap &pm, const GeometryTraits >) |
Computes the unit normal at considered vertex v as the average of the normals of incident faces. More... | |
template<typename HalfedgeGraph , typename PointMap , typename FaceNormalMap , typename GeometryTraits > | |
GeometryTraits::Vector | calculate_vertex_normal (typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor v, const HalfedgeGraph &g, const PointMap &, const FaceNormalMap &fnm, const GeometryTraits >) |
Computes the unit normal at considered vertex v as the average of the precomputed normals (provided as argument) of incident faces. More... | |
template<typename MutableFaceGraph > | |
void | collapse_edge_keep_source (MutableFaceGraph &g, typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor &h) |
Collapse an edge of the graph. The edge to collapse is given as a halfedge. The halfedge source vertex is kept, and the halfedge target vertex is removed from the graph. More... | |
template<typename MutableFaceGraph > | |
void | collapse_edge_keep_target (MutableFaceGraph &g, typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor &h) |
Collapse an edge of the graph. The edge to collapse is given as a halfedge. The halfedge target vertex is kept, and the halfedge source vertex is removed from the graph. More... | |
template<typename MutableFaceGraph > | |
void | collapse_edge_keep_source_euler (MutableFaceGraph &g, typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor &h) |
Collapse an edge of the graph. The edge to collapse is given as a halfedge. The halfedge source vertex is kept, and the halfedge target vertex is removed from the graph. More... | |
template<typename MutableFaceGraph > | |
void | collapse_edge_keep_target_euler (MutableFaceGraph &g, typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor &h) |
Collapse an edge of the graph. The edge to collapse is given as a halfedge. The halfedge target vertex is kept, and the halfedge source vertex is removed from the graph. More... | |
template<typename MutableFaceGraph > | |
void | delete_edge_if_parallel (MutableFaceGraph &g, typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor &h) |
Delete the edge provided as argument when it is parallel to another edge of the graph (this is an if and only if condition) i.e. when the edge (as opposed to half edges) provided as argument and (at least) another edge are adjacent to the same two vertices. More... | |
template<typename MutableFaceGraph > | |
void | flip_edge (MutableFaceGraph &g, typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor &h) |
Flip an edge of the graph. The edge to flip is given as a halfedge. More... | |
template<typename FaceGraph , typename GeometryTraits = FEVV::Geometry_traits< FaceGraph >> | |
void | extract_k_ring (typename boost::graph_traits< FaceGraph >::vertex_descriptor v, const FaceGraph &g, int k, std::vector< typename boost::graph_traits< FaceGraph >::vertex_descriptor > &qv) |
Extract vertices which are at most k (inclusive) far from vertex v in the graph of edges. More... | |
template<typename FaceGraph > | |
void | extract_vertex_star (typename boost::graph_traits< FaceGraph >::vertex_descriptor v, const FaceGraph &g, std::vector< typename boost::graph_traits< FaceGraph >::halfedge_descriptor > &qh) |
Extract halfedges which have v as target vertex. All extracted halfedges are associated to a face, meaning that for a border halfedge, it is its opposite halfedge that is extracted. More... | |
template<typename FaceGraph , typename GeometryTraits = FEVV::Geometry_traits< FaceGraph >> | |
void | extract_1_ring_not_including_v (typename boost::graph_traits< FaceGraph >::vertex_descriptor v, const FaceGraph &g, std::vector< typename boost::graph_traits< FaceGraph >::vertex_descriptor > &qv) |
Extract vertices which are at exactly 1 far from vertex v in the graph of edges. More... | |
template<typename HalfedgeGraph , typename PointMap , typename GeometryTraits = typename FEVV::Geometry_traits<HalfedgeGraph>> | |
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. More... | |
template<typename MutableFaceGraph , typename PointMap > | |
void | split_edge (MutableFaceGraph &g, PointMap pm, typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor &h) |
Split an edge of the graph. The edge to split is given as an halfedge. More... | |
template<typename MutableFaceGraph , typename PointMap > | |
void | split_edge_euler (MutableFaceGraph &g, PointMap pm, typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor &h) |
Split an edge of the graph. The edge to split is given as a halfedge. More... | |
template<typename FaceGraph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits< FaceGraph >> | |
boost::property_traits< PointMap >::value_type | vertex_one_ring_angles_based_centroid (typename boost::graph_traits< FaceGraph >::vertex_descriptor v, const FaceGraph &g, const PointMap &pm, const typename GeometryTraits::Scalar smoothing_factor, const GeometryTraits >) |
Angle-based smoothing of the vertex' one ring of vertex positions. Increases the min angle and decreases the max angle. More... | |
template<typename FaceGraph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits< FaceGraph >> | |
boost::property_traits< PointMap >::value_type | vertex_one_ring_barycenter (typename boost::graph_traits< FaceGraph >::vertex_descriptor v, const FaceGraph &g, const PointMap &pm, const typename GeometryTraits::Scalar smoothing_factor, const GeometryTraits >) |
Barycenter of the vertex' one ring of vertex positions. More... | |
template<typename FaceGraph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits< FaceGraph >> | |
boost::property_traits< PointMap >::value_type | vertex_one_ring_geometric_laplacian (typename boost::graph_traits< FaceGraph >::vertex_descriptor v, const FaceGraph &g, const PointMap &pm, const typename GeometryTraits::Scalar smoothing_factor, const GeometryTraits >) |
Geometric Laplacian of the vertex' one ring of vertex positions. More... | |
template<typename HalfedgeGraph , typename PointMap > | |
void | print_halfedge (const typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor &h, PointMap pm, const HalfedgeGraph &g) |
Print the source and the target coordinates of one halfedge. More... | |
template<typename Point , typename Vector > | |
Vector | calculate_triangle_tangent (const Point &pt1, const Point &pt2, const Point &pt3, const Vector &uv1, const Vector &uv2, const Vector &uv3) |
Calculate the actual face tangent from three connected vertices' positions & texture coordinates. More... | |
Definition at line 28 of file collapse_edge.hpp.
|
static |
Function determining if the arguments are similar edges (parallel edges).
FaceIncidentGraph | a Mesh type that provides a Model of the FaceIncidentGraph Concept through a boost::graph_traits<> specialization. |
edge1 | The first involving edge |
edge2 | The second involving edge |
g | The FaceIncidentGraph instance from which the edges are taken. |
Definition at line 33 of file topology_predicates.hpp.
|
static |
Function determining if the arguments are similar faces (parallel faces).
FaceIncidentGraph | a Mesh type that provides a Model of the FaceIncidentGraph Concept through a boost::graph_traits<> specialization. |
f1 | The first involving face |
f2 | The second involving face |
g | The FaceIncidentGraph instance from which the faces are taken. |
take_into_account_face_rientation | A boolean to tell if the similar faces must have the same orientation. |
take_into_account_face_rientation | false means two faces sharing the same vertices not with the same orientation are similar, else they must have the same orientation |
Definition at line 99 of file topology_predicates.hpp.
GeometryTraits::Vector FEVV::Operators::calculate_face_normal | ( | typename boost::graph_traits< HalfedgeGraph >::face_descriptor | f, |
const HalfedgeGraph & | g, | ||
const PointMap & | pm, | ||
const GeometryTraits & | gt | ||
) |
Calculate "some" normal to the considered face.
[in] | f | The considered face |
[in] | g | The mesh to which the face belongs |
[in] | pm | The Point Map holding the vertices geometry |
[in] | gt | The Geometry Traits associated to the mesh |
Definition at line 33 of file calculate_face_normal.hpp.
void FEVV::Operators::calculate_face_tangent | ( | typename boost::graph_traits< HalfedgeGraph >::face_descriptor | f, |
const HalfedgeGraph & | g, | ||
const PointMap & | pm, | ||
const Vector & | uv1, | ||
const Vector & | uv2, | ||
const Vector & | uv3, | ||
VertexTangentMap & | vtm | ||
) |
Calculate a face tangent, then accumulate its value on every vertices it contains to average them; final vertex tangents are normalized later.
PointMap | A modifiable point map to manage vertex positions. |
[in] | f | the face descriptor representing the face on which we compute the tangent. |
[in] | g | the halfedge graph from which we take the mesh's informations. |
[in] | pm | point map containing vertices' positions. |
[in] | uv1 | first vertex's texture coordinates. |
[in] | uv2 | second vertex's texture coordinates. |
[in] | uv3 | third vertex's texture coordinates. |
[in,out] | vtm | vertex tangent map to be filled with computed tangents. |
Definition at line 41 of file calculate_face_tangent.hpp.
Vector FEVV::Operators::calculate_triangle_tangent | ( | const Point & | pt1, |
const Point & | pt2, | ||
const Point & | pt3, | ||
const Vector & | uv1, | ||
const Vector & | uv2, | ||
const Vector & | uv3 | ||
) |
Calculate the actual face tangent from three connected vertices' positions & texture coordinates.
[in] | pt1 | first vertex's position. |
[in] | pt2 | second vertex's position. |
[in] | pt3 | third vertex's position. |
[in] | uv1 | first vertex's texture coordinates. |
[in] | uv2 | second vertex's texture coordinates. |
[in] | uv3 | third vertex's texture coordinates. |
Definition at line 33 of file tangents.hpp.
GeometryTraits::Vector FEVV::Operators::calculate_vertex_normal | ( | typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor | v, |
const HalfedgeGraph & | g, | ||
const PointMap & | , | ||
const FaceNormalMap & | fnm, | ||
const GeometryTraits & | gt | ||
) |
Computes the unit normal at considered vertex v as the average of the precomputed normals (provided as argument) of incident faces.
[in] | v | The considered vertex |
[in] | g | The mesh to which the vertex belongs |
[in] | pm | The Point Map holding the vertices geometry |
[in] | fnm | The Face Normal Map providing the normals to incident faces |
[in] | gt | The Geometry Traits associated to the mesh |
gt | provided face normals |
Definition at line 112 of file calculate_vertex_normal.hpp.
GeometryTraits::Vector FEVV::Operators::calculate_vertex_normal | ( | typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor | v, |
const HalfedgeGraph & | g, | ||
const PointMap & | pm, | ||
const GeometryTraits & | gt | ||
) |
Computes the unit normal at considered vertex v as the average of the normals of incident faces.
[in] | v | The considered vertex |
[in] | g | The mesh to which the vertex belongs |
[in] | pm | The Point Map holding the vertices geometry |
[in] | gt | The Geometry Traits associated to the mesh |
Definition at line 43 of file calculate_vertex_normal.hpp.
void FEVV::Operators::collapse_edge_keep_source | ( | MutableFaceGraph & | g, |
typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor & | h | ||
) |
Collapse an edge of the graph. The edge to collapse is given as a halfedge. The halfedge source vertex is kept, and the halfedge target vertex is removed from the graph.
MutableFaceGraph | a Mesh type that provides a Model of the MutableFaceGraph Concept through a boost::graph_traits<> specialization. |
g | The MutableFaceGraph instance out of which the h edge will be deleted. |
h | The edge to be deleted designated through one of its halfedges. |
Definition at line 36 of file collapse_edge.hpp.
void FEVV::Operators::collapse_edge_keep_source | ( | MutableFaceIncidentGraph & | g, |
typename boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor & | e | ||
) |
Collapse an edge of the graph. The edge to collapse is given as a non-oriented edge. The edge source vertex is kept, and the edge target vertex is removed from the graph.
MutableFaceIncidentGraph | a Mesh type that provides a Model of the MutableFaceIncidentGraph Concept through a boost::graph_traits<> specialization. |
g | The MutableFaceIncidentGraph instance from which the e edge will be deleted. |
e | The edge to be deleted. |
Definition at line 45 of file collapse_edge.hpp.
void FEVV::Operators::collapse_edge_keep_source_euler | ( | MutableFaceGraph & | g, |
typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor & | h | ||
) |
Collapse an edge of the graph. The edge to collapse is given as a halfedge. The halfedge source vertex is kept, and the halfedge target vertex is removed from the graph.
MutableFaceGraph | a Mesh type that provides a Model of the MutableFaceGraph Concept through a boost::graph_traits<> specialization. |
g | The MutableFaceGraph instance out of which the h edge will be deleted. |
h | The edge to be deleted designated through one of its halfedges. |
Definition at line 36 of file collapse_edge_euler.hpp.
void FEVV::Operators::collapse_edge_keep_target | ( | MutableFaceGraph & | g, |
typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor & | h | ||
) |
Collapse an edge of the graph. The edge to collapse is given as a halfedge. The halfedge target vertex is kept, and the halfedge source vertex is removed from the graph.
MutableFaceGraph | a Mesh type that provides a Model of the MutableFaceGraph Concept through a boost::graph_traits<> specialization. |
g | The MutableFaceGraph instance out of which the h edge will be deleted. |
h | The edge to be deleted designated through one of its halfedges. |
Definition at line 89 of file collapse_edge.hpp.
void FEVV::Operators::collapse_edge_keep_target | ( | MutableFaceIncidentGraph & | g, |
typename boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor & | e | ||
) |
Collapse an edge of the graph. The edge to collapse is given as a non-oriented edge. The edge target vertex is kept, and the edge source vertex is removed from the graph.
MutableFaceIncidentGraph | a Mesh type that provides a Model of the MutableFaceIncidentGraph Concept through a boost::graph_traits<> specialization. |
g | The MutableFaceIncidentGraph instance from which the e edge will be deleted. |
e | The edge to be deleted. |
Definition at line 180 of file collapse_edge.hpp.
void FEVV::Operators::collapse_edge_keep_target_euler | ( | MutableFaceGraph & | g, |
typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor & | h | ||
) |
Collapse an edge of the graph. The edge to collapse is given as a halfedge. The halfedge target vertex is kept, and the halfedge source vertex is removed from the graph.
MutableFaceGraph | a Mesh type that provides a Model of the MutableFaceGraph Concept through a boost::graph_traits<> specialization. |
g | The MutableFaceGraph instance out of which the h edge will be deleted. |
h | The edge to be deleted designated through one of its halfedges. |
Definition at line 67 of file collapse_edge_euler.hpp.
|
static |
Function determining if a pair of similar/parallel edges exists among the incident edges of vertex v_to_keep.
FaceIncidentGraph | a Mesh type that provides a Model of the FaceIncidentGraph Concept through a boost::graph_traits<> specialization. |
v_to_keep | The involving vertex |
g | The FaceIncidentGraph instance from which the vertex is taken. |
Definition at line 62 of file topology_predicates.hpp.
|
static |
Function determining if a pair of similar/parallel faces exists among the incident faces of edge e_to_keep.
FaceIncidentGraph | a Mesh type that provides a Model of the FaceIncidentGraph Concept through a boost::graph_traits<> specialization. |
e_to_keep | The involving edge |
g | The FaceIncidentGraph instance from which the edge is taken. |
Definition at line 171 of file topology_predicates.hpp.
|
static |
Function determining if a pair of similar/parallel faces exists among the incident faces of vertex v_to_keep.
FaceIncidentGraph | a Mesh type that provides a Model of the FaceIncidentGraph Concept through a boost::graph_traits<> specialization. |
v_to_keep | The involving vertex |
g | The FaceIncidentGraph instance from which the edge is taken. |
Definition at line 205 of file topology_predicates.hpp.
void FEVV::Operators::delete_edge_if_parallel | ( | MutableFaceGraph & | g, |
typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor & | h | ||
) |
Delete the edge provided as argument when it is parallel to another edge of the graph (this is an if and only if condition) i.e. when the edge (as opposed to half edges) provided as argument and (at least) another edge are adjacent to the same two vertices.
MutableFaceGraph | a Mesh type that provides a Model of the MutableFaceGraph Concept through a boost::graph_traits<> specialization. |
g | The MutableFaceGraph instance out of which the h edge will be deleted. |
h | The edge to be deleted designated through one of its halfedges. |
Definition at line 39 of file delete_edge_if_parallel.hpp.
void FEVV::Operators::extract_1_ring_not_including_v | ( | typename boost::graph_traits< FaceGraph >::vertex_descriptor | v, |
const FaceGraph & | g, | ||
std::vector< typename boost::graph_traits< FaceGraph >::vertex_descriptor > & | qv | ||
) |
Extract vertices which are at exactly 1 far from vertex v in the graph of edges.
FaceGraph | a Mesh type that provides a Model of the FaceGraph Concept through a boost::graph_traits<> specialization. |
GeometryTraits | The geometric kernel when available. This is defaulted to FEVV::Geometry_traits<FaceGraph>. |
[in] | v | The vertex whose 1-ring is computed. |
[in] | g | The FaceGraph instance. |
[out] | qv | The std::vector of vertices at exactly 1 far from vertex v in the graph of edges |
Definition at line 193 of file k_ring.hpp.
void FEVV::Operators::extract_k_ring | ( | typename boost::graph_traits< FaceGraph >::vertex_descriptor | v, |
const FaceGraph & | g, | ||
int | k, | ||
std::vector< typename boost::graph_traits< FaceGraph >::vertex_descriptor > & | qv | ||
) |
Extract vertices which are at most k (inclusive) far from vertex v in the graph of edges.
FaceGraph | a Mesh type that provides a Model of the FaceGraph Concept through a boost::graph_traits<> specialization. |
GeometryTraits | The geometric kernel when available. This is defaulted to FEVV::Geometry_traits<FaceGraph>. |
[in] | v | The vertex whose k-rings are computed. |
[in] | g | The FaceGraph instance. |
[in] | k | The maximum distance to include a vertex v' neighbor. |
[out] | qv | The std::vector of vertices at most k (inclusive) far from vertex v in the graph of edges |
Definition at line 41 of file k_ring.hpp.
void FEVV::Operators::extract_vertex_star | ( | typename boost::graph_traits< FaceGraph >::vertex_descriptor | v, |
const FaceGraph & | g, | ||
std::vector< typename boost::graph_traits< FaceGraph >::halfedge_descriptor > & | qh | ||
) |
Extract halfedges which have v as target vertex. All extracted halfedges are associated to a face, meaning that for a border halfedge, it is its opposite halfedge that is extracted.
FaceGraph | a Mesh type that provides a Model of the FaceGraph Concept through a boost::graph_traits<> specialization. |
[in] | v | The vertex whose incident halfedges are extracted. |
[in] | g | The FaceGraph instance. |
[out] | qh | The std::vector of halfedges incident to v. |
CGAL::is_border(target(opposite(h, g), g),g)
Definition at line 106 of file k_ring.hpp.
void FEVV::Operators::flip_edge | ( | MutableFaceGraph & | g, |
typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor & | h | ||
) |
Flip an edge of the graph. The edge to flip is given as a halfedge.
MutableFaceGraph | a Mesh type that provides a Model of the MutableFaceGraph Concept through a boost::graph_traits<> specialization. |
g | The MutableFaceGraph instance out of which the h edge will be flipped. |
h | The edge to be flipped designated through one of its halfedges. |
Definition at line 42 of file flip_edge.hpp.
|
inline |
Function determining if the incident faces to e are all triangles.
IncidentMutableFaceGraph | a Mesh type that provides a Model of the IncidentMutableFaceGraph Concept through a boost::graph_traits<> specialization. |
e | The involving edge. |
g | The IncidentMutableFaceGraph instance from which the edge e is taken. |
Definition at line 234 of file topology_predicates.hpp.
|
inline |
Geometric fold detection, usually during iterations of an CGAL::Halfedge_around_target_circulator object cir_he.
FaceGraph | a Mesh type that provides a Model of the FaceGraph Concept through a boost::graph_traits<> specialization. |
PointMap | A modifiable point map to manage vertex positions. |
GeometryTraits | The geometric kernel when available. This is defaulted to FEVV::Geometry_traits<FaceGraph>. |
h1 | The first involved halfedge. May be prev(prev(opposite(*cir_he, g), g), g). |
h2 | The second involved halfedge. May be next(*cir_he, g). |
g | The FaceGraph instance from which the halfedges are taken. |
pm | The mesh point map which associates vertex to positions. |
gt | The geometry trait object. |
Definition at line 44 of file is_geometrical_fold.hpp.
|
static |
For all faces incident to e_to_remove, if e_to_keep and e_to_remove were similar/parallel edges then these faces are made incident to e_to_keep by replacing e_to_remove by e_to_keep among their incident edges. Then each face is added to e_to_keep' incident faces.
MutableFaceIncidentGraph | a Mesh type that provides a Model of the MutableFaceIncidentGraph Concept through a boost::graph_traits<> specialization. |
e_to_keep | An edge used to replace e_to_remove. |
e_to_remove | An edge whose each occurence is replaced by e_to_keep. |
g | The MutableFaceIncidentGraph instance. |
Definition at line 69 of file similarity.hpp.
bool FEVV::Operators::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 & | gt | ||
) |
Function used to detected a local normal flip due to a vertex position change.
HalfedgeGraph | a Mesh type that provides a Model of the HalfedgeGraph Concept through a boost::graph_traits<> specialization. |
PointMap | A modifiable point map to manage vertex positions. |
GeometryTraits | The geometric kernel when available. This is defaulted to FEVV::Geometry_traits<HalfedgeGraph>. |
[in] | g | The HalfedgeGraph instance. |
[in] | pm | The point map which associates a vertex descriptor with a vertex position. |
[in] | e | A candidate edge to collapse. |
[in] | v | The vertex incident to edge e whose position is modified. |
[in] | new_pos_v | The new position for vertex v. |
[in] | gt | The geometry trait object. |
Definition at line 46 of file no_normal_flip_for_collapse.hpp.
void FEVV::Operators::print_halfedge | ( | const typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor & | h, |
PointMap | pm, | ||
const HalfedgeGraph & | g | ||
) |
Print the source and the target coordinates of one halfedge.
g | mesh |
h | the halfedge |
pm | point map of the mesh |
Definition at line 29 of file print_halfedge.hpp.
|
static |
Replace the old_edge incident edge of face by the new_edge if old_edge and new_edge were similar/parallel edges.
MutableFaceIncidentGraph | a Mesh type that provides a Model of the MutableFaceIncidentGraph Concept through a boost::graph_traits<> specialization. |
face | The mesh face to consider. |
old_edge | An incident edge of the face. |
new_edge | An edge to replace old_edge in the face' incident edges. |
g | The MutableFaceIncidentGraph instance. |
Definition at line 36 of file similarity.hpp.
|
static |
Remove/resolve similar/parallel edges for all incident edges of v_to_keep vertex.
MutableFaceIncidentGraph | a Mesh type that provides a Model of the MutableFaceIncidentGraph Concept through a boost::graph_traits<> specialization. |
v_to_keep | A vertex whose incident similar/paralle edges are resolved. |
g | The MutableFaceIncidentGraph instance. |
Definition at line 102 of file similarity.hpp.
|
static |
Remove/resolve similar faces for all incident faces of v_to_keep vertex.
MutableFaceIncidentGraph | a Mesh type that provides a Model of the MutableFaceIncidentGraph Concept through a boost::graph_traits<> specialization. |
v_to_keep | A vertex whose incident similar faces are resolved. |
g | The MutableFaceIncidentGraph instance. |
take_into_account_face_rientation | A boolean to tell if the similar faces must have the same orientation. |
Definition at line 150 of file similarity.hpp.
|
static |
Remove/resolve similar faces for all incident faces of v_to_keep vertex.
MutableFaceIncidentGraph | a Mesh type that provides a Model of the MutableFaceIncidentGraph Concept through a boost::graph_traits<> specialization. |
v_to_keep | A vertex whose incident similar faces are resolved. |
g | The MutableFaceIncidentGraph instance. |
faces_to_preserve_range | The set of faces to preserve during similar face removal. |
take_into_account_face_rientation | A boolean to tell if the similar faces must have the same orientation. |
Definition at line 216 of file similarity.hpp.
void FEVV::Operators::split_edge | ( | MutableFaceGraph & | g, |
PointMap | pm, | ||
typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor & | h | ||
) |
Split an edge of the graph. The edge to split is given as an halfedge.
MutableFaceGraph | a Mesh type that provides a Model of the MutableFaceGraph Concept through a boost::graph_traits<> specialization. |
PointMap | A modifiable point map to manage vertex positions. |
g | The MutableFaceGraph instance from which the edge will be split. |
pm | The mesh point map which associates vertex to positions. |
h | The edge to be split designated through one of its halfedges. |
Definition at line 44 of file split_edge.hpp.
boost::graph_traits<MutableFaceIncidentGraph>::edge_descriptor FEVV::Operators::split_edge | ( | MutableFaceIncidentGraph & | g, |
PointMap | pm, | ||
typename boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor | e | ||
) |
Split an edge of the graph.
MutableFaceIncidentGraph | a Mesh type that provides a Model of the MutableFaceIncidentGraph Concept through a boost::graph_traits<> specialization. |
PointMap | A modifiable point map to manage vertex positions. |
GeometryTraits | The geometric kernel when available. This is defaulted to FEVV::Geometry_traits<MutableFaceIncidentGraph>. |
g | The MutableFaceIncidentGraph instance from which the e edge will be split. |
pm | The mesh point map which associates vertex to positions. |
e | The edge to be split. |
Definition at line 221 of file split_edge.hpp.
boost::graph_traits<MutableFaceIncidentGraph>::edge_descriptor FEVV::Operators::split_edge | ( | MutableFaceIncidentGraph & | g, |
typename boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor | e | ||
) |
Split an edge of the graph.
MutableFaceIncidentGraph | a Mesh type that provides a Model of the MutableFaceIncidentGraph Concept through a boost::graph_traits<> specialization. |
g | The MutableFaceIncidentGraph instance from which the e edge will be split. |
e | The edge to be split. |
Definition at line 189 of file split_edge.hpp.
boost::graph_traits<MutableFaceIncidentGraph>::edge_descriptor FEVV::Operators::split_edge | ( | MutableFaceIncidentGraph & | g, |
typename boost::graph_traits< MutableFaceIncidentGraph >::edge_descriptor | e, | ||
typename boost::graph_traits< MutableFaceIncidentGraph >::vertex_descriptor | midpoint_vertex | ||
) |
Split an edge of the graph.
MutableFaceIncidentGraph | a Mesh type that provides a Model of the MutableFaceIncidentGraph Concept through a boost::graph_traits<> specialization. |
g | The MutableFaceIncidentGraph instance from which the e edge will be split. |
e | The edge to be split. |
midpoint_vertex | The new vertex used for the splitting. |
Definition at line 46 of file split_edge.hpp.
void FEVV::Operators::split_edge_euler | ( | MutableFaceGraph & | g, |
PointMap | pm, | ||
typename boost::graph_traits< MutableFaceGraph >::halfedge_descriptor & | h | ||
) |
Split an edge of the graph. The edge to split is given as a halfedge.
MutableFaceGraph | a Mesh type that provides a Model of the MutableFaceGraph Concept through a boost::graph_traits<> specialization. |
PointMap | A modifiable point map to manage vertex positions. |
g | The MutableFaceGraph instance from which the edge will be split. |
pm | The mesh point map which associates vertex to positions. |
h | The edge to be split designated through one of its halfedges. |
Definition at line 44 of file split_edge_euler.hpp.
boost::property_traits< PointMap >::value_type FEVV::Operators::vertex_one_ring_angles_based_centroid | ( | typename boost::graph_traits< FaceGraph >::vertex_descriptor | v, |
const FaceGraph & | g, | ||
const PointMap & | pm, | ||
const typename GeometryTraits::Scalar | smoothing_factor, | ||
const GeometryTraits & | gt | ||
) |
Angle-based smoothing of the vertex' one ring of vertex positions. Increases the min angle and decreases the max angle.
FaceGraph | a Mesh type that provides a Model of the FaceGraph Concept through a boost::graph_traits<> specialization. |
PointMap | A modifiable point map to manage vertex positions. |
GeometryTraits | The geometric kernel when available. This is defaulted to FEVV::Geometry_traits<FaceGraph>. |
[in] | v | The vertex whose one-ring angle-based centroid is computed. |
[in] | g | The FaceGraph instance from which the v vertex will be taken. |
[in] | pm | The point map which associate a vertex descriptor with a vertex position. |
[in] | smoothing_factor | A (usually positive) factor used to compute the position of the returned centroid following V_pos + smoothing_factor x(C_computed - V_pos). |
[in] | gt | The geometry trait object. |
Definition at line 51 of file vertex_one_ring_angles_based_centroid.hpp.
boost::property_traits< PointMap >::value_type FEVV::Operators::vertex_one_ring_barycenter | ( | typename boost::graph_traits< FaceGraph >::vertex_descriptor | v, |
const FaceGraph & | g, | ||
const PointMap & | pm, | ||
const typename GeometryTraits::Scalar | smoothing_factor, | ||
const GeometryTraits & | gt | ||
) |
Barycenter of the vertex' one ring of vertex positions.
FaceGraph | a Mesh type that provides a Model of the FaceGraph Concept through a boost::graph_traits<> specialization. |
PointMap | A modifiable point map to manage vertex positions. |
GeometryTraits | The geometric kernel when available. This is defaulted to FEVV::Geometry_traits<FaceGraph>. |
[in] | v | The vertex whose one-ring barycenter is computed. |
[in] | g | The FaceGraph instance from which the v vertex will be taken. |
[in] | pm | The point map which associate a vertex descriptor with a vertex position. |
[in] | smoothing_factor | A (usually positive) factor used to compute the position of the returned centroid following V_pos + smoothing_factor x(C_computed - V_pos). |
[in] | gt | The geometry trait object. |
Definition at line 47 of file vertex_one_ring_barycenter.hpp.
boost::property_traits< PointMap >::value_type FEVV::Operators::vertex_one_ring_geometric_laplacian | ( | typename boost::graph_traits< FaceGraph >::vertex_descriptor | v, |
const FaceGraph & | g, | ||
const PointMap & | pm, | ||
const typename GeometryTraits::Scalar | smoothing_factor, | ||
const GeometryTraits & | gt | ||
) |
Geometric Laplacian of the vertex' one ring of vertex positions.
FaceGraph | a Mesh type that provides a Model of the FaceGraph Concept through a boost::graph_traits<> specialization. |
PointMap | A modifiable point map to manage vertex positions. |
GeometryTraits | The geometric kernel when available. This is defaulted to FEVV::Geometry_traits<FaceGraph>. |
[in] | v | The vertex whose one-ring geometric laplacian is computed. |
[in] | g | The FaceGraph instance from which the v vertex will be taken. |
[in] | pm | The point map which associate a vertex descriptor with a vertex position. |
[in] | smoothing_factor | A (positive/move towards or negative/move away from) factor used to compute the position of the returned geometric laplacian V_pos + smoothing_factor x(GL_computed - V_pos). |
[in] | gt | The geometry trait object. |
Definition at line 47 of file vertex_one_ring_geometric_laplacian.hpp.