23#ifndef VCL_SPACE_COMPLEX_MESH_EDGE_UTIL_H
24#define VCL_SPACE_COMPLEX_MESH_EDGE_UTIL_H
26#include <vclib/mesh/requirements.h>
27#include <vclib/types.h>
45template<FaceMeshConcept MeshType>
49 using VertexType = MeshType::VertexType;
50 using FaceType = MeshType::FaceType;
56 MeshEdgeUtil() : v {
nullptr,
nullptr}, f(
nullptr), e(-1) {}
61 v[1] =
pf.vertexMod(
ne + 1);
65 std::swap(v[0], v[1]);
74 else if (v[0] >
pe.v[0])
77 return v[1] <
pe.v[1];
82 return v[0] ==
pe.v[0] && v[1] ==
pe.v[1];
87 return v[0] !=
pe.v[0] || v[1] !=
pe.v[1];
91template<FaceMeshConcept MeshType>
95 using VertexType = MeshType::VertexType;
96 using FaceType = MeshType::FaceType;
98 const VertexType* v[2];
106 v[0] =
pf.vertex(
ne);
107 v[1] =
pf.vertexMod(
ne + 1);
111 std::swap(v[0], v[1]);
120 else if (v[0] >
pe.v[0])
123 return v[1] <
pe.v[1];
128 return v[0] ==
pe.v[0] && v[1] ==
pe.v[1];
133 return v[0] !=
pe.v[0] || v[1] !=
pe.v[1];
Definition mesh_edge_util.h:93
Utility class that represents a edge in a Mesh.
Definition mesh_edge_util.h:47
A class representing a line segment in n-dimensional space. The class is parameterized by a PointConc...
Definition segment.h:43