MEPP2 Project
Classes | Public Types | Static Public Member Functions | Static Private Member Functions | List of all members
FEVV::DataStructures::AIF::AIFTopologyHelpers Class Reference

This class is an helper class associated to the AIFMesh structure. AIFTopologyHelpers implements all the basic topologic function used to manipulate an AIFMesh. Any operation on the AIF structure need to be realized with this helper class. More...

#include <AIFTopologyHelpers.h>

Collaboration diagram for FEVV::DataStructures::AIF::AIFTopologyHelpers:
Collaboration graph

Classes

class  AIFHalfEdge
 

Public Types

enum  vertex_pos { FIRST, SECOND }
 The vertex position in an edge. More...
 
enum  face_degree { TRIANGULAR = 3, QUADRANGULAR = 4 }
 Compliant enumeration for face degree comparison. More...
 
typedef AIFMesh mesh_type
 
typedef mesh_type::vertex_type vertex_type
 
typedef mesh_type::edge_type edge_type
 
typedef mesh_type::face_type face_type
 
typedef mesh_type::ptr smart_ptr_mesh
 
typedef mesh_type::ptr_cmesh smart_ptr_cmesh
 
typedef mesh_typeptr_mesh
 
typedef const mesh_typeptr_cmesh
 
typedef mesh_typeref_mesh
 
typedef std::add_lvalue_reference< const mesh_type >::type ref_cmesh
 
typedef vertex_type::ptr vertex_descriptor
 
typedef edge_type::ptr edge_descriptor
 
typedef face_type::ptr face_descriptor
 
typedef vertex_type::VertexContainerType vertex_container_in_vertex
 
typedef vertex_type::EdgeContainerType edge_container_in_vertex
 
typedef vertex_type::FaceContainerType face_container_in_vertex
 
typedef edge_type::VertexContainerType vertex_container_in_edge
 
typedef edge_type::EdgeContainerType edge_container_in_edge
 
typedef edge_type::FaceContainerType face_container_in_edge
 
typedef face_type::VertexContainerType vertex_container_in_face
 
typedef face_type::EdgeContainerType edge_container_in_face
 
typedef face_type::FaceContainerType face_container_in_face
 
typedef mesh_type::VertexContainerType vertex_container
 
typedef mesh_type::EdgeContainerType edge_container
 
typedef mesh_type::FaceContainerType face_container
 
typedef unsigned int size_type
 
typedef edge_container_in_vertex::const_iterator out_edge_iterator
 
typedef edge_container_in_vertex::size_type degree_size_type
 
typedef vertex_container_in_vertex::const_iterator adjacency_iterator
 
typedef edge_container_in_face::iterator incident_edge_iterator
 
typedef face_container_in_edge::iterator incident_face_iterator
 
typedef edge_container_in_face::const_iterator const_incident_edge_iterator
 
typedef face_container_in_edge::const_iterator const_incident_face_iterator
 
typedef AIFHalfEdge halfedge_descriptor
 

Static Public Member Functions

static vertex_descriptor null_vertex ()
 
static edge_descriptor null_edge ()
 
static face_descriptor null_face ()
 
static bool is_degenerated_vertex (vertex_descriptor vertex)
 
static size_type degree (vertex_descriptor vertex)
 
static bool is_isolated_vertex (vertex_descriptor vertex)
 
static bool is_cut_vertex (vertex_descriptor vertex)
 
static bool is_incident_to_dangling_or_complex_edge (vertex_descriptor vertex)
 
static bool is_regular_vertex (vertex_descriptor vertex)
 
static bool is_2_manifold_vertex (vertex_descriptor vertex)
 
static bool is_surface_border_vertex (vertex_descriptor vertex)
 
static bool is_surface_interior_vertex (vertex_descriptor vertex)
 
static bool are_incident (vertex_descriptor vertex, edge_descriptor edge)
 Function determining if the arguments share an incidence relation. More...
 
static bool are_incident (vertex_descriptor vertex, vertex_descriptor u, vertex_descriptor v)
 Function determining if the arguments share an incidence relation. More...
 
static bool are_adjacent (vertex_descriptor vertex1, vertex_descriptor vertex2)
 
static std::vector< vertex_descriptoradjacent_vertices (vertex_descriptor vertex)
 
static boost::iterator_range< edge_container_in_vertex::const_iterator > incident_edges (vertex_descriptor vertex)
 
static boost::iterator_range< face_container_in_vertex::const_iterator > incident_faces (vertex_descriptor vertex)
 
static face_container_in_vertex incident_faces_container (vertex_descriptor vertex)
 
static edge_descriptor common_edge (vertex_descriptor vertex1, vertex_descriptor vertex2)
 
static std::vector< edge_descriptorcommon_edges (vertex_descriptor vertex1, vertex_descriptor vertex2)
 
static void link_vertex_and_edge (vertex_descriptor vertex, edge_descriptor edge, vertex_pos position)
 
static void unlink_vertex_and_edge (vertex_descriptor vertex, edge_descriptor edge)
 
template<typename ComparatorType >
static boost::iterator_range< vertex_container::const_iteratorsort_vertices (ptr_mesh mesh, const ComparatorType &cmp)
 
template<typename ComparatorType >
static boost::iterator_range< vertex_container::const_iteratorsort_vertices (smart_ptr_mesh mesh, const ComparatorType &cmp)
 
template<typename ComparatorType >
static boost::iterator_range< vertex_container::const_iteratorsort_vertices (ref_mesh mesh, const ComparatorType &cmp)
 
template<typename ComparatorType >
static boost::iterator_range< edge_container_in_vertex::const_iterator > sort_incident_edges_starting_with_edge (vertex_descriptor vertex, const ComparatorType &cmp, edge_descriptor edge, bool do_full_incident_edge_sorting)
 
template<typename ComparatorType >
static boost::iterator_range< edge_container_in_vertex::const_iterator > sort_incident_edges (vertex_descriptor vertex, const ComparatorType &cmp, bool do_full_incident_edge_sorting)
 
template<typename ComparatorType >
static void sort_incident_edges (edge_descriptor edge, const ComparatorType &cmp, bool do_full_incident_edge_sorting)
 
template<typename ComparatorType >
static void sort_one_ring_incident_edges (edge_descriptor edge, const ComparatorType &cmp)
 
static std::vector< edge_descriptorget_incident_hole_border_edges (vertex_descriptor vertex)
 
static std::vector< edge_descriptorget_incident_hole_border_edges_except_one_edge (vertex_descriptor vertex, edge_descriptor edge_to_remove)
 
static edge_descriptor common_edge (vertex_descriptor vertex, face_descriptor face)
 
static edge_descriptor common_edge (vertex_descriptor vertex, face_descriptor face, edge_descriptor not_that_edge)
 
static bool are_incident_to_vertex_and_edge_connected (vertex_descriptor vertex, face_descriptor face1, face_descriptor face2)
 
static size_type degree (edge_descriptor edge)
 
static bool is_surface_border_edge (edge_descriptor edge)
 
static bool is_surface_regular_edge (edge_descriptor edge)
 
static bool is_surface_interior_edge (edge_descriptor edge)
 
static bool is_regular_edge (edge_descriptor edge)
 
static bool is_isolated_edge (edge_descriptor edge)
 
static bool is_dangling_edge (edge_descriptor edge)
 
static bool is_complex_edge (edge_descriptor edge)
 
static bool is_degenerated_edge (edge_descriptor edge)
 
static vertex_descriptor common_vertex (edge_descriptor edge1, edge_descriptor edge2)
 
static size_type num_incident_dangling_edge (vertex_descriptor vertex)
 
static bool is_incident_to_dangling_edge (vertex_descriptor vertex)
 
static edge_descriptor get_incident_dangling_edge (vertex_descriptor vertex)
 
static bool are_incident (edge_descriptor edge, vertex_descriptor vertex)
 Function determining if the argument edge shares an incidence relation with the argument vertex. More...
 
static bool are_incident (edge_descriptor edge, face_descriptor face)
 Function determining if the argument edge share an incidence relation with the argument face. More...
 
static bool are_adjacent (edge_descriptor edge1, edge_descriptor edge2)
 
static boost::iterator_range< vertex_container_in_edge::const_iterator > incident_vertices (edge_descriptor edge)
 
static std::vector< edge_descriptoradjacent_edges (edge_descriptor edge)
 
static boost::iterator_range< incident_face_iteratorincident_faces (edge_descriptor edge)
 
static vertex_pos vertex_position (edge_descriptor edge, vertex_descriptor vertex)
 
static vertex_descriptor opposite_vertex (edge_descriptor edge, vertex_descriptor vertex)
 
static void swap_vertices (edge_descriptor edge)
 
static void link_edge_and_face (edge_descriptor edge, face_descriptor face)
 
static void link_edge_and_face_around_face_after_edge (edge_descriptor edge, face_descriptor face, edge_descriptor prev_edge)
 
static void link_edges_and_face_around_face_after_edge (std::vector< edge_descriptor > &edges, face_descriptor face, edge_descriptor prev_edge)
 
static void unlink_edge_and_face (edge_descriptor edge, face_descriptor face)
 
static void unlink_edges_and_face (std::vector< edge_descriptor > edges, face_descriptor face)
 
static bool is_2_manifold_edge (edge_descriptor edge)
 
template<typename ComparatorType >
static boost::iterator_range< edge_container::const_iteratorsort_edges (ptr_mesh mesh, const ComparatorType &cmp)
 
template<typename ComparatorType >
static boost::iterator_range< edge_container::const_iteratorsort_edges (smart_ptr_mesh mesh, const ComparatorType &cmp)
 
template<typename ComparatorType >
static boost::iterator_range< edge_container::const_iteratorsort_edges (ref_mesh mesh, const ComparatorType &cmp)
 
static size_type degree (face_descriptor face)
 
static bool is_isolated_face (face_descriptor face)
 
static bool is_degenerated_face (face_descriptor face)
 
static bool is_2_manifold_face (face_descriptor face)
 
static bool is_dangling_face (face_descriptor face)
 
static bool face_has_only_incident_edges_with_degree_1 (face_descriptor face)
 
static bool face_has_only_that_edge_with_degree_greater_than_1 (face_descriptor face, edge_descriptor edge)
 
static bool is_surface_border_face (face_descriptor face)
 
static bool is_surface_border_face_through_vertex (face_descriptor face, vertex_descriptor v, bool border_edge_before_v)
 
static bool is_surface_interior_face (face_descriptor face)
 
static bool are_incident (face_descriptor face, vertex_descriptor vertex)
 Function determining if the argument face shares an incidence relation with the argument vertex. More...
 
static bool are_incident (vertex_descriptor vertex, face_descriptor face)
 Function determining if the argument vertex shares an incidence relation with the argument face. More...
 
static bool are_incident (face_descriptor face, edge_descriptor edge)
 Function determining if the argument face shares an incidence relation with the argument edge. More...
 
static bool are_adjacent (face_descriptor face1, face_descriptor face2)
 
static boost::iterator_range< vertex_container_in_face::const_iterator > incident_vertices (face_descriptor face)
 
static boost::iterator_range< incident_edge_iteratorincident_edges (face_descriptor face)
 
static std::vector< face_descriptoradjacent_faces (face_descriptor face, bool one_neighborhood_sharing_edge=true)
 
static bool are_locally_edge_connected (face_descriptor face1, face_descriptor face2)
 
static bool have_consistent_orientation (face_descriptor face1, face_descriptor face2)
 
static bool is_incident_to_consistently_oriented_faces (edge_descriptor edge)
 
static void reverse_face_orientation (face_descriptor face)
 
static bool is_not_incident_to_complex_edge (face_descriptor face)
 
static face_descriptor common_face (edge_descriptor edge1, edge_descriptor edge2)
 
static edge_descriptor common_edge (face_descriptor face1, face_descriptor face2)
 
static std::vector< edge_descriptorcommon_edges (face_descriptor face1, face_descriptor face2)
 
static size_type num_vertices (ptr_cmesh mesh)
 
static size_type num_vertices (smart_ptr_cmesh mesh)
 
static size_type num_vertices (ref_cmesh mesh)
 
static size_type num_edges (ptr_cmesh mesh)
 
static size_type num_edges (smart_ptr_cmesh mesh)
 
static size_type num_edges (ref_cmesh mesh)
 
static size_type num_faces (ptr_cmesh mesh)
 
static size_type num_faces (smart_ptr_cmesh mesh)
 
static size_type num_faces (ref_cmesh mesh)
 
static boost::iterator_range< vertex_container::const_iteratorvertices (ptr_cmesh mesh)
 
static boost::iterator_range< vertex_container::const_iteratorvertices (smart_ptr_cmesh mesh)
 
static boost::iterator_range< vertex_container::const_iteratorvertices (ref_cmesh mesh)
 
static boost::iterator_range< edge_container::const_iteratoredges (ptr_cmesh mesh)
 
static boost::iterator_range< edge_container::const_iteratoredges (smart_ptr_cmesh mesh)
 
static boost::iterator_range< edge_container::const_iteratoredges (ref_cmesh mesh)
 
