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
13typedef struct MR_IteratorRange_MR_RingIterator_MR_NextEdgeSameLeft MR_IteratorRange_MR_RingIterator_MR_NextEdgeSameLeft; // Defined in `#include <MRCMesh/MRIteratorRange.h>`.
14typedef struct MR_IteratorRange_MR_RingIterator_MR_NextEdgeSameOrigin MR_IteratorRange_MR_RingIterator_MR_NextEdgeSameOrigin; // Defined in `#include <MRCMesh/MRIteratorRange.h>`.
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
76
81
88
91
94
102
107
112
116
120
125
130
136
140
144
149
153
159
164
171
174
177
185
190
195
199
203
208
213
219
223
227
233
236
239
247
251
257
261
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 const MR_RingIterator_MR_NextEdgeSameOrigin * MR_RingIterator_MR_NextEdgeSameOrigin_StaticDowncastFrom_MR_NextEdgeSameOrigin(const 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 MR_RingIterator_MR_NextEdgeSameLeft * MR_RingIterator_MR_NextEdgeSameLeft_MutableStaticDowncastFrom_MR_NextEdgeSameLeft(MR_NextEdgeSameLeft *object)
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_RingIterator_MR_NextEdgeSameOrigin * MR_RingIterator_MR_NextEdgeSameOrigin_MutableStaticDowncastFrom_MR_NextEdgeSameOrigin(MR_NextEdgeSameOrigin *object)
MRC_API MR_NextEdgeSameLeft * MR_NextEdgeSameLeft_ConstructFromAnother(const MR_NextEdgeSameLeft *_other)
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 const MR_RingIterator_MR_NextEdgeSameLeft * MR_RingIterator_MR_NextEdgeSameLeft_StaticDowncastFrom_MR_NextEdgeSameLeft(const MR_NextEdgeSameLeft *object)
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 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 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)
#define MRC_API
Definition include/MRCMisc/exports.h:11
Definition MRId.h:140
Definition MRId.h:32
Definition MRId.h:42