4#include "MRPch/MRBindingMacros.h"
30 std::vector<VertDuplication>* dups =
nullptr, VertId lastValidVert = {} );
73 void setNumChains( std::uint32_t openChains, std::uint32_t closedChains )
81 assert( repeatedVerts >= 1 );
96 std::uint32_t data_ = 0;
98static_assert(
sizeof(
VertInfo ) == 4 );
106 auto asPair()
const {
return std::make_pair(
v,
f ); }
#define MRMESH_API
Definition MRMeshFwd.h:82
std::uint32_t numClosedChains() const
the number of closed chains (rings) of connected triangles around the vertex; 0 if hasRepeatedVerts()
Definition MRVertDuplication.h:50
std::uint32_t maxVertRepetitions() const
the maximum number of a neighbor vertex repetitions; 0 if !hasRepeatedVerts()
Definition MRVertDuplication.h:44
bool areTwinChains(std::uint32_t numTris) const
Definition MRVertDuplication.h:68
MR_BIND_IGNORE_PY VertInfo inspectVertNeighbourhood(const Triangulation &t, const VertTri *begin, const VertTri *end)
static constexpr std::uint32_t maxNumRepeatedVerts
Definition MRVertDuplication.h:92
VertId dupVert
new vertex after duplication
Definition MRVertDuplication.h:22
std::uint32_t numChains() const
the total number of open and closed chains of connected triangles around the vertex; 0 if hasRepeated...
Definition MRVertDuplication.h:53
void setNumChains(std::uint32_t openChains, std::uint32_t closedChains)
Definition MRVertDuplication.h:73
void setNumRepeatedVerts(std::uint32_t repeatedVerts, std::uint32_t maxVertRepetitions)
Definition MRVertDuplication.h:79
auto asPair() const
Definition MRVertDuplication.h:106
FaceId f
Definition MRVertDuplication.h:104
bool duplicationNeeded() const
Definition MRVertDuplication.h:57
static constexpr std::uint32_t maxNumClosedChains
Definition MRVertDuplication.h:91
std::uint32_t numRepeatedVerts() const
the total number of neighbor vertex repetitions; 0 if !hasRepeatedVerts()
Definition MRVertDuplication.h:41
VertId v
Definition MRVertDuplication.h:103
std::uint32_t numOpenChains() const
the number of open chains of connected triangles around the vertex; 0 if hasRepeatedVerts()
Definition MRVertDuplication.h:47
friend bool operator<(const VertTri &l, const VertTri &r)
Definition MRVertDuplication.h:107
static constexpr std::uint32_t maxMaxVertRepetitions
Definition MRVertDuplication.h:93
size_t duplicateNonManifoldVertices(Triangulation &t, FaceBitSet *region=nullptr, std::vector< VertDuplication > *dups=nullptr, VertId lastValidVert={})
VertId srcVert
original vertex before duplication
Definition MRVertDuplication.h:21
static constexpr std::uint32_t maxNumOpenChains
maximal values storable in the counters
Definition MRVertDuplication.h:90
bool hasRepeatedVerts() const
true if some neighbor vertex is present in more than one triangle-pair around the vertex
Definition MRVertDuplication.h:38
auto begin(ViewportMask mask)
Definition MRViewportId.h:122
auto end(ViewportMask)
Definition MRViewportId.h:124
Building topologies by triangles.
Definition MRIdentifyVertices.h:16
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRVertDuplication.h:20
Definition MRVertDuplication.h:36
describes a vertex and one of triangles incident to it
Definition MRVertDuplication.h:102