static bool is_2_manifold_mesh (ptr_cmesh mesh)
 
static bool is_2_manifold_mesh (smart_ptr_cmesh mesh)
 
static bool is_2_manifold_mesh (ref_cmesh mesh)
 
static bool contains_2_adjacent_faces_with_non_consistent_orientation (ptr_cmesh mesh)
 
static bool contains_2_adjacent_faces_with_non_consistent_orientation (smart_ptr_cmesh mesh)
 
static bool contains_2_adjacent_faces_with_non_consistent_orientation (ref_cmesh mesh)
 
static bool contains_a_cut_vertex (ptr_cmesh mesh)
 
static bool contains_a_cut_vertex (smart_ptr_cmesh mesh)
 
static bool contains_a_cut_vertex (ref_cmesh mesh)
 
static bool normalized_border_is_valid (ptr_cmesh mesh)
 
static bool normalized_border_is_valid (smart_ptr_cmesh mesh)
 
static bool normalized_border_is_valid (ref_cmesh mesh)
 
static size_type size_of_border_edges (ptr_cmesh mesh)
 
static size_type size_of_border_edges (smart_ptr_cmesh mesh)
 
static size_type size_of_border_edges (ref_cmesh mesh)
 
static void normalize_border (ptr_mesh mesh)
 
static void normalize_border (smart_ptr_mesh mesh)
 
static void normalize_border (ref_mesh mesh)
 
static boost::iterator_range< edge_container::const_iteratorborder_edges (ptr_cmesh mesh)
 
static boost::iterator_range< edge_container::const_iteratorborder_edges (smart_ptr_cmesh mesh)
 
static boost::iterator_range< edge_container::const_iteratorborder_edges (ref_cmesh mesh)
 
static boost::iterator_range< face_container::const_iteratorfaces (ptr_cmesh mesh)
 
static boost::iterator_range< face_container::const_iteratorfaces (smart_ptr_cmesh mesh)
 
static boost::iterator_range< face_container::const_iteratorfaces (ref_cmesh mesh)
 
static bool check_mesh_validity (ptr_cmesh mesh)
 
static bool check_mesh_validity (smart_ptr_cmesh mesh)
 
static bool check_mesh_validity (ref_cmesh mesh)
 
template<typename InputIt >
static bool contains_a_degenerated_face (InputIt first, InputIt last)
 
static vertex_descriptor add_vertex (ptr_mesh mesh)
 
static vertex_descriptor add_vertex (smart_ptr_mesh mesh)
 
static vertex_descriptor add_vertex (ref_mesh mesh)
 
static void add_vertex (vertex_descriptor vertex, ptr_mesh mesh)
 
static void add_vertex (vertex_descriptor vertex, smart_ptr_mesh mesh)
 
static void add_vertex (vertex_descriptor vertex, ref_mesh mesh)
 
static edge_descriptor add_edge (ptr_mesh mesh)
 
static edge_descriptor add_edge (smart_ptr_mesh mesh)
 
static edge_descriptor add_edge (ref_mesh mesh)
 
static void add_edge (edge_descriptor edge, ptr_mesh mesh)
 
static void add_edge (edge_descriptor edge, smart_ptr_mesh mesh)
 
static void add_edge (edge_descriptor edge, ref_mesh mesh)
 
static std::pair< edge_descriptor, bool > add_edge (vertex_descriptor v, vertex_descriptor u, ptr_mesh mesh)
 
static std::pair< edge_descriptor, bool > add_edge (vertex_descriptor v, vertex_descriptor u, smart_ptr_mesh mesh)
 
static std::pair< edge_descriptor, bool > add_edge (vertex_descriptor v, vertex_descriptor u, ref_mesh mesh)
 
static face_descriptor add_face (ptr_mesh mesh)
 
static face_descriptor add_face (smart_ptr_mesh mesh)
 
static face_descriptor add_face (ref_mesh mesh)
 
static void add_face (face_descriptor face, ptr_mesh mesh)
 
static void add_face (face_descriptor face, smart_ptr_mesh mesh)
 
static void add_face (face_descriptor face, ref_mesh mesh)
 
static void clear_vertex (vertex_descriptor vertex)
 
static void remove_vertex (vertex_descriptor vertex, ptr_mesh mesh)
 
static void remove_vertex (vertex_descriptor vertex, smart_ptr_mesh mesh)
 
static void remove_vertex (vertex_descriptor vertex, ref_mesh mesh)
 
template<typename InputIt , typename MeshType >
static void remove_vertices (InputIt first, InputIt last, MeshType &mesh)
 
static void remove_edge (edge_descriptor edge, ptr_mesh mesh)
 
static void remove_edge (edge_descriptor edge, smart_ptr_mesh mesh)
 
static void remove_edge (edge_descriptor edge, ref_mesh mesh)
 
template<typename InputIt , typename MeshType >
static void remove_edges (InputIt first, InputIt last, MeshType &mesh)
 
static void remove_edge (vertex_descriptor v, vertex_descriptor u, ptr_mesh mesh)
 
static void remove_edge (vertex_descriptor v, vertex_descriptor u, smart_ptr_mesh mesh)
 
static void remove_edge (vertex_descriptor v, vertex_descriptor u, ref_mesh mesh)
 
static void remove_face (face_descriptor face, ptr_mesh mesh)
 
static void remove_face (face_descriptor face, smart_ptr_mesh mesh)
 
static void remove_face (face_descriptor face, ref_mesh mesh)
 
template<typename InputIt , typename MeshType >
static void remove_faces (InputIt first, InputIt last, MeshType &mesh)
 
static void unlink_all_vertices (edge_descriptor edge)
 
static void unlink_all_edges (vertex_descriptor vertex)
 
static void unlink_all_edges (face_descriptor face)
 
static void unlink_all_faces (edge_descriptor edge)
 
static void add_vertex (edge_descriptor edge, vertex_descriptor vertex, enum vertex_pos position)
 
static void remove_vertex (edge_descriptor edge, vertex_descriptor vertex)
 
static void add_edge (vertex_descriptor vertex, edge_descriptor edge)
 
static void remove_edge (vertex_descriptor vertex, edge_descriptor edge)
 
static void add_face (edge_descriptor edge, face_descriptor face)
 
static void remove_face (edge_descriptor edge, face_descriptor face)
 
static void add_edge (face_descriptor face, edge_descriptor edge)
 
static void remove_edge (face_descriptor face, edge_descriptor edge)
 
static std::set< edge_descriptorget_unordered_one_ring_edges (vertex_descriptor v)
 
template<typename T >
static bool is_e_one_ring_connected (edge_descriptor e, const T &container_of_edge_one_ring, bool allow_multiple_incident_edges=false, bool ensure_e_belongs_to_container=true)
 
template<typename T >
static bool are_adjacent_edges_one_ring_connected (edge_descriptor e, const T &container_of_edge_one_ring)
 
template<typename T >
static edge_descriptor get_first_edge_whose_adjacent_edges_are_one_ring_connected (const T &container_of_edge_one_ring)
 
static edge_container_in_vertex get_ordered_one_ring_edges (vertex_descriptor v)
 
static vertex_container_in_vertex get_ordered_one_ring_vertices (vertex_descriptor v)
 
static vertex_container_in_vertex get_ordered_one_ring_of_adjacent_vertices (vertex_descriptor v)
 
static bool is_one_ring_2_manifold (vertex_descriptor v)
 
static edge_descriptor get_edge_of_face_after_edge (face_descriptor face, edge_descriptor prev_edge)
 
static edge_descriptor get_edge_of_face_before_edge (face_descriptor face, edge_descriptor next_edge)
 
static void add_edge_to_face_after_edge (face_descriptor face, edge_descriptor prev_edge, edge_descriptor edge)
 
static halfedge_descriptor null_halfedge ()
 
static halfedge_descriptor halfedge (face_descriptor face, const AIFMesh &)
 
static halfedge_descriptor halfedge (vertex_descriptor v, const AIFMesh &)
 
static halfedge_descriptor halfedge (vertex_descriptor src, vertex_descriptor target, const AIFMesh &)
 
static halfedge_descriptor halfedge (edge_descriptor edge, const AIFMesh &mesh)
 
static edge_descriptor edge (halfedge_descriptor h, const AIFMesh &)
 
static void set_target (halfedge_descriptor h, vertex_descriptor target, AIFMesh &)
 
static void set_halfedge (vertex_descriptor target, halfedge_descriptor h, AIFMesh &)
 
static void set_next (halfedge_descriptor h1, halfedge_descriptor h2, AIFMesh &mesh)
 
static void set_face (halfedge_descriptor h, face_descriptor face, AIFMesh &)
 
static void set_halfedge (face_descriptor face, halfedge_descriptor h, AIFMesh &)
 

Static Private Member Functions

static void update_for_single_edge (vertex_descriptor v, const edge_container_in_vertex &orderedOneRing, size_t index, vertex_container_in_vertex &oneR)
 
static void add_vertex_to_edge (edge_descriptor edge, vertex_descriptor vertex, enum vertex_pos position)
 
static void add_edge_to_vertex (vertex_descriptor vertex, edge_descriptor edge)
 
static void remove_vertex_from_edge (edge_descriptor edge, vertex_descriptor vertex)
 
static void remove_edge_from_vertex (vertex_descriptor vertex, edge_descriptor edge)
 
static void add_edge_to_face (face_descriptor face, edge_descriptor edge)
 
static void add_face_to_edge (edge_descriptor edge, face_descriptor face)
 
static void remove_edge_from_face (face_descriptor face, edge_descriptor edge)
 
static void remove_face_from_edge (edge_descriptor edge, face_descriptor face)
 
template<typename RandomIt , typename Compare >
static void sort (RandomIt first, RandomIt last, Compare comp)
 

Detailed Description

This class is an helper class associated to the AIFMesh structure. AIFTopologyHelpers implements all the basic topologic function used to manipulate an AIFMesh. Any operation on the AIF structure need to be realized with this helper class.

See also
AIFMesh

Definition at line 56 of file AIFTopologyHelpers.h.

Member Typedef Documentation

◆ adjacency_iterator

typedef vertex_container_in_vertex::const_iterator FEVV::DataStructures::AIF::AIFTopologyHelpers::adjacency_iterator

Definition at line 92 of file AIFTopologyHelpers.h.

◆ const_incident_edge_iterator

Definition at line 97 of file AIFTopologyHelpers.h.

◆ const_incident_face_iterator

Definition at line 98 of file AIFTopologyHelpers.h.

◆ degree_size_type

typedef edge_container_in_vertex::size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::degree_size_type

Definition at line 90 of file AIFTopologyHelpers.h.

◆ edge_container

Definition at line 84 of file AIFTopologyHelpers.h.

◆ edge_container_in_edge

Definition at line 78 of file AIFTopologyHelpers.h.

◆ edge_container_in_face

Definition at line 81 of file AIFTopologyHelpers.h.

◆ edge_container_in_vertex

Definition at line 75 of file AIFTopologyHelpers.h.

◆ edge_descriptor

Definition at line 71 of file AIFTopologyHelpers.h.

◆ edge_type

Definition at line 61 of file AIFTopologyHelpers.h.

◆ face_container

Definition at line 85 of file AIFTopologyHelpers.h.

◆ face_container_in_edge

Definition at line 79 of file AIFTopologyHelpers.h.

◆ face_container_in_face

Definition at line 82 of file AIFTopologyHelpers.h.

◆ face_container_in_vertex

Definition at line 76 of file AIFTopologyHelpers.h.

◆ face_descriptor

Definition at line 72 of file AIFTopologyHelpers.h.

◆ face_type

Definition at line 62 of file AIFTopologyHelpers.h.

◆ halfedge_descriptor

Definition at line 5755 of file AIFTopologyHelpers.h.

◆ incident_edge_iterator

Definition at line 94 of file AIFTopologyHelpers.h.

◆ incident_face_iterator

Definition at line 95 of file AIFTopologyHelpers.h.

◆ mesh_type

Definition at line 59 of file AIFTopologyHelpers.h.

◆ out_edge_iterator

typedef edge_container_in_vertex::const_iterator FEVV::DataStructures::AIF::AIFTopologyHelpers::out_edge_iterator

Definition at line 89 of file AIFTopologyHelpers.h.

◆ ptr_cmesh

Definition at line 67 of file AIFTopologyHelpers.h.

◆ ptr_mesh

Definition at line 66 of file AIFTopologyHelpers.h.

◆ ref_cmesh

typedef std::add_lvalue_reference< const mesh_type >::type FEVV::DataStructures::AIF::AIFTopologyHelpers::ref_cmesh

Definition at line 69 of file AIFTopologyHelpers.h.

◆ ref_mesh

Definition at line 68 of file AIFTopologyHelpers.h.

◆ size_type

Definition at line 87 of file AIFTopologyHelpers.h.

◆ smart_ptr_cmesh

Definition at line 65 of file AIFTopologyHelpers.h.

◆ smart_ptr_mesh

Definition at line 64 of file AIFTopologyHelpers.h.

◆ vertex_container

