MeshLib C Docs
Loading...
Searching...
No Matches
MRRingIterator.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRId.h>
4#include <MRCMisc/exports.h>
5
6#include <stdbool.h>
7#include <stddef.h>
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
15typedef struct MR_MeshTopology MR_MeshTopology; // Defined in `#include <MRCMesh/MRMeshTopology.h>`.
16
17
18// The iterator to find all edges in a ring of edges (e.g. all edges with same origin or all edges with same left face)
25
26// The iterator to find all edges in a ring of edges (e.g. all edges with same origin or all edges with same left face)
33
40
47
53
57
61
66
70
77
80
83
91
96
101
105
109
114
119
125
129
133
138
142
149
152
155
163
168
173
177
181
186
191
197
201
205
211
216
222
225
228
236
240
246
250
254
260
265
271
274
277
285
289
290// to iterate over all edges with same origin vertex as firstEdge (INCLUDING firstEdge)
291// for ( Edge e : orgRing( topology, firstEdge ) ) ...
296
301
302// to iterate over all edges with same origin vertex as firstEdge (EXCLUDING firstEdge)
303// for ( Edge e : orgRing0( topology, firstEdge ) ) ...
308
309// to iterate over all edges with same left face as firstEdge (INCLUDING firstEdge)
310// for ( Edge e : leftRing( topology, firstEdge ) ) ...
315
320
321// to iterate over all edges with same left face as firstEdge (EXCLUDING firstEdge)
322// for ( Edge e : leftRing0( topology, firstEdge ) ) ...
327
328#ifdef __cplusplus
329} // extern "C"
330#endif
struct MR_MeshTopology MR_MeshTopology
Definition MR2DContoursTriangulation.h:15
struct MR_IteratorRange_MR_RingIterator_MR_NextEdgeSameOrigin MR_IteratorRange_MR_RingIterator_MR_NextEdgeSameOrigin
simple alternative to boost/iterator_range Generated from class MR::IteratorRange<MR::RingIterator<MR...
Definition MRIteratorRange.h:21
struct MR_IteratorRange_MR_RingIterator_MR_NextEdgeSameLeft MR_IteratorRange_MR_RingIterator_MR_NextEdgeSameLeft
simple alternative to boost/iterator_range Generated from class MR::IteratorRange<MR::RingIterator<MR...
Definition MRIteratorRange.h:26
struct MR_RingIterator_MR_NextEdgeSameOrigin MR_RingIterator_MR_NextEdgeSameOrigin
Definition MRIteratorRange.h:14
struct MR_RingIterator_MR_NextEdgeSameLeft MR_RingIterator_MR_NextEdgeSameLeft
Definition MRIteratorRange.h:13
MRC_API void MR_NextEdgeSameLeft_DestroyArray(const MR_NextEdgeSameLeft *_this)
Destroys a heap-allocated array of MR_NextEdgeSameLeft. Does nothing if the pointer is null.
MRC_API bool MR_not_equal_MR_RingIterator_MR_NextEdgeSameLeft(const MR_RingIterator_MR_NextEdgeSameLeft *a, const MR_RingIterator_MR_NextEdgeSameLeft *b)
MRC_API void MR_NextEdgeSameLeft_Destroy(const MR_NextEdgeSameLeft *_this)
Destroys a heap-allocated instance of MR_NextEdgeSameLeft. Does nothing if the pointer is null.
MRC_API MR_IteratorRange_MR_RingIterator_MR_NextEdgeSameLeft * MR_leftRing0(const MR_MeshTopology *topology, MR_EdgeId edge)
MRC_API MR_NextEdgeSameLeft * MR_RingIterator_MR_NextEdgeSameLeft_MutableUpcastTo_MR_NextEdgeSameLeft(MR_RingIterator_MR_NextEdgeSameLeft *object)
MRC_API MR_RingIterator_MR_NextEdgeSameLeft * MR_RingIterator_MR_NextEdgeSameLeft_OffsetMutablePtr(MR_RingIterator_MR_NextEdgeSameLeft *ptr, ptrdiff_t i)
MRC_API MR_RingIterator_MR_NextEdgeSameOrigin * MR_NextEdgeSameOrigin_MutableStaticDowncastTo_MR_RingIterator_MR_NextEdgeSameOrigin(MR_NextEdgeSameOrigin *object)
MRC_API MR_NextEdgeSameOrigin * MR_RingIterator_MR_NextEdgeSameOrigin_MutableUpcastTo_MR_NextEdgeSameOrigin(MR_RingIterator_MR_NextEdgeSameOrigin *object)
MRC_API MR_EdgeId MR_deref_MR_RingIterator_MR_NextEdgeSameOrigin(const MR_RingIterator_MR_NextEdgeSameOrigin *_this)
MRC_API bool MR_equal_MR_RingIterator_MR_NextEdgeSameLeft(const MR_RingIterator_MR_NextEdgeSameLeft *a, const MR_RingIterator_MR_NextEdgeSameLeft *b)
MRC_API void MR_NextEdgeSameOrigin_Destroy(const MR_NextEdgeSameOrigin *_this)
Destroys a heap-allocated instance of MR_NextEdgeSameOrigin. Does nothing if the pointer is null.
MRC_API MR_NextEdgeSameOrigin * MR_NextEdgeSameOrigin_OffsetMutablePtr(MR_NextEdgeSameOrigin *ptr, ptrdiff_t i)
struct MR_NextEdgeSameLeft MR_NextEdgeSameLeft
Definition MRRingIterator.h:46
MRC_API const MR_NextEdgeSameOrigin * MR_RingIterator_MR_NextEdgeSameOrigin_UpcastTo_MR_NextEdgeSameOrigin(const MR_RingIterator_MR_NextEdgeSameOrigin *object)
MRC_API MR_RingIterator_MR_NextEdgeSameOrigin * MR_RingIterator_MR_NextEdgeSameOrigin_AssignFromAnother(MR_RingIterator_MR_NextEdgeSameOrigin *_this, const MR_RingIterator_MR_NextEdgeSameOrigin *_other)
MRC_API MR_NextEdgeSameOrigin * MR_NextEdgeSameOrigin_AssignFromAnother(MR_NextEdgeSameOrigin *_this, const MR_NextEdgeSameOrigin *_other)
MRC_API MR_NextEdgeSameLeft * MR_NextEdgeSameLeft_Construct(const MR_MeshTopology *topology)
MRC_API MR_NextEdgeSameLeft * MR_NextEdgeSameLeft_ConstructFromAnother(const MR_NextEdgeSameLeft *_other)
MRC_API const MR_RingIterator_MR_NextEdgeSameLeft * MR_NextEdgeSameLeft_StaticDowncastTo_MR_RingIterator_MR_NextEdgeSameLeft(const MR_NextEdgeSameLeft *object)
MRC_API MR_NextEdgeSameLeft * MR_NextEdgeSameLeft_AssignFromAnother(MR_NextEdgeSameLeft *_this, const MR_NextEdgeSameLeft *_other)
MRC_API MR_RingIterator_MR_NextEdgeSameOrigin * MR_RingIterator_MR_NextEdgeSameOrigin_OffsetMutablePtr(MR_RingIterator_MR_NextEdgeSameOrigin *ptr, ptrdiff_t i)
MRC_API bool MR_equal_MR_RingIterator_MR_NextEdgeSameOrigin(const MR_RingIterator_MR_NextEdgeSameOrigin *a, const MR_RingIterator_MR_NextEdgeSameOrigin *b)
MRC_API const MR_NextEdgeSameLeft * MR_RingIterator_MR_NextEdgeSameLeft_UpcastTo_MR_NextEdgeSameLeft(const MR_RingIterator_MR_NextEdgeSameLeft *object)
struct MR_NextEdgeSameOrigin MR_NextEdgeSameOrigin
Definition MRRingIterator.h:39
MRC_API MR_RingIterator_MR_NextEdgeSameOrigin * MR_incr_MR_RingIterator_MR_NextEdgeSameOrigin(MR_RingIterator_MR_NextEdgeSameOrigin *_this)
MRC_API const MR_NextEdgeSameLeft * MR_NextEdgeSameLeft_OffsetPtr(const MR_NextEdgeSameLeft *ptr, ptrdiff_t i)
MRC_API MR_RingIterator_MR_NextEdgeSameLeft * MR_incr_MR_RingIterator_MR_NextEdgeSameLeft(MR_RingIterator_MR_NextEdgeSameLeft *_this)
MRC_API MR_EdgeId MR_RingIterator_MR_NextEdgeSameOrigin_next(const MR_RingIterator_MR_NextEdgeSameOrigin *_this, MR_EdgeId e)
MRC_API void MR_RingIterator_MR_NextEdgeSameOrigin_Destroy(const MR_RingIterator_MR_NextEdgeSameOrigin *_this)
Destroys a heap-allocated instance of MR_RingIterator_MR_NextEdgeSameOrigin. Does nothing if the poin...
MRC_API MR_RingIterator_MR_NextEdgeSameOrigin * MR_RingIterator_MR_NextEdgeSameOrigin_ConstructFromAnother(const MR_RingIterator_MR_NextEdgeSameOrigin *_other)
MRC_API MR_RingIterator_MR_NextEdgeSameOrigin * MR_RingIterator_MR_NextEdgeSameOrigin_Construct(const MR_MeshTopology *topology, MR_EdgeId edge, bool first)
MRC_API MR_RingIterator_MR_NextEdgeSameLeft * MR_RingIterator_MR_NextEdgeSameLeft_Construct(const MR_MeshTopology *topology, MR_EdgeId edge, bool first)
MRC_API const MR_RingIterator_MR_NextEdgeSameLeft * MR_RingIterator_MR_NextEdgeSameLeft_OffsetPtr(const MR_RingIterator_MR_NextEdgeSameLeft *ptr, ptrdiff_t i)
MRC_API const MR_NextEdgeSameOrigin * MR_NextEdgeSameOrigin_OffsetPtr(const MR_NextEdgeSameOrigin *ptr, ptrdiff_t i)
MRC_API MR_IteratorRange_MR_RingIterator_MR_NextEdgeSameLeft * MR_leftRing_MR_FaceId(const MR_MeshTopology *topology, MR_FaceId f)
MRC_API MR_NextEdgeSameOrigin * MR_NextEdgeSameOrigin_ConstructFromAnother(const MR_NextEdgeSameOrigin *_other)
MRC_API void MR_NextEdgeSameOrigin_DestroyArray(const MR_NextEdgeSameOrigin *_this)
Destroys a heap-allocated array of MR_NextEdgeSameOrigin. Does nothing if the pointer is null.
MRC_API const MR_RingIterator_MR_NextEdgeSameOrigin * MR_RingIterator_MR_NextEdgeSameOrigin_OffsetPtr(const MR_RingIterator_MR_NextEdgeSameOrigin *ptr, ptrdiff_t i)
MRC_API MR_NextEdgeSameLeft * MR_NextEdgeSameLeft_OffsetMutablePtr(MR_NextEdgeSameLeft *ptr, ptrdiff_t i)
MRC_API MR_IteratorRange_MR_RingIterator_MR_NextEdgeSameOrigin * MR_orgRing0(const MR_MeshTopology *topology, MR_EdgeId edge)
MRC_API const MR_RingIterator_MR_NextEdgeSameOrigin * MR_NextEdgeSameOrigin_StaticDowncastTo_MR_RingIterator_MR_NextEdgeSameOrigin(const MR_NextEdgeSameOrigin *object)
MRC_API bool MR_not_equal_MR_RingIterator_MR_NextEdgeSameOrigin(const MR_RingIterator_MR_NextEdgeSameOrigin *a, const MR_RingIterator_MR_NextEdgeSameOrigin *b)
MRC_API MR_RingIterator_MR_NextEdgeSameLeft * MR_RingIterator_MR_NextEdgeSameLeft_AssignFromAnother(MR_RingIterator_MR_NextEdgeSameLeft *_this, const MR_RingIterator_MR_NextEdgeSameLeft *_other)
MRC_API MR_RingIterator_MR_NextEdgeSameLeft * MR_RingIterator_MR_NextEdgeSameLeft_ConstructFromAnother(const MR_RingIterator_MR_NextEdgeSameLeft *_other)
MRC_API bool MR_RingIterator_MR_NextEdgeSameOrigin_first(const MR_RingIterator_MR_NextEdgeSameOrigin *_this)
MRC_API MR_EdgeId MR_RingIterator_MR_NextEdgeSameLeft_next(const MR_RingIterator_MR_NextEdgeSameLeft *_this, MR_EdgeId e)
MRC_API bool MR_RingIterator_MR_NextEdgeSameLeft_first(const MR_RingIterator_MR_NextEdgeSameLeft *_this)
MRC_API void MR_RingIterator_MR_NextEdgeSameLeft_DestroyArray(const MR_RingIterator_MR_NextEdgeSameLeft *_this)
Destroys a heap-allocated array of MR_RingIterator_MR_NextEdgeSameLeft. Does nothing if the pointer i...
MRC_API MR_IteratorRange_MR_RingIterator_MR_NextEdgeSameOrigin * MR_orgRing_MR_VertId(const MR_MeshTopology *topology, MR_VertId v)
MRC_API MR_EdgeId MR_deref_MR_RingIterator_MR_NextEdgeSameLeft(const MR_RingIterator_MR_NextEdgeSameLeft *_this)
MRC_API void MR_RingIterator_MR_NextEdgeSameOrigin_DestroyArray(const MR_RingIterator_MR_NextEdgeSameOrigin *_this)
Destroys a heap-allocated array of MR_RingIterator_MR_NextEdgeSameOrigin. Does nothing if the pointer...
MRC_API MR_NextEdgeSameOrigin * MR_NextEdgeSameOrigin_Construct(const MR_MeshTopology *topology)
MRC_API MR_EdgeId MR_NextEdgeSameOrigin_next(const MR_NextEdgeSameOrigin *_this, MR_EdgeId e)
MRC_API MR_IteratorRange_MR_RingIterator_MR_NextEdgeSameLeft * MR_leftRing_MR_EdgeId(const MR_MeshTopology *topology, MR_EdgeId edge)
MRC_API MR_RingIterator_MR_NextEdgeSameLeft * MR_NextEdgeSameLeft_MutableStaticDowncastTo_MR_RingIterator_MR_NextEdgeSameLeft(MR_NextEdgeSameLeft *object)
MRC_API void MR_RingIterator_MR_NextEdgeSameLeft_Destroy(const MR_RingIterator_MR_NextEdgeSameLeft *_this)
Destroys a heap-allocated instance of MR_RingIterator_MR_NextEdgeSameLeft. Does nothing if the pointe...
MRC_API MR_EdgeId MR_NextEdgeSameLeft_next(const MR_NextEdgeSameLeft *_this, MR_EdgeId e)
MRC_API MR_IteratorRange_MR_RingIterator_MR_NextEdgeSameOrigin * MR_orgRing_MR_EdgeId(const MR_MeshTopology *topology, MR_EdgeId edge)
Definition MRId.h:153
Definition MRId.h:45
Definition MRId.h:55