Definition at line 83 of file AIFTopologyHelpers.h.

◆ vertex_container_in_edge

Definition at line 77 of file AIFTopologyHelpers.h.

◆ vertex_container_in_face

Definition at line 80 of file AIFTopologyHelpers.h.

◆ vertex_container_in_vertex

Definition at line 74 of file AIFTopologyHelpers.h.

◆ vertex_descriptor

Definition at line 70 of file AIFTopologyHelpers.h.

◆ vertex_type

Definition at line 60 of file AIFTopologyHelpers.h.

Member Enumeration Documentation

◆ face_degree

Compliant enumeration for face degree comparison.

Enumerator
TRIANGULAR 
QUADRANGULAR 

Definition at line 109 of file AIFTopologyHelpers.h.

◆ vertex_pos

The vertex position in an edge.

Enumerator
FIRST 
SECOND 

Definition at line 104 of file AIFTopologyHelpers.h.

Member Function Documentation

◆ add_edge() [1/11]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_edge ( edge_descriptor  edge,
ptr_mesh  mesh 
)
inlinestatic
  Mesh edge inserter
Parameters
edgeThe isolated edge to insert
meshThe involving mesh
Returns
void

Definition at line 2800 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_edge() [2/11]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_edge ( edge_descriptor  edge,
ref_mesh  mesh 
)
inlinestatic
  Mesh edge inserter
Parameters
edgeThe isolated edge to insert
meshThe involving mesh
Returns
void

Definition at line 2822 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_edge() [3/11]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_edge ( edge_descriptor  edge,
smart_ptr_mesh  mesh 
)
inlinestatic
  Mesh edge inserter
Parameters
edgeThe isolated edge to insert
meshThe involving mesh
Returns
void

Definition at line 2811 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_edge() [4/11]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_edge ( face_descriptor  face,
edge_descriptor  edge 
)
inlinestatic
  Add the edge to the face'incident edges if face and edge

were not incident. Update caching information for face' incident vertices. Usage precondition: face != null_face() and edge != null_edge()

Parameters
faceThe face for which incident edges are augmented.
edgeThe edge to add.
See also
add_edge_to_face(face, edge)

Definition at line 3436 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_edge() [5/11]

static edge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::add_edge ( ptr_mesh  mesh)
inlinestatic
  Mesh edge inserter
Parameters
meshThe involving mesh
Returns
The edge newly added to the involved mesh

Definition at line 2772 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_edge() [6/11]

static edge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::add_edge ( ref_mesh  mesh)
inlinestatic
  Mesh edge inserter
Parameters
meshThe involving mesh
Returns
The edge newly added to the involved mesh

Definition at line 2792 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_edge() [7/11]

static edge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::add_edge ( smart_ptr_mesh  mesh)
inlinestatic
  Mesh edge inserter
Parameters
meshThe involving mesh
Returns
The edge newly added to the involved mesh

Definition at line 2783 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_edge() [8/11]

static std::pair< edge_descriptor, bool > FEVV::DataStructures::AIF::AIFTopologyHelpers::add_edge ( vertex_descriptor  v,
vertex_descriptor  u,
ptr_mesh  mesh 
)
inlinestatic
  Mesh edge inserter
Parameters
vA vertex incident to the edge to insert
uAnother vertex incident to the edge to insert
meshThe involving mesh
Returns
std::pair<edge_descriptor,bool>; if the edge (u,v) is already in the graph, then the bool flag returned is false and the returned edge descriptor points to the already existing edge

Definition at line 2837 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_edge() [9/11]

static std::pair< edge_descriptor, bool > FEVV::DataStructures::AIF::AIFTopologyHelpers::add_edge ( vertex_descriptor  v,
vertex_descriptor  u,
ref_mesh  mesh 
)
inlinestatic
  Mesh edge inserter
Parameters
vA vertex incident to the edge to insert
uAnother vertex incident to the edge to insert
meshThe involving mesh
Returns
std::pair<edge_descriptor,bool>; if the edge (u,v) is already in the graph, then the bool flag returned is false and the returned edge descriptor points to the already existing edge

Definition at line 2877 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_edge() [10/11]

static std::pair< edge_descriptor, bool > FEVV::DataStructures::AIF::AIFTopologyHelpers::add_edge ( vertex_descriptor  v,
vertex_descriptor  u,
smart_ptr_mesh  mesh 
)
inlinestatic
  Mesh edge inserter
Parameters
vA vertex incident to the edge to insert
uAnother vertex incident to the edge to insert
meshThe involving mesh
Returns
std::pair<edge_descriptor,bool>; if the edge (u,v) is already in the graph, then the bool flag returned is false and the returned edge descriptor points to the already existing edge

Definition at line 2862 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_edge() [11/11]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_edge ( vertex_descriptor  vertex,
edge_descriptor  edge 
)
inlinestatic

Add the edge to the vertex'incident edges if vertex and edge were not incident. Update caching information for vertex' incident edges. Usage precondition: vertex != null_vertex() and edge != null_edge()

Parameters
vertexThe vertex for which incident edges are augmented.
edgeThe edge to add.
See also
add_edge_to_vertex(vertex, edge)

Definition at line 3346 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_edge_to_face()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_edge_to_face ( face_descriptor  face,
edge_descriptor  edge 
)
inlinestaticprivate

Add the edge to the face'incident edges without any check. Update caching information for face' incident vertices.

Parameters
faceThe face for which incident edges are augmented.
edgeThe edge to add.
See also
add_edge(face, edge)

Definition at line 4606 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_edge_to_face_after_edge()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_edge_to_face_after_edge ( face_descriptor  face,
edge_descriptor  prev_edge,
edge_descriptor  edge 
)
inlinestatic
  Add the edge to the face'incident edges after the

prev_edge without any check. Update caching information for face' incident vertices.

Parameters
faceThe face for which incident edges are augmented.
prev_edgeThe edge after which the edge is added.
edgeThe edge to add.
See also
add_edge(face, edge)

Definition at line 4438 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_edge_to_vertex()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_edge_to_vertex ( vertex_descriptor  vertex,
edge_descriptor  edge 
)
inlinestaticprivate

An incidence relation is created between the vertex and the edge by adding the edge in the incident edges container of the vertex. Update caching information for vertices.

Parameters
vertexThe involving vertex
edgeThe involving edge
See also
link_vertex_and_edge(edge, vertex, position)
add_edge(vertex, edge)

Definition at line 4531 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_face() [1/7]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_face ( edge_descriptor  edge,
face_descriptor  face 
)
inlinestatic
  Add the face to the edge'incident faces if edge and face

were not incident. Update caching information for face' incident vertices. Usage precondition: edge != null_edge() and face != null_face()

Parameters
edgeThe edge for which incident faces are augmented.
faceThe face to add.
See also
add_face_to_edge(edge, face)

Definition at line 3392 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_face() [2/7]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_face ( face_descriptor  face,
ptr_mesh  mesh 
)
inlinestatic
  Mesh face inserter
Parameters
faceThe isolated face to insert
meshThe involving mesh
Returns
The face newly added to the involved mesh

Definition at line 2914 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_face() [3/7]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_face ( face_descriptor  face,
ref_mesh  mesh 
)
inlinestatic
  Mesh face inserter
Parameters
faceThe isolated face to insert
meshThe involving mesh
Returns
The face newly added to the involved mesh

Definition at line 2934 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_face() [4/7]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_face ( face_descriptor  face,
smart_ptr_mesh  mesh 
)
inlinestatic
  Mesh face inserter
Parameters
faceThe isolated face to insert
meshThe involving mesh
Returns
The face newly added to the involved mesh

Definition at line 2924 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_face() [5/7]

static face_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::add_face ( ptr_mesh  mesh)
inlinestatic
  Mesh face inserter
Parameters
meshThe involving mesh
Returns
The face newly added to the involved mesh

Definition at line 2887 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_face() [6/7]

static face_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::add_face ( ref_mesh  mesh)
inlinestatic
  Mesh face inserter
Parameters
meshThe involving mesh
Returns
The face newly added to the involved mesh

Definition at line 2907 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_face() [7/7]

static face_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::add_face ( smart_ptr_mesh  mesh)
inlinestatic
  Mesh face inserter
Parameters
meshThe involving mesh
Returns
The face newly added to the involved mesh

Definition at line 2898 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_face_to_edge()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_face_to_edge ( edge_descriptor  edge,
face_descriptor  face 
)
inlinestaticprivate

Add the face to the edge'incident faces without any check. Update caching information for edge' incident vertices.

Parameters
edgeThe edge for which incident faces are augmented.
faceThe face to add.
See also
add_face(edge, face)

Definition at line 4637 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_vertex() [1/7]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_vertex ( edge_descriptor  edge,
vertex_descriptor  vertex,
enum vertex_pos  position 
)
inlinestatic

Add the vertex to the edge'incident vertices (at specified position) if edge and vertex were not incident. Update caching information for vertex. Usage precondition: vertex != null_vertex() and edge != null_edge()

Parameters
edgeThe involving edge
vertexThe involving vertex
positionThe position of the vertex in the edge (FIRST or SECOND)
See also
add_vertex_to_edge(edge, vertex, position)

Definition at line 3294 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_vertex() [2/7]

static vertex_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::add_vertex ( ptr_mesh  mesh)
inlinestatic
  Mesh vertex inserter
Parameters
meshThe involving mesh
Returns
The vertex newly added to the involved mesh

Definition at line 2709 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_vertex() [3/7]

static vertex_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::add_vertex ( ref_mesh  mesh)
inlinestatic
  Mesh vertex inserter
Parameters
meshThe involving mesh
Returns
The vertex newly added to the involved mesh

Definition at line 2729 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_vertex() [4/7]

static vertex_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::add_vertex ( smart_ptr_mesh  mesh)
inlinestatic
  Mesh vertex inserter
Parameters
meshThe involving mesh
Returns
The vertex newly added to the involved mesh

Definition at line 2720 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_vertex() [5/7]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_vertex ( vertex_descriptor  vertex,
ptr_mesh  mesh 
)
inlinestatic
  Mesh vertex inserter
Parameters
vertexThe isolated vertex to insert
meshThe involving mesh
Returns
void

Definition at line 2740 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_vertex() [6/7]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_vertex ( vertex_descriptor  vertex,
ref_mesh  mesh 
)
inlinestatic
  Mesh vertex inserter
Parameters
vertexThe isolated vertex to insert
meshThe involving mesh
Returns
void

Definition at line 2762 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_vertex() [7/7]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_vertex ( vertex_descriptor  vertex,
smart_ptr_mesh  mesh 
)
inlinestatic
  Mesh vertex inserter
Parameters
vertexThe isolated vertex to insert
meshThe involving mesh
Returns
void

Definition at line 2751 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ add_vertex_to_edge()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::add_vertex_to_edge ( edge_descriptor  edge,
vertex_descriptor  vertex,
enum vertex_pos  position 
)
inlinestaticprivate

An incidence relation is created between the vertex and the edge by adding the vertex at the specified position in the edge. Update caching information for vertex.

Parameters
edgeThe involving edge
vertexThe involving vertex
positionThe position of the vertex in the edge (FIRST or SECOND)
Warning
Be careful, this function will replace the former vertex at the position position in the edge. Thus you HAVE to unlink these two element before, otherwise topological incoherences will be introduce.
See also
link_vertex_and_edge(edge, vertex, position)
add_vertex(edge, vertex, position)

Definition at line 4494 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ adjacent_edges()

static std::vector< edge_descriptor > FEVV::DataStructures::AIF::AIFTopologyHelpers::adjacent_edges ( edge_descriptor  edge)
inlinestatic
  Adjacent relations with edges
Parameters
edgeThe involving edge
Returns
An iterator range on the adjacent edges (AIFEdge pointer) of the involved edge.

Definition at line 1203 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ adjacent_faces()

static std::vector< face_descriptor > FEVV::DataStructures::AIF::AIFTopologyHelpers::adjacent_faces ( face_descriptor  face,
bool  one_neighborhood_sharing_edge = true 
)
inlinestatic
  Adjacent relations with faces
Parameters
faceThe involving face
Returns
An iterator range on the adjacent faces (AIFFace pointer) of the involved face. When one_neighborhood_sharing_edge is true, the adjacent faces are those sharing an edge with involved face. Else the adjacent faces are those sharing a vertex with involved face.

Definition at line 1871 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ adjacent_vertices()

static std::vector< vertex_descriptor > FEVV::DataStructures::AIF::AIFTopologyHelpers::adjacent_vertices ( vertex_descriptor  vertex)
inlinestatic
  Adjacent relations with vertices
Parameters
vertexThe involving vertex
Returns
An iterator range on the adjacent vertices (AIFVertex pointer) of the involved vertex.

Definition at line 377 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ are_adjacent() [1/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::are_adjacent ( edge_descriptor  edge1,
edge_descriptor  edge2 
)
inlinestatic
  Function determining if the arguments share an adjacent

relation (if they share a vertex) Usage precondition: edge1 and edge2 must not be similar/parallel (sharing the 2 same vertices).

Parameters
edge1The first involving edge
edge2The second involving edge
Returns
true if the arguments share an adjacent relation, false otherwise (an edge is not adjacent to itself).

Definition at line 1174 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ are_adjacent() [2/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::are_adjacent ( face_descriptor  face1,
face_descriptor  face2 
)
inlinestatic

Function determining if the arguments share an adjacent relation (if they share an edge)

Parameters
face1The first involving face
face2The first involving face
Returns
true if the arguments share an adjacent relation, false otherwise (a face is not adjacent to itself).

Definition at line 1815 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ are_adjacent() [3/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::are_adjacent ( vertex_descriptor  vertex1,
vertex_descriptor  vertex2 
)
inlinestatic

Function determining if the arguments share an adjacent relation (if they share an edge)

Parameters
vertex1The first involving vertex
vertex2The second involving vertex
Returns
true if the arguments share an adjacency relation, false otherwise (a vertex is not adjacent to itself).

Definition at line 358 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ are_adjacent_edges_one_ring_connected()

template<typename T >
static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::are_adjacent_edges_one_ring_connected ( edge_descriptor  e,
const T &  container_of_edge_one_ring 
)
inlinestatic

return true if all adjacent edges to e that are also elements of container_of_edge_one_ring are one ring connected (using function is_e_one_ring_connected).

Definition at line 3595 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ are_incident() [1/7]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::are_incident ( edge_descriptor  edge,
face_descriptor  face 
)
inlinestatic

Function determining if the argument edge share an incidence relation with the argument face.

Parameters
edgeThe involving edge
faceThe involving face
Returns
true if the arguments share an incidence relation, false otherwise.

Definition at line 1151 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ are_incident() [2/7]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::are_incident ( edge_descriptor  edge,
vertex_descriptor  vertex 
)
inlinestatic

Function determining if the argument edge shares an incidence relation with the argument vertex.

Parameters
edgeThe involving edge
vertexThe involving vertex
Returns
true if the arguments share an incidence relation, false otherwise.

Definition at line 1134 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ are_incident() [3/7]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::are_incident ( face_descriptor  face,
edge_descriptor  edge 
)
inlinestatic

Function determining if the argument face shares an incidence relation with the argument edge.

Parameters
faceThe involving face
edgeThe involving edge
Returns
true if the arguments share an incidence relation, false otherwise.
Warning
are_incident(face, edge) does not give necessary the same result as are_incident(edge, face) when topological modifications are in progress.

Definition at line 1792 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ are_incident() [4/7]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::are_incident ( face_descriptor  face,
vertex_descriptor  vertex 
)
inlinestatic

Function determining if the argument face shares an incidence relation with the argument vertex.

Parameters
faceThe involving face
vertexThe involving vertex
Returns
true if the arguments share an incidence relation, false otherwise.

Definition at line 1721 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ are_incident() [5/7]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::are_incident ( vertex_descriptor  vertex,
edge_descriptor  edge 
)
inlinestatic

Function determining if the arguments share an incidence relation.

Parameters
vertexThe involving vertex
edgeThe involving edge
Returns
true if the arguments share an incidence relation, false otherwise.
Warning
are_incident(edge, vertex) will not give consistent results when topological modifications are in progress

Definition at line 303 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ are_incident() [6/7]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::are_incident ( vertex_descriptor  vertex,
face_descriptor  face 
)
inlinestatic

Function determining if the argument vertex shares an incidence relation with the argument face.

Parameters
vertexThe involving vertex
faceThe involving face
Returns
true if the arguments share an incidence relation, false otherwise.

Definition at line 1755 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ are_incident() [7/7]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::are_incident ( vertex_descriptor  vertex,
vertex_descriptor  u,
vertex_descriptor  v 
)
inlinestatic

Function determining if the arguments share an incidence relation.

Parameters
vertexThe involving vertex
uone vertex of the involving edge
vthe other vertex of the involving edge
Returns
true if the arguments share an incidence relation, false otherwise.

Definition at line 327 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ are_incident_to_vertex_and_edge_connected()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::are_incident_to_vertex_and_edge_connected ( vertex_descriptor  vertex,
face_descriptor  face1,
face_descriptor  face2 
)
inlinestatic
  Are the two given faces incident to v reachable without
  meeting neither a border edge nor a complex edge?
Parameters
vertexThe involving vertex
face1The first involving face
face2The second involving face
Returns
True when face1 and face2 are incident to vertex and if we can reach face2 from face1 (and vice-versa) by turning around vertex and without meeting neither a border edge nor a complexe edge. Else return false.

Definition at line 875 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ are_locally_edge_connected()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::are_locally_edge_connected ( face_descriptor  face1,
face_descriptor  face2 
)
inlinestatic
  Function determining if two faces are part
  of the same piece of surface.
Parameters
face1The involving face
face2The second involving face
Returns
True when the 2 faces share at least one vertex and when there is a path of edge-connected faces
between f1 and f2

Definition at line 1917 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ border_edges() [1/3]

static boost::iterator_range< edge_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::border_edges ( ptr_cmesh  mesh)
inlinestatic
  Mesh border edges getter
Parameters
meshThe involving mesh
Returns
An iterator range on the border edges (AIFEdge pointer) of the involved mesh.

Definition at line 2562 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ border_edges() [2/3]

static boost::iterator_range< edge_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::border_edges ( ref_cmesh  mesh)
inlinestatic
  Mesh border edges getter
Parameters
meshThe involving mesh
Returns
An iterator range on the border edges (AIFEdge pointer) of the involved mesh.

Definition at line 2594 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ border_edges() [3/3]

static boost::iterator_range< edge_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::border_edges ( smart_ptr_cmesh  mesh)
inlinestatic
  Mesh border edges getter
Parameters
meshThe involving mesh
Returns
An iterator range on the border edges (AIFEdge pointer) of the involved mesh.

Definition at line 2583 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ check_mesh_validity() [1/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::check_mesh_validity ( ptr_cmesh  mesh)
inlinestatic
  Check wether or not the mesh contains
  - degenerated vertex/degenerated edge/degenerated face
  - incidence relationship: no null element
Parameters
meshThe involving mesh
Returns
True if the mesh is valid (no degenerated elements) , false otherwise.

Definition at line 2641 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ check_mesh_validity() [2/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::check_mesh_validity ( ref_cmesh  mesh)
inlinestatic
  Check wether or not the mesh contains
  - degenerated vertex/degenerated edge/degenerated face
  - incidence relationship: no null element
Parameters
meshThe involving mesh
Returns
True if the mesh is valid (no degenerated elements) , false otherwise.

Definition at line 2681 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ check_mesh_validity() [3/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::check_mesh_validity ( smart_ptr_cmesh  mesh)
inlinestatic
  Check wether or not the mesh contains
  - degenerated vertex/degenerated edge/degenerated face
  - incidence relationship: no null element
Parameters
meshThe involving mesh
Returns
True if the mesh is valid (no degenerated elements) , false otherwise.

Definition at line 2669 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ clear_vertex()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::clear_vertex ( vertex_descriptor  vertex)
inlinestatic

Function to clear vertex'edge incidency. Equivalent to the unlink_all_edges(vertex) function. The only interest of this function is to have a function following CGAL naming conventions.

Parameters
vertexThe involving vertex

Definition at line 2946 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ common_edge() [1/4]

static edge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::common_edge ( face_descriptor  face1,
face_descriptor  face2 
)
inlinestatic
  First common edge between two faces
Parameters
face1The first involving face
face2The second involving face
Returns
The first common edge between face1 and face2.

Definition at line 2095 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ common_edge() [2/4]

static edge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::common_edge ( vertex_descriptor  vertex,
face_descriptor  face 
)
inlinestatic
  First common edge between a vertex and a face
Parameters
vertexThe involving vertex
faceThe involving face
Returns
The first common edge between vertex and face.

Definition at line 823 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ common_edge() [3/4]

static edge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::common_edge ( vertex_descriptor  vertex,
face_descriptor  face,
edge_descriptor  not_that_edge 
)
inlinestatic
  First common edge between a vertex and a face except

not_that_edge

Parameters
vertexThe involving vertex
faceThe involving face
not_that_edgeThe involving edge
Returns
The first common edge between vertex and face except not_that_edge.

Definition at line 847 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ common_edge() [4/4]

static edge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::common_edge ( vertex_descriptor  vertex1,
vertex_descriptor  vertex2 
)
inlinestatic
  First common edge between two vertices
Parameters
vertex1The first involving vertex
vertex2The second involving vertex
Returns
The first common edge between vertex1 and vertex2.

Definition at line 458 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ common_edges() [1/2]

static std::vector< edge_descriptor > FEVV::DataStructures::AIF::AIFTopologyHelpers::common_edges ( face_descriptor  face1,
face_descriptor  face2 
)
inlinestatic
  Common edges between two faces
Parameters
face1The first involving face
face2The second involving face
Returns
An std::vector of the common edges between face1 and face1 (there can be 0, 1, or min(degree(face1),degree(face2)) common edges).

Definition at line 2121 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ common_edges() [2/2]

static std::vector< edge_descriptor > FEVV::DataStructures::AIF::AIFTopologyHelpers::common_edges ( vertex_descriptor  vertex1,
vertex_descriptor  vertex2 
)
inlinestatic
  Common edges between two vertices
Parameters
vertex1The first involving vertex
vertex2The second involving vertex
Returns
An std::vector of the common edges between vertex1 and vertex2 (there can be 0, 1, or n common edges).

Definition at line 482 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ common_face()

static face_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::common_face ( edge_descriptor  edge1,
edge_descriptor  edge2 
)
inlinestatic
  First common face between two edges
Parameters
edge1The first involving edge
edge2The second involving edge
Returns
The first common face between edge1 and edge2.

Definition at line 2074 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ common_vertex()

static vertex_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::common_vertex ( edge_descriptor  edge1,
edge_descriptor  edge2 
)
inlinestatic

Function determining the common vertex between 2 incident edges. Usage precondition: edge1 and edge2 must not be similar/parallel (sharing the 2 same vertices).

Parameters
edge1The first involved edge
edge2The second involved edge
Returns
A vertex descriptor, this descriptor being a null vertex if the 2 edges do not share any vertex.

Definition at line 1055 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ contains_2_adjacent_faces_with_non_consistent_orientation() [1/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::contains_2_adjacent_faces_with_non_consistent_orientation ( ptr_cmesh  mesh)
inlinestatic

Function determining if the argument mesh has 2 adjacent faces with different orientations.

Parameters
meshThe involving mesh
Returns
true if the argument mesh has at least 2 adjacent faces with different orientations, false otherwise.

Definition at line 2346 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ contains_2_adjacent_faces_with_non_consistent_orientation() [2/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::contains_2_adjacent_faces_with_non_consistent_orientation ( ref_cmesh  mesh)
inlinestatic

Function determining if the argument mesh has 2 adjacent faces with different orientations.

Parameters
meshThe involving mesh
Returns
true if the argument mesh has at least 2 adjacent faces with different orientations, false otherwise.

Definition at line 2383 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ contains_2_adjacent_faces_with_non_consistent_orientation() [3/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::contains_2_adjacent_faces_with_non_consistent_orientation ( smart_ptr_cmesh  mesh)
inlinestatic

Function determining if the argument mesh has 2 adjacent faces with different orientations.

Parameters
meshThe involving mesh
Returns
true if the argument mesh has at least 2 adjacent faces with different orientations, false otherwise.

Definition at line 2368 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ contains_a_cut_vertex() [1/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::contains_a_cut_vertex ( ptr_cmesh  mesh)
inlinestatic

Function determining if the argument mesh contains at least one cut vertex

Parameters
meshThe involving mesh
Returns
true if the argument mesh contains at least one cut vertex, false otherwise.

Definition at line 2396 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ contains_a_cut_vertex() [2/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::contains_a_cut_vertex ( ref_cmesh  mesh)
inlinestatic

Function determining if the argument mesh contains at least one cut vertex

Parameters
meshThe involving mesh
Returns
true if the argument mesh contains at least one cut vertex, false otherwise.

Definition at line 2429 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ contains_a_cut_vertex() [3/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::contains_a_cut_vertex ( smart_ptr_cmesh  mesh)
inlinestatic

Function determining if the argument mesh contains at least one cut vertex

Parameters
meshThe involving mesh
Returns
true if the argument mesh contains at least one cut vertex, false otherwise.

Definition at line 2416 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ contains_a_degenerated_face()

template<typename InputIt >
static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::contains_a_degenerated_face ( InputIt  first,
InputIt  last 
)
inlinestatic
  Generic function to know if an iterator range contains a
  degenerated face.
Parameters
firstThe iterator pointing on the range beginning.
lastThe iterator pointing on the range end.
Returns
True if the iterator range contains a degenerated face, false otherwise.

Definition at line 2695 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ degree() [1/3]

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::degree ( edge_descriptor  edge)
inlinestatic
  Edge degree
Parameters
edgeThe involving edge
Returns
The number of incident faces of the argument edge.

Definition at line 942 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ degree() [2/3]

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::degree ( face_descriptor  face)
inlinestatic
  Face degree
Parameters
faceThe involving face
Returns
The number of incident edges of the argument face.

Definition at line 1501 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ degree() [3/3]

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::degree ( vertex_descriptor  vertex)
inlinestatic
  Vertex degree
Parameters
vertexThe involving vertex
Returns
The number of incident edges of the argument vertex.

Definition at line 148 of file AIFTopologyHelpers.h.

Here is the caller graph for this function:

◆ edge()

static edge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::edge ( halfedge_descriptor  h,
const AIFMesh  
)
inlinestatic

Return an edge corresponding to h halfedge if such an halfedge exist or returns a null edge.

Parameters
hThe halfedge for which the corresponding edge is requested
meshThe involving mesh
Returns
The edge or a null edge.

Definition at line 5998 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ edges() [1/3]

static boost::iterator_range< edge_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::edges ( ptr_cmesh  mesh)
inlinestatic
  Mesh edges getter
Parameters
meshThe involving mesh
Returns
An iterator range on the edges (AIFEdge pointer) of the involved mesh.

Definition at line 2261 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ edges() [2/3]

static boost::iterator_range< edge_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::edges ( ref_cmesh  mesh)
inlinestatic
  Mesh edges getter
Parameters
meshThe involving mesh
Returns
An iterator range on the edges (AIFEdge pointer) of the involved mesh.

Definition at line 2283 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ edges() [3/3]

static boost::iterator_range< edge_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::edges ( smart_ptr_cmesh  mesh)
inlinestatic
  Mesh edges getter
Parameters
meshThe involving mesh
Returns
An iterator range on the edges (AIFEdge pointer) of the involved mesh.

Definition at line 2272 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ face_has_only_incident_edges_with_degree_1()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::face_has_only_incident_edges_with_degree_1 ( face_descriptor  face)
inlinestatic
  Function determining if the argument face has only

incident edges with degree equals to 1

Parameters
faceThe involving face
Returns
true if the argument face has only incident edges with degree equals to 1.

Definition at line 1606 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ face_has_only_that_edge_with_degree_greater_than_1()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::face_has_only_that_edge_with_degree_greater_than_1 ( face_descriptor  face,
edge_descriptor  edge 
)
inlinestatic
  Function determining if the argument face has adjacent

faces only along one incident edge

Parameters
faceThe involving face
edgeThe involving edge
Returns
true if the argument face has only the edge edge with degree greater than 1.

Definition at line 1627 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ faces() [1/3]

static boost::iterator_range< face_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::faces ( ptr_cmesh  mesh)
inlinestatic
  Mesh faces getter
Parameters
meshThe involving mesh
Returns
An iterator range on the faces (AIFFace pointer) of the involved mesh.

Definition at line 2606 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ faces() [2/3]

static boost::iterator_range< face_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::faces ( ref_cmesh  mesh)
inlinestatic
  Mesh faces getter
Parameters
meshThe involving mesh
Returns
An iterator range on the faces (AIFFace pointer) of the involved mesh.

Definition at line 2628 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ faces() [3/3]

static boost::iterator_range< face_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::faces ( smart_ptr_cmesh  mesh)
inlinestatic
  Mesh faces getter
Parameters
meshThe involving mesh
Returns
An iterator range on the faces (AIFFace pointer) of the involved mesh.

Definition at line 2617 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ get_edge_of_face_after_edge()

static edge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::get_edge_of_face_after_edge ( face_descriptor  face,
edge_descriptor  prev_edge 
)
inlinestatic
  Get the edge of the face'incident edges after the

prev_edge

Parameters
faceThe face for which incident edges are retrieved.
prev_edgeThe edge located before the returned edge.

Definition at line 4366 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_edge_of_face_before_edge()

static edge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::get_edge_of_face_before_edge ( face_descriptor  face,
edge_descriptor  next_edge 
)
inlinestatic
  Get the edge of the face'incident edges before the

next_edge

Parameters
faceThe face for which incident edges are retrieved.
next_edgeThe edge located after the returned edge.

Definition at line 4399 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_first_edge_whose_adjacent_edges_are_one_ring_connected()

template<typename T >
static edge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::get_first_edge_whose_adjacent_edges_are_one_ring_connected ( const T &  container_of_edge_one_ring)
inlinestatic

return the first edge of container_of_edge_one_ring which satisfies the are_adjacent_edges_one_ring_connected(e, container_of_edge_one_ring) predicate.

Definition at line 3617 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_incident_dangling_edge()

static edge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::get_incident_dangling_edge ( vertex_descriptor  vertex)
inlinestatic
  Function returning the first incident dangling edge
Parameters
vertexThe involving vertex
Returns
the first incident dangling edge if any, else return null_edge descriptor.

Definition at line 1109 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_incident_hole_border_edges()

static std::vector< edge_descriptor > FEVV::DataStructures::AIF::AIFTopologyHelpers::get_incident_hole_border_edges ( vertex_descriptor  vertex)
inlinestatic
 Get incident border edges within a mesh hole.
Parameters
vertexThe involving vertex
Returns
An std::vector of incident hole border edges.
Warning
vertex is assumed to be on the hole border, and no check is done.

Definition at line 755 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_incident_hole_border_edges_except_one_edge()

static std::vector< edge_descriptor > FEVV::DataStructures::AIF::AIFTopologyHelpers::get_incident_hole_border_edges_except_one_edge ( vertex_descriptor  vertex,
edge_descriptor  edge_to_remove 
)
inlinestatic
  Return a vector of incident edges to vertex except

edge_to_remove

Parameters
vertexThe involving vertex
edge_to_removeThe involving edge to remove from incident edges
Returns
A std::vector of incident edges to vertex except edge_to_remove.
See also
get_incident_hole_border_edges

Definition at line 805 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ get_ordered_one_ring_edges()

static edge_container_in_vertex FEVV::DataStructures::AIF::AIFTopologyHelpers::get_ordered_one_ring_edges ( vertex_descriptor  v)
inlinestatic

Return the full one-ring of a vertex, not restricted to adjacent edges. Always ordered in clockwise order when faces are oriented into counter-clockwise.

Definition at line 3644 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_ordered_one_ring_of_adjacent_vertices()

static vertex_container_in_vertex FEVV::DataStructures::AIF::AIFTopologyHelpers::get_ordered_one_ring_of_adjacent_vertices ( vertex_descriptor  v)
inlinestatic

Return the one-ring of adjacent vertices. Always ordered in clockwise order when faces are oriented into counter-clockwise.

Definition at line 4305 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_ordered_one_ring_vertices()

static vertex_container_in_vertex FEVV::DataStructures::AIF::AIFTopologyHelpers::get_ordered_one_ring_vertices ( vertex_descriptor  v)
inlinestatic

Return the full one-ring of a vertex, not restricted to adjacent vertices. Always ordered in clockwise order when faces are oriented into counter-clockwise.

Definition at line 4035 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_unordered_one_ring_edges()

static std::set< edge_descriptor > FEVV::DataStructures::AIF::AIFTopologyHelpers::get_unordered_one_ring_edges ( vertex_descriptor  v)
inlinestatic

Return the full one-ring of a vertex, not restricted to edges having their 2 vertices adjacent to v.

Definition at line 3481 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ halfedge() [1/4]

static halfedge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::halfedge ( edge_descriptor  edge,
const AIFMesh mesh 
)
inlinestatic

Return an halfedge corresponding to e edge if such an halfedge exist or returns a null halfedge.

Parameters
edgeThe edge for which one halfedge is requested
meshThe involving mesh
Returns
The halfedge or a null halfedge.

Definition at line 5974 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ halfedge() [2/4]

static halfedge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::halfedge ( face_descriptor  face,
const AIFMesh  
)
inlinestatic
  Return a halfedge incident to face.
Parameters
faceThe face the halfedge must be incident to
meshThe involving mesh
Returns
The halfedge incident to the face.

Definition at line 5769 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ halfedge() [3/4]

static halfedge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::halfedge ( vertex_descriptor  src,
vertex_descriptor  target,
const AIFMesh  
)
inlinestatic

Return an halfedge src-->target if such an halfedge exist or returns a null halfedge.

Parameters
srcThe source vertex of the * halfedge
targetThe target vertex of the halfedge (the halfedge is pointing towards the target vertex)
meshThe involving mesh
Returns
The halfedge or a null halfedge.

Definition at line 5907 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ halfedge() [4/4]

static halfedge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::halfedge ( vertex_descriptor  v,
const AIFMesh  
)
inlinestatic
  Return a halfedge incident to vertex.
Parameters
vThe vertex the halfedge must be incident to
meshThe involving mesh
Returns
The halfedge incident to the face.

Definition at line 5815 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ have_consistent_orientation()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::have_consistent_orientation ( face_descriptor  face1,
face_descriptor  face2 
)
inlinestatic
  Function determining if two incident faces are oriented
  consistently.
Parameters
face1The first involving face
face2The second involving face
Returns
true if the argument faces are adjacent and consitently oriented.

Definition at line 1972 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ incident_edges() [1/2]

static boost::iterator_range< incident_edge_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::incident_edges ( face_descriptor  face)
inlinestatic
  Incidence relations with edges
Parameters
faceThe involving face
Returns
An iterator range on the incident edges (AIFEdge pointer) of the involved face.

Definition at line 1854 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ incident_edges() [2/2]

static boost::iterator_range< edge_container_in_vertex::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::incident_edges ( vertex_descriptor  vertex)
inlinestatic
  Incidence relations with edges
Parameters
vertexThe involving vertex
Returns
An iterator range on the incident edges (AIFEdge pointer) of the involved vertex.

Definition at line 399 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ incident_faces() [1/2]

static boost::iterator_range< incident_face_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::incident_faces ( edge_descriptor  edge)
inlinestatic
  Incidence relations with faces
Parameters
edgeThe involving edge
Returns
An iterator range on the incident faces (AIFFace pointer) of the involved edge.

Definition at line 1237 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ incident_faces() [2/2]

static boost::iterator_range< face_container_in_vertex::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::incident_faces ( vertex_descriptor  vertex)
inlinestatic
  Incidence relations with faces
Parameters
vertexThe involving vertex
Returns
An iterator range on the incident faces (AIFFace pointer) of the involved vertex.

Definition at line 415 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ incident_faces_container()

static face_container_in_vertex FEVV::DataStructures::AIF::AIFTopologyHelpers::incident_faces_container ( vertex_descriptor  vertex)
inlinestatic
  Incidence relations with faces
Parameters
vertexThe involving vertex
Returns
A container of the incident faces (AIFFace pointer) of the involved vertex.

Definition at line 446 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ incident_vertices() [1/2]

static boost::iterator_range< vertex_container_in_edge::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::incident_vertices ( edge_descriptor  edge)
inlinestatic
  Incidence relations with vertices
Parameters
edgeThe involving edge
Returns
An iterator range on the incident vertices (AIFVertex pointer) of the involved edge.

Definition at line 1189 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ incident_vertices() [2/2]

static boost::iterator_range< vertex_container_in_face::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::incident_vertices ( face_descriptor  face)
inlinestatic
  Incidence relations with vertices
Parameters
faceThe involving face
Returns
An iterator range on the incident vertices (AIFVertex pointer) of the involved face.

Definition at line 1839 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ is_2_manifold_edge()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_2_manifold_edge ( edge_descriptor  edge)
inlinestatic

Function determining if the argument edge is a 2-manifold edge considering only the topology (not the geometry)

Parameters
edgeThe involving edge
Returns
true if the argument edge is a locally 2-manifold edge, false otherwise.

Definition at line 1441 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_2_manifold_face()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_2_manifold_face ( face_descriptor  face)
inlinestatic

Function determining if the argument face is a 2-manifold face considering only the topology (not the geometry)

Parameters
faceThe involving face
Returns
true if the argument face is a locally 2-manifold face, false otherwise.

Definition at line 1561 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ is_2_manifold_mesh() [1/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_2_manifold_mesh ( ptr_cmesh  mesh)
inlinestatic

Function determining if the argument mesh is a 2-manifold considering only the topology (not the geometry).

Parameters
meshThe involving mesh
Returns
true if the argument mesh is a 2-manifold mesh, false otherwise.

Definition at line 2297 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_2_manifold_mesh() [2/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_2_manifold_mesh ( ref_cmesh  mesh)
inlinestatic

Function determining if the argument mesh is a 2-manifold considering only the topology (not the geometry).

Parameters
meshThe involving mesh
Returns
true if the argument mesh is a 2-manifold mesh, false otherwise.

Definition at line 2331 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ is_2_manifold_mesh() [3/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_2_manifold_mesh ( smart_ptr_cmesh  mesh)
inlinestatic

Function determining if the argument mesh is a 2-manifold considering only the topology (not the geometry).

Parameters
meshThe involving mesh
Returns
true if the argument mesh is a 2-manifold mesh, false otherwise.

Definition at line 2317 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ is_2_manifold_vertex()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_2_manifold_vertex ( vertex_descriptor  vertex)
inlinestatic

Function determining if the argument vertex is a 2-manifold vertex considering only the topology (not the geometry)

Parameters
vertexThe involving vertex
Returns
true if the argument vertex is a locally 2-manifold vertex, false otherwise.

Definition at line 237 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_complex_edge()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_complex_edge ( edge_descriptor  edge)
inlinestatic

Function determining if the argument edge is a complex edge (singular or non-regular).

Parameters
edgeThe involving edge
Returns
true if the argument edge has strictly more than two incident face, false otherwise.

Definition at line 1022 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_cut_vertex()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_cut_vertex ( vertex_descriptor  vertex)
inlinestatic

Function determining if the argument vertex is a cut vertex

Parameters
vertexThe involving vertex
Returns
true if the argument vertex is a cut vertex, false otherwise.
Note
Sometimes a vertex can have disconnected adjacent faces that are disconnected because their edge' end-vertex differ (T-junction). For general processing, it thus can be useful to process T-junction vertices before processing cut vertices.

Definition at line 173 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_dangling_edge()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_dangling_edge ( edge_descriptor  edge)
inlinestatic

Function determining if the argument edge is a dangling edge

Parameters
edgeThe involving edge
Returns
true if the argument edge does not have any incident face and is not isolated, false otherwise.

Definition at line 1009 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_dangling_face()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_dangling_face ( face_descriptor  face)
inlinestatic
  Function determining if the argument face is dangling

(not isolated and without any adjacent face sharing and edge)

Parameters
faceThe involving face
Returns
true if the argument face is dangling, false otherwise.

Definition at line 1582 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ is_degenerated_edge()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_degenerated_edge ( edge_descriptor  edge)
inlinestatic
  Function determining if the argument edge is degenerated
Parameters
edgeThe involving edge
Returns
Noting v1 and v2 the two incident vertices of the argument edge, the function return true if edge is null or v1==null_vertex or v2==null_vertex or v1==v2, and false otherwise.
Warning
v1==v2 may occur during a topological modification in progress

Definition at line 1034 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_degenerated_face()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_degenerated_face ( face_descriptor  face)
inlinestatic
  Function determining if the argument face is degenerated
Parameters
faceThe involving face
Returns
true if the argument face is null, or its degree is strictly less than 3, or if it has a degenerated edge among its incident edges, false otherwise.

Definition at line 1530 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_degenerated_vertex()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_degenerated_vertex ( vertex_descriptor  vertex)
inlinestatic

Function determining if the argument vertex is degenerated

Parameters
vertexThe involving vertex
Returns
return true if vertex==null_vertex or if vertex has a degenerated incident edge, and false otherwise.

Definition at line 127 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_e_one_ring_connected()

template<typename T >
static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_e_one_ring_connected ( edge_descriptor  e,
const T &  container_of_edge_one_ring,
bool  allow_multiple_incident_edges = false,
bool  ensure_e_belongs_to_container = true 
)
inlinestatic

return true when edge e is an element of container_of_edge_one_ring whose two vertices are incident to only one (resp. possible many) other edge of container_of_edge_one_ring if allow_multiple_incident_edges is false (resp. true).

Definition at line 3547 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_incident_to_consistently_oriented_faces()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_incident_to_consistently_oriented_faces ( edge_descriptor  edge)
inlinestatic
  Function determining if a given edge has incident faces
 with consistent orientation
Parameters
edgeThe involving edge
Returns
true if the argument edge has incident faces with consistent orientation, else return false.

Definition at line 2025 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_incident_to_dangling_edge()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_incident_to_dangling_edge ( vertex_descriptor  vertex)
inlinestatic
  Function determining if the argument vertex has at least

one incident dangling edge

Parameters
vertexThe involving vertex
Returns
true if the argument vertex has at least one incident dangling edge, false otherwise.

Definition at line 1098 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ is_incident_to_dangling_or_complex_edge()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_incident_to_dangling_or_complex_edge ( vertex_descriptor  vertex)
inlinestatic

Function determining if the argument vertex is has either a dangling or complex incident edge.

Parameters
vertexThe involving vertex
Returns
true if the argument vertex has either a dangling or complex incident edge, false otherwise.

Definition at line 199 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_isolated_edge()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_isolated_edge ( edge_descriptor  edge)
inlinestatic
  Function determining if the argument edge is isolated
  (without any incident face + its vertices are 1 degree vertices)
Parameters
edgeThe involving edge
Returns
true if the argument edge is isolated, false otherwise.

Definition at line 995 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_isolated_face()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_isolated_face ( face_descriptor  face)
inlinestatic

Function determining if the argument face is isolated (without any adjacent face + its vertices are degree 2 vertices)

Parameters
faceThe involving face
Returns
true if the argument face is isolated, false otherwise.

Definition at line 1511 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_isolated_vertex()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_isolated_vertex ( vertex_descriptor  vertex)
inlinestatic

Function determining if the argument vertex is isolated (without any incident edge)

Parameters
vertexThe involving vertex
Returns
true if the argument vertex is isolated, false otherwise.

Definition at line 159 of file AIFTopologyHelpers.h.

Here is the caller graph for this function:

◆ is_not_incident_to_complex_edge()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_not_incident_to_complex_edge ( face_descriptor  face)
inlinestatic
  Function determining if face has no incident
  complex edge.
Parameters
faceThe involving face
Returns
true if the argument has no incident complex edge.

Definition at line 2057 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_one_ring_2_manifold()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_one_ring_2_manifold ( vertex_descriptor  v)
inlinestatic
  A 2 manifold vertex one ring
Parameters
vThe involving vertex
Returns
A boolean telling if the one-ring of v is 2-manifold, considering only the topology (not the geometry).

Definition at line 4334 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_regular_edge()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_regular_edge ( edge_descriptor  edge)
inlinestatic
  Function determining if the argument edge is a regular

edge.

Parameters
edgeThe involving edge
Returns
true if the argument edge has 2 incident faces for interior edges and 1 for border edges, false otherwise.

Definition at line 982 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ is_regular_vertex()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_regular_vertex ( vertex_descriptor  vertex)
inlinestatic

Function determining if the argument vertex is a regular surface vertex (border or interior). Isolated vertex is not considered here.

Parameters
vertexThe involving vertex
Returns
true if the argument vertex is a regular vertex, false otherwise.

Definition at line 220 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ is_surface_border_edge()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_surface_border_edge ( edge_descriptor  edge)
inlinestatic
  Function determining if the argument edge is on a border
Parameters
edgeThe involving edge
Returns
true if the argument edge has only one incident face, false otherwise. Note that dangling edges are NOT border edges.

Definition at line 949 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_surface_border_face()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_surface_border_face ( face_descriptor  face)
inlinestatic

Function determining if the argument face is on a border (one of its incident edges is on border)

Parameters
faceThe involving face
Returns
true if the argument face is on a border, false otherwise.

Definition at line 1652 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_surface_border_face_through_vertex()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_surface_border_face_through_vertex ( face_descriptor  face,
vertex_descriptor  v,
bool  border_edge_before_v 
)
inlinestatic

Function determining if the argument face is on a border (one of its incident edges is on border)

Parameters
faceThe involving face
vThe involving vertex
border_edge_before_vthe border edge must be before v in face
Returns
true if the argument face is on a border through v (the border edge being before v if border_edge_before_v is true), false otherwise.

Definition at line 1676 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_surface_border_vertex()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_surface_border_vertex ( vertex_descriptor  vertex)
inlinestatic

Function determining if the argument vertex is on a border (one of its incident edges is on border)

Parameters
vertexThe involving vertex
Returns
true if the argument vertex is on a border, false otherwise.

Definition at line 264 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_surface_interior_edge()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_surface_interior_edge ( edge_descriptor  edge)
inlinestatic

Function determining if the argument edge is not on a border

Parameters
edgeThe involving edge
Returns
true if the argument edge is not on a border, false otherwise.

Definition at line 971 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_surface_interior_face()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_surface_interior_face ( face_descriptor  face)
inlinestatic

Function determining if the argument face is an interior face (none of its incident edges is on border)

Parameters
faceThe involving face
Returns
true if the argument face is an interior face, false otherwise.

Definition at line 1706 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ is_surface_interior_vertex()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_surface_interior_vertex ( vertex_descriptor  vertex)
inlinestatic

Function determining if the argument vertex is not on a border (none of its incident edges is on border)

Parameters
vertexThe involving vertex
Returns
true if the argument vertex is not on a border and not an isolated vertex, false otherwise.

Definition at line 288 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_surface_regular_edge()

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::is_surface_regular_edge ( edge_descriptor  edge)
inlinestatic
  Function determining if the argument edge is a surface
  regular interior edge.
Parameters
edgeThe involving edge
Returns
true if the argument edge has 2 incident faces, false otherwise.

Definition at line 960 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ link_edge_and_face()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::link_edge_and_face ( edge_descriptor  edge,
face_descriptor  face 
)
inlinestatic

Edge and face link. An incidence relation is created between the edge and the face by adding the edge in the incident edges in the edgecontainer of the face, and adding the face in the incident faces container of the edge.

Parameters
edgeThe involving edge
faceThe involving face
Warning
Be careful, this function can link any edge and face together but the involving edge's vertices have to be coherent, otherwise topological incoherences will be introduce.

Definition at line 1305 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ link_edge_and_face_around_face_after_edge()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::link_edge_and_face_around_face_after_edge ( edge_descriptor  edge,
face_descriptor  face,
edge_descriptor  prev_edge 
)
inlinestatic

Edge and face link. An incidence relation is created between the edge and the face by adding the edge in the incident edges in the edgecontainer of the face, and adding the face in the incident faces container of the edge.

Parameters
edgeThe involving edge
faceThe involving face
prev_edgeThe existing edge around face after which the edge "edge" must be inserted
Warning
Be careful, this function can link any edge and face together but the involving edge's vertices have to be coherent, otherwise topological incoherences will be introduced.

Definition at line 1339 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ link_edges_and_face_around_face_after_edge()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::link_edges_and_face_around_face_after_edge ( std::vector< edge_descriptor > &  edges,
face_descriptor  face,
edge_descriptor  prev_edge 
)
inlinestatic

Edges and face link. An incidence relation is created between the edges and the face by sequentially adding the edges in the incident edges in the edgecontainer of the face, and adding the face in the incident faces container of the edge.

Parameters
edgeThe involving edges
faceThe involving face
prev_edgeThe existing edge around face after which the sequence of all edges "edges" must be inserted
Warning
Be careful, this function can link any edge and face together but the involving edge's vertices have to be coherent, otherwise topological incoherences will be introduced.

Definition at line 1376 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ link_vertex_and_edge()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::link_vertex_and_edge ( vertex_descriptor  vertex,
edge_descriptor  edge,
vertex_pos  position 
)
inlinestatic

Vertex and edge link. An incidence relation is created between the vertex and the edge by adding the vertex at the specified position in the edge, and adding the edge in the incident edges container of the vertex. Update caching information for vertices.

Parameters
vertexThe involving vertex
edgeThe involving edge
positionThe position of the vertex in the edge (FIRST or SECOND)
Warning
Be careful, this function will replace the former vertex at the position position in the edge. Thus you HAVE to unlink these two element before, otherwise topological incoherences will be introduce.
See also
add_vertex_to_edge(edge, vertex, position)
add_edge_to_vertex(vertex, edge)

Definition at line 515 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ normalize_border() [1/3]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::normalize_border ( ptr_mesh  mesh)
inlinestatic

Sorts edges such that the non-border edges precede the border edges.

Parameters
meshThe involving mesh

Definition at line 2516 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ normalize_border() [2/3]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::normalize_border ( ref_mesh  mesh)
inlinestatic

Sorts edges such that the non-border edges precede the border edges.

Parameters
meshThe involving mesh

Definition at line 2553 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ normalize_border() [3/3]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::normalize_border ( smart_ptr_mesh  mesh)
inlinestatic

Sorts edges such that the non-border edges precede the border edges.

Parameters
meshThe involving mesh

Definition at line 2543 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ normalized_border_is_valid() [1/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::normalized_border_is_valid ( ptr_cmesh  mesh)
inlinestatic
Returns
true if the border edges are in normalized representation, which is when enumerating all edges with the iterator : The non - border edges precede the border edges.

Definition at line 2439 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ normalized_border_is_valid() [2/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::normalized_border_is_valid ( ref_cmesh  mesh)
inlinestatic
Returns
true if the border edges are in normalized representation, which is when enumerating all edges with the iterator : The non - border edges precede the border edges.

Definition at line 2473 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ normalized_border_is_valid() [3/3]

static bool FEVV::DataStructures::AIF::AIFTopologyHelpers::normalized_border_is_valid ( smart_ptr_cmesh  mesh)
inlinestatic
Returns
true if the border edges are in normalized representation, which is when enumerating all edges with the iterator : The non - border edges precede the border edges.

Definition at line 2464 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ null_edge()

static edge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::null_edge ( )
inlinestatic

Definition at line 113 of file AIFTopologyHelpers.h.

Here is the caller graph for this function:

◆ null_face()

static face_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::null_face ( )
inlinestatic

Definition at line 114 of file AIFTopologyHelpers.h.

Here is the caller graph for this function:

◆ null_halfedge()

static halfedge_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::null_halfedge ( )
inlinestatic
  Returns a null halfedge.
Returns
The null halfedge.

Definition at line 5761 of file AIFTopologyHelpers.h.

Here is the caller graph for this function:

◆ null_vertex()

static vertex_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::null_vertex ( )
inlinestatic

Definition at line 112 of file AIFTopologyHelpers.h.

Here is the caller graph for this function:

◆ num_edges() [1/3]

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::num_edges ( ptr_cmesh  mesh)
inlinestatic
  Edges count getter
Parameters
meshThe involving mesh
Returns
The number of edges of the involved mesh.

Definition at line 2174 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ num_edges() [2/3]

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::num_edges ( ref_cmesh  mesh)
inlinestatic
  Edges count getter
Parameters
meshThe involving mesh
Returns
The number of edges of the involved mesh.

Definition at line 2192 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ num_edges() [3/3]

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::num_edges ( smart_ptr_cmesh  mesh)
inlinestatic
  Edges count getter
Parameters
meshThe involving mesh
Returns
The number of edges of the involved mesh.

Definition at line 2183 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ num_faces() [1/3]

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::num_faces ( ptr_cmesh  mesh)
inlinestatic
  Faces count getter
Parameters
meshThe involving mesh
Returns
The number of faces of the involved mesh.

Definition at line 2200 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ num_faces() [2/3]

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::num_faces ( ref_cmesh  mesh)
inlinestatic
  Faces count getter
Parameters
meshThe involving mesh
Returns
The number of faces of the involved mesh.

Definition at line 2218 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ num_faces() [3/3]

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::num_faces ( smart_ptr_cmesh  mesh)
inlinestatic
  Faces count getter
Parameters
meshThe involving mesh
Returns
The number of faces of the involved mesh.

Definition at line 2209 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ num_incident_dangling_edge()

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::num_incident_dangling_edge ( vertex_descriptor  vertex)
inlinestatic
  Function counting the number of incident dangling edges
Parameters
vertexThe involving vertex
Returns
number of incident dangling edges.

Definition at line 1079 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ num_vertices() [1/3]

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::num_vertices ( ptr_cmesh  mesh)
inlinestatic
  Vertices count getter
Parameters
meshThe involving mesh
Returns
The number of vertices of the involved mesh.

Definition at line 2148 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ num_vertices() [2/3]

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::num_vertices ( ref_cmesh  mesh)
inlinestatic
  Vertices count getter
Parameters
meshThe involving mesh
Returns
The number of vertices of the involved mesh.
Warning
const qualifier on reference has no effect for MAC OS

Definition at line 2167 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ num_vertices() [3/3]

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::num_vertices ( smart_ptr_cmesh  mesh)
inlinestatic
  Vertices count getter
Parameters
meshThe involving mesh
Returns
The number of vertices of the involved mesh.

Definition at line 2157 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ opposite_vertex()

static vertex_descriptor FEVV::DataStructures::AIF::AIFTopologyHelpers::opposite_vertex ( edge_descriptor  edge,
vertex_descriptor  vertex 
)
inlinestatic
  Opposite vertex in an edge
Parameters
edgeThe involving edge
vertexThe involving vertex
Returns
The first vertex of edge if vertex is the second, otherwise the second vertex.

Definition at line 1270 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_edge() [1/8]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_edge ( edge_descriptor  edge,
ptr_mesh  mesh 
)
inlinestatic
  Function to clear edge'face incidency and vertex

incidency if present and then to remove the involved edge from the mesh. Resulting isolated vertices are removed.

Parameters
edgeThe involving edge.
meshThe involving mesh.

Definition at line 3012 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_edge() [2/8]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_edge ( edge_descriptor  edge,
ref_mesh  mesh 
)
inlinestatic
  Function to clear edge'face incidency and vertex

incidency if present and then to remove the involved edge from the mesh. Resulting isolated vertices are removed.

Parameters
edgeThe involving edge.
meshThe involving mesh.

Definition at line 3054 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ remove_edge() [3/8]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_edge ( edge_descriptor  edge,
smart_ptr_mesh  mesh 
)
inlinestatic
  Function to clear edge'face incidency and vertex

incidency if present and then to remove the involved edge from the mesh. Resulting isolated vertices are removed.

Parameters
edgeThe involving edge.
meshThe involving mesh.

Definition at line 3043 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ remove_edge() [4/8]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_edge ( face_descriptor  face,
edge_descriptor  edge 
)
inlinestatic
  Remove the edge to the face'incident edges if face and

edge were incident. Update caching information for face' incident vertices. Usage precondition: face != null_face() and edge != null_edge()

Parameters
faceThe face for which incident edges are reduced.
edgeThe edge to remove.
See also
remove_edge_from_face(face, edge)

Definition at line 3458 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ remove_edge() [5/8]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_edge ( vertex_descriptor  v,
vertex_descriptor  u,
ptr_mesh  mesh 
)
inlinestatic
  Function to clear edge'face incidency and vertex

incidency if present and then to remove the involved edge from the mesh. Resulting isolated vertices are removed.

Parameters
vThe first vertex of the involved edge.
uThe second vertex of the involved edge.
meshThe involving mesh.

Definition at line 3081 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ remove_edge() [6/8]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_edge ( vertex_descriptor  v,
vertex_descriptor  u,
ref_mesh  mesh 
)
inlinestatic
  Function to clear edge'face incidency and vertex

incidency if present and then to remove the involved edge from the mesh. Resulting isolated vertices are removed.

Parameters
vThe first vertex of the involved edge.
uThe second vertex of the involved edge.
meshThe involving mesh.

Definition at line 3109 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ remove_edge() [7/8]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_edge ( vertex_descriptor  v,
vertex_descriptor  u,
smart_ptr_mesh  mesh 
)
inlinestatic
  Function to clear edge'face incidency and vertex

incidency if present and then to remove the involved edge from the mesh. Resulting isolated vertices are removed.

Parameters
vThe first vertex of the involved edge.
uThe second vertex of the involved edge.
meshThe involving mesh.

Definition at line 3096 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ remove_edge() [8/8]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_edge ( vertex_descriptor  vertex,
edge_descriptor  edge 
)
inlinestatic
  Remove the edge from the vertex'incident edges if vertex

and edge were incident. Update caching information for face' incident vertices. Usage precondition: vertex != null_vertex() and edge != null_edge()

Parameters
edgeThe edge for which incident faces are reduced.
faceThe face to remove.
See also
remove_edge_from_vertex(vertex, edge)

Definition at line 3370 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ remove_edge_from_face()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_edge_from_face ( face_descriptor  face,
edge_descriptor  edge 
)
inlinestaticprivate

Remove the edge to the face'incident edges without any check. Update caching information for face' incident vertices.

Parameters
faceThe face for which incident edges are reduced.
edgeThe edge to remove.
See also
remove_edge(face, edge)

Definition at line 4665 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_edge_from_vertex()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_edge_from_vertex ( vertex_descriptor  vertex,
edge_descriptor  edge 
)
inlinestaticprivate

An incidence relation is removed between the vertex and the edge by removing the edge from the vertex' incident edges. Update caching information for vertex.

Parameters
vertexThe involving vertex
edgeThe involving edge
See also
unlink_vertex_and_edge(edge, vertex)
remove_edge(vertex, edge)

Definition at line 4589 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_edges()

template<typename InputIt , typename MeshType >
static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_edges ( InputIt  first,
InputIt  last,
MeshType &  mesh 
)
inlinestatic

Generic function to remove edges given by an iterator range.

Parameters
firstThe iterator pointing on the range beginning.
lastThe iterator pointing on the range end.
meshThe involving mesh.

Definition at line 3067 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_face() [1/4]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_face ( edge_descriptor  edge,
face_descriptor  face 
)
inlinestatic
  Remove the face from the edge'incident faces if edge and

face were incident. Update caching information for face' incident vertices. Usage precondition: edge != null_edge() and face != null_face()

Parameters
edgeThe edge for which incident faces are reduced.
faceThe face to remove.
See also
remove_face_from_edge(edge, face)

Definition at line 3414 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ remove_face() [2/4]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_face ( face_descriptor  face,
ptr_mesh  mesh 
)
inlinestatic
  Function to clear face'edge incidency and vertex

incidency if present and then to remove the involved face from the mesh. Resulting isolated edges are removed.

Parameters
faceThe involving face.
meshThe involving mesh.

Definition at line 3120 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_face() [3/4]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_face ( face_descriptor  face,
ref_mesh  mesh 
)
inlinestatic
  Function to clear face'edge incidency and vertex

incidency if present and then to remove the involved face from the mesh. Resulting isolated edges are removed.

Parameters
faceThe involving face.
meshThe involving mesh.

Definition at line 3180 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ remove_face() [4/4]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_face ( face_descriptor  face,
smart_ptr_mesh  mesh 
)
inlinestatic
  Function to clear face'edge incidency and vertex

incidency if present and then to remove the involved face from the mesh. Resulting isolated edges are removed.

Parameters
faceThe involving face.
meshThe involving mesh.

Definition at line 3169 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ remove_face_from_edge()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_face_from_edge ( edge_descriptor  edge,
face_descriptor  face 
)
inlinestaticprivate

Remove the face to the edge'incident faces without any check. Update caching information for edge' incident vertices.

Parameters
edgeThe edge for which incident faces are reduced.
faceThe face to remove.
See also
remove_face(edge, face)

Definition at line 4694 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_faces()

template<typename InputIt , typename MeshType >
static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_faces ( InputIt  first,
InputIt  last,
MeshType &  mesh 
)
inlinestatic

Generic function to remove faces given by an iterator range.

Parameters
firstThe iterator pointing on the range beginning.
lastThe iterator pointing on the range end.
meshThe involving mesh.

Definition at line 3193 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_vertex() [1/4]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_vertex ( edge_descriptor  edge,
vertex_descriptor  vertex 
)
inlinestatic

Remove the vertex from the edge'incident vertices if edge and vertex were incident. Update caching information for vertex. Usage precondition: edge != null_edge() and vertex != null_vertex()

Parameters
edgeThe edge for which incident vertices are reduced.
vertexThe vertex to remove.
See also
remove_vertex_from_edge(edge, vertex)

Definition at line 3321 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ remove_vertex() [2/4]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_vertex ( vertex_descriptor  vertex,
ptr_mesh  mesh 
)
inlinestatic
  Function to clear vertex'edge incidency if present
  and then to remove the involved vertex from the mesh.
Parameters
vertexThe involving vertex
meshThe involving mesh

Definition at line 2960 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_vertex() [3/4]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_vertex ( vertex_descriptor  vertex,
ref_mesh  mesh 
)
inlinestatic
  Function to clear vertex'edge incidency if present
  and then to remove the involved vertex from the mesh.
Parameters
vertexThe involving vertex
meshThe involving mesh

Definition at line 2987 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ remove_vertex() [4/4]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_vertex ( vertex_descriptor  vertex,
smart_ptr_mesh  mesh 
)
inlinestatic
  Function to clear vertex'edge incidency if present
  and then to remove the involved vertex from the mesh.
Parameters
vertexThe involving vertex
meshThe involving mesh

Definition at line 2977 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ remove_vertex_from_edge()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_vertex_from_edge ( edge_descriptor  edge,
vertex_descriptor  vertex 
)
inlinestaticprivate

An incidence relation is removed between the vertex and the edge by removing the vertex at the specified position in the edge. Update caching information for vertex.

Parameters
edgeThe involving edge
vertexThe involving vertex
See also
unlink_vertex_and_edge(edge, vertex)
remove_vertex(edge, vertex)

Definition at line 4554 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_vertices()

template<typename InputIt , typename MeshType >
static void FEVV::DataStructures::AIF::AIFTopologyHelpers::remove_vertices ( InputIt  first,
InputIt  last,
MeshType &  mesh 
)
inlinestatic

Generic function to remove vertices given by an iterator range.

Parameters
firstThe iterator pointing on the range beginning.
lastThe iterator pointing on the range end.
meshThe involving mesh.

Definition at line 3000 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reverse_face_orientation()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::reverse_face_orientation ( face_descriptor  face)
inlinestatic
  Reverse the incident edge order of the given face.
Parameters
faceThe involved face

Definition at line 2045 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ set_face()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::set_face ( halfedge_descriptor  h,
face_descriptor  face,
AIFMesh  
)
inlinestatic
  Sets the corresponding face of h to face if h and face

were not incident. For MutableHalfedgeGraph (CGAL). Usage precondition: edge(h, mesh) != null_edge()

Parameters
hThe halfedge for which the face is to be set.
faceThe face to use.
meshThe involving mesh
Warning
For the time being the h2.set_face(face) modification is not taken into account because we work on a copy (not halfedge is stored within the AIFMesh).

Definition at line 6199 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_halfedge() [1/2]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::set_halfedge ( face_descriptor  face,
halfedge_descriptor  h,
AIFMesh  
)
inlinestatic

Sets the corresponding halfedge of face to h if face and h were not incident. For MutableHalfedgeGraph (CGAL). Usage precondition: face != null_face() and edge(h, mesh) != null_edge()

Parameters
hThe halfedge for which the face is to be set.
faceThe face to use.
meshThe involving mesh
Warning
For the time being the h2.set_face(face) modification is not taken into account because we work on a copy (not halfedge is stored within the AIFMesh).

Definition at line 6233 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ set_halfedge() [2/2]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::set_halfedge ( vertex_descriptor  target,
halfedge_descriptor  h,
AIFMesh  
)
inlinestatic

Set the incoming halfedge of vertex target to h. For MutableHalfedgeGraph (CGAL).

Parameters
targetThe vertex to use to set the incoming halfedge.
hThe halfedge.
meshThe involving mesh

Definition at line 6041 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_next()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::set_next ( halfedge_descriptor  h1,
halfedge_descriptor  h2,
AIFMesh mesh 
)
inlinestatic

Sets the successor of h1 around a face to h2, and the prededecessor of h2 to h1. For MutableHalfedgeGraph (CGAL). Usage precondition: h1 != h2 and h1 != opposite(h2, mesh)

Parameters
h1The halfedge for which the next halfedge is to be set.
h2The halfedge for which the previous halfedge is to be set.
meshThe involving mesh
Warning
For the time being the h2.set_face(face) modification is not taken into account because we work on a copy (not halfedge is stored within the AIFMesh).

Definition at line 6067 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_target()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::set_target ( halfedge_descriptor  h,
vertex_descriptor  target,
AIFMesh  
)
inlinestatic
  Set the target vertex of an halfedge. For

MutableHalfedgeGraph (CGAL).

Parameters
hThe halfedge for which the target vertex is to be set.
targetThe vertex to use to set the halfedge target vertex.
meshThe involving mesh
Warning
For the time being the new target modification is not taken into account because we work on a copy (not halfedge is stored within the AIFMesh).

Definition at line 6014 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ size_of_border_edges() [1/3]

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::size_of_border_edges ( ptr_cmesh  mesh)
inlinestatic
Returns
the number of border edges.

Definition at line 2481 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ size_of_border_edges() [2/3]

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::size_of_border_edges ( ref_cmesh  mesh)
inlinestatic
Returns
the number of border edges.

Definition at line 2505 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ size_of_border_edges() [3/3]

static size_type FEVV::DataStructures::AIF::AIFTopologyHelpers::size_of_border_edges ( smart_ptr_cmesh  mesh)
inlinestatic
Returns
the number of border edges.

Definition at line 2498 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ sort()

template<typename RandomIt , typename Compare >
static void FEVV::DataStructures::AIF::AIFTopologyHelpers::sort ( RandomIt  first,
RandomIt  last,
Compare  comp 
)
inlinestaticprivate

a sorting algorithm different from std::sort (usefull for debug)

Definition at line 4723 of file AIFTopologyHelpers.h.

Here is the caller graph for this function:

◆ sort_edges() [1/3]

template<typename ComparatorType >
static boost::iterator_range< edge_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::sort_edges ( ptr_mesh  mesh,
const ComparatorType &  cmp 
)
inlinestatic
  Sort mesh edges
Parameters
meshThe involving mesh
cmpThe involving comparator object used for the sorting
Returns
An iterator range on the edges (AIFEdge pointer) of the involve mesh.

Definition at line 1459 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ sort_edges() [2/3]

template<typename ComparatorType >
static boost::iterator_range< edge_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::sort_edges ( ref_mesh  mesh,
const ComparatorType &  cmp 
)
inlinestatic
  Sort mesh edges
Parameters
meshThe involving mesh
cmpThe involving comparator object used for the sorting
Returns
An iterator range on the edges (AIFEdge pointer) of the involve mesh.

Definition at line 1490 of file AIFTopologyHelpers.h.

◆ sort_edges() [3/3]

template<typename ComparatorType >
static boost::iterator_range< edge_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::sort_edges ( smart_ptr_mesh  mesh,
const ComparatorType &  cmp 
)
inlinestatic
  Sort mesh edges
Parameters
meshThe involving mesh
cmpThe involving comparator object used for the sorting
Returns
An iterator range on the edges (AIFEdge pointer) of the involve mesh.

Definition at line 1476 of file AIFTopologyHelpers.h.

◆ sort_incident_edges() [1/2]

template<typename ComparatorType >
static void FEVV::DataStructures::AIF::AIFTopologyHelpers::sort_incident_edges ( edge_descriptor  edge,
const ComparatorType &  cmp,
bool  do_full_incident_edge_sorting 
)
inlinestatic
  Sort incident edges of its two vertices
Parameters
edgeThe involving edge
cmpThe involving comparator object used for the sorting. Comparator can be based on natural ordering, on a spanning tree, on one-ring vertex order (if incident faces are counterclokwise oriented, then one-ring is clockwise oriented) etc.
do_full_incident_edge_sortingA boolean to do a sorting before starting at minimun edge.

Definition at line 711 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ sort_incident_edges() [2/2]

template<typename ComparatorType >
static boost::iterator_range< edge_container_in_vertex::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::sort_incident_edges ( vertex_descriptor  vertex,
const ComparatorType &  cmp,
bool  do_full_incident_edge_sorting 
)
inlinestatic
  Sort incident edges and return incidence relations with

edges

Parameters
vertexThe involving vertex
cmpThe involving comparator object used for the sorting. Comparator can be based on natural ordering, on a spanning tree, on one-ring vertex order (if incident faces are counterclokwise oriented, then one-ring is clockwise oriented) etc.
do_full_incident_edge_sortingA boolean to do a sorting before starting at minimun edge.
Returns
An iterator range on the incident edges (AIFEdge pointer) of the involve vertex.

Definition at line 686 of file AIFTopologyHelpers.h.

◆ sort_incident_edges_starting_with_edge()

template<typename ComparatorType >
static boost::iterator_range< edge_container_in_vertex::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::sort_incident_edges_starting_with_edge ( vertex_descriptor  vertex,
const ComparatorType &  cmp,
edge_descriptor  edge,
bool  do_full_incident_edge_sorting 
)
inlinestatic
  Sort incident edges starting with given incident edge

and return incidence relations with edges

Parameters
vertexThe involving vertex
cmpThe involving comparator object used for the sorting. Comparator can be based on natural ordering, on a spanning tree, on one-ring vertex order (if incident faces are counterclokwise oriented, then one-ring is clockwise oriented) etc.
edgeThe involving incident edge to vertex
do_full_incident_edge_sortingA boolean to do a sorting before starting at edge edge. Sometimes we do no want to lose the current incident ordering (e.g. clockwise). In this case, we need to specify false.
Returns
An iterator range on the incident edges (AIFEdge pointer) of the involve vertex.

Definition at line 630 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ sort_one_ring_incident_edges()

template<typename ComparatorType >
static void FEVV::DataStructures::AIF::AIFTopologyHelpers::sort_one_ring_incident_edges ( edge_descriptor  edge,
const ComparatorType &  cmp 
)
inlinestatic
  Sort incident edges of its two vertices' one-ring
Parameters
edgeThe involving edge
cmpThe involving comparator object used for the sorting. Comparator can be based on natural ordering, on a spanning tree, on one-ring vertex order (if incident faces are counterclokwise oriented, then one-ring is clockwise oriented) etc.

Definition at line 730 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ sort_vertices() [1/3]

template<typename ComparatorType >
static boost::iterator_range< vertex_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::sort_vertices ( ptr_mesh  mesh,
const ComparatorType &  cmp 
)
inlinestatic
  Sort mesh vertices
Parameters
meshThe involving mesh
cmpThe involving comparator object used for the sorting. Comparator can be based on natural ordering, on a spanning tree, etc.
Returns
An iterator range on the vertices (AIFVertex pointer) of the involving mesh.

Definition at line 576 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ sort_vertices() [2/3]

template<typename ComparatorType >
static boost::iterator_range< vertex_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::sort_vertices ( ref_mesh  mesh,
const ComparatorType &  cmp 
)
inlinestatic
  Sort mesh vertices
Parameters
meshThe involving mesh
cmpThe involving comparator object used for the sorting. Comparator can be based on natural ordering, on a spanning tree, etc.
Returns
An iterator range on the vertices (AIFVertex pointer) of the involving mesh.

Definition at line 609 of file AIFTopologyHelpers.h.

◆ sort_vertices() [3/3]

template<typename ComparatorType >
static boost::iterator_range< vertex_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::sort_vertices ( smart_ptr_mesh  mesh,
const ComparatorType &  cmp 
)
inlinestatic
  Sort mesh vertices
Parameters
meshThe involving mesh
cmpThe involving comparator object used for the sorting. Comparator can be based on natural ordering, on a spanning tree, etc.
Returns
An iterator range on the vertices (AIFVertex pointer) of the involving mesh.

Definition at line 594 of file AIFTopologyHelpers.h.

◆ swap_vertices()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::swap_vertices ( edge_descriptor  edge)
inlinestatic

Vertices swap (first become second and second become first)

Parameters
edgeThe involving edge

Definition at line 1286 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unlink_all_edges() [1/2]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::unlink_all_edges ( face_descriptor  face)
inlinestatic
  Function to unlink the face'incident edges and face.
Parameters
faceThe involving face.

Definition at line 3239 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ unlink_all_edges() [2/2]

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::unlink_all_edges ( vertex_descriptor  vertex)
inlinestatic
  Function to unlink the vertex'incident edges and vertex.
Parameters
vertexThe involving vertex.

Definition at line 3217 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unlink_all_faces()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::unlink_all_faces ( edge_descriptor  edge)
inlinestatic
  Function to unlink the edge'incident faces and edge.
Parameters
faceThe involving face.

Definition at line 3261 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unlink_all_vertices()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::unlink_all_vertices ( edge_descriptor  edge)
inlinestatic

Function to unlink the edge' 2 incident vertices and edge.

Parameters
edgeThe involving edge.

Definition at line 3204 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unlink_edge_and_face()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::unlink_edge_and_face ( edge_descriptor  edge,
face_descriptor  face 
)
inlinestatic
  Edge and face unlink.
Parameters
edgeThe involving edge
faceThe involving face

Definition at line 1398 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unlink_edges_and_face()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::unlink_edges_and_face ( std::vector< edge_descriptor edges,
face_descriptor  face 
)
inlinestatic
  Edges and face unlink.
Parameters
edgesThe involving edges
faceThe involving face

Definition at line 1423 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unlink_vertex_and_edge()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::unlink_vertex_and_edge ( vertex_descriptor  vertex,
edge_descriptor  edge 
)
inlinestatic

Vertex and edge unlink. An incidence relation is removed between the vertex and the edge by removing the vertex at the specified position in the edge, and removing the edge in the incident edges container of the vertex.

Parameters
vertexThe involving vertex
edgeThe involving edge
Warning
Be careful, this function leave the edge with only one vertex (the other become a null_vertex)
See also
remove_vertex_from_edge(edge, vertex)
remove_edge_from_vertex(vertex, edge)

Definition at line 544 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_for_single_edge()

static void FEVV::DataStructures::AIF::AIFTopologyHelpers::update_for_single_edge ( vertex_descriptor  v,
const edge_container_in_vertex orderedOneRing,
size_t  index,
vertex_container_in_vertex oneR 
)
inlinestaticprivate

method used by get_ordered_one_ring_vertices to handle isolated one-ring edges.

Definition at line 3957 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vertex_position()

static vertex_pos FEVV::DataStructures::AIF::AIFTopologyHelpers::vertex_position ( edge_descriptor  edge,
vertex_descriptor  vertex 
)
inlinestatic
  Function determining the position of a vertex in an edge
Parameters
edgeThe involving edge
vertexThe involving vertex
Returns
The position of the vertex in the involving edge (FIRST or SECOND).

Definition at line 1252 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vertices() [1/3]

static boost::iterator_range< vertex_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::vertices ( ptr_cmesh  mesh)
inlinestatic
  Mesh vertices getter
Parameters
meshThe involving mesh
Returns
An iterator range on the vertices (AIFVertex pointer) of the involved mesh.

Definition at line 2227 of file AIFTopologyHelpers.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vertices() [2/3]

static boost::iterator_range< vertex_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::vertices ( ref_cmesh  mesh)
inlinestatic
  Mesh vertices getter
Parameters
meshThe involving mesh
Returns
An iterator range on the vertices (AIFVertex pointer) of the involved mesh.

Definition at line 2249 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

◆ vertices() [3/3]

static boost::iterator_range< vertex_container::const_iterator > FEVV::DataStructures::AIF::AIFTopologyHelpers::vertices ( smart_ptr_cmesh  mesh)
inlinestatic
  Mesh vertices getter
Parameters
meshThe involving mesh
Returns
An iterator range on the vertices (AIFVertex pointer) of the involved mesh.

Definition at line 2238 of file AIFTopologyHelpers.h.

Here is the call graph for this function:

The documentation for this class was generated from the following file: