MeshLib C Docs
Loading...
Searching...
No Matches
MRMeshTopology.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRId.h>
4#include <MRCMisc/common.h>
5#include <MRCMisc/exports.h>
7
8#include <stdbool.h>
9#include <stddef.h>
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15typedef struct MR_EdgeBitSet MR_EdgeBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
16typedef struct MR_FaceBitSet MR_FaceBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
17typedef struct MR_FaceMap MR_FaceMap; // Defined in `#include <MRCMesh/MRVector.h>`.
18typedef struct MR_GridSettings MR_GridSettings; // Defined in `#include <MRCMesh/MRGridSettings.h>`.
19typedef struct MR_PackMapping MR_PackMapping; // Defined in `#include <MRCMesh/MRBuffer.h>`.
20typedef struct MR_PartMapping MR_PartMapping; // Defined in `#include <MRCMesh/MRPartMapping.h>`.
21typedef struct MR_Triangulation MR_Triangulation; // Defined in `#include <MRCMesh/MRVector.h>`.
22typedef struct MR_UndirectedEdgeBitSet MR_UndirectedEdgeBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
23typedef struct MR_Vector_MR_EdgeId_MR_FaceId MR_Vector_MR_EdgeId_MR_FaceId; // Defined in `#include <MRCMesh/MRVector.h>`.
24typedef struct MR_Vector_MR_EdgeId_MR_VertId MR_Vector_MR_EdgeId_MR_VertId; // Defined in `#include <MRCMesh/MRVector.h>`.
25typedef struct MR_VertBitSet MR_VertBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
26typedef struct MR_VertMap MR_VertMap; // Defined in `#include <MRCMesh/MRVector.h>`.
27typedef struct MR_WholeEdgeMap MR_WholeEdgeMap; // Defined in `#include <MRCMesh/MRVector.h>`.
28typedef struct MR_expected_void_std_string MR_expected_void_std_string; // Defined in `#include <MRCMisc/expected_void_std_string.h>`.
29typedef struct MR_phmap_flat_hash_map_MR_FaceId_MR_FaceId MR_phmap_flat_hash_map_MR_FaceId_MR_FaceId; // Defined in `#include <MRCMisc/phmap_flat_hash_map_MR_FaceId_MR_FaceId.h>`.
30typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
31typedef struct MR_std_function_void_from_MR_EdgeId_MR_EdgeId MR_std_function_void_from_MR_EdgeId_MR_EdgeId; // Defined in `#include <MRCMisc/std_function_void_from_MR_EdgeId_MR_EdgeId.h>`.
32typedef struct MR_std_istream MR_std_istream; // Defined in `#include <MRCMisc/iostream.h>`.
33typedef struct MR_std_ostream MR_std_ostream; // Defined in `#include <MRCMisc/iostream.h>`.
34typedef struct MR_std_vector_MR_EdgeId MR_std_vector_MR_EdgeId; // Defined in `#include <MRCMisc/std_vector_MR_EdgeId.h>`.
35typedef struct MR_std_vector_std_array_MR_VertId_3 MR_std_vector_std_array_MR_VertId_3; // Defined in `#include <MRCMisc/std_vector_std_array_MR_VertId_3.h>`.
36typedef struct MR_std_vector_std_vector_MR_EdgeId MR_std_vector_std_vector_MR_EdgeId; // Defined in `#include <MRCMisc/std_vector_std_vector_MR_EdgeId.h>`.
37
38
43
47
52
56
60
65
68
71
78
83
88
93
98
104
109
114
119
124
129
135
140
145
150
155
163
175
180
185
190
195
200
205
211
217
222
227
232
237
242
247
252
261
266
270
275
281
288
297
302
306
315
324
329
335
340
345
350
355
360
365
370
375
380
385
391
397
403
409
414
419
424
429
434
439
444
449
454
460
467
472
477
482
487
492
498
504
510
517
524
531
537
544
550
556
566
574
581
587
594
600
608
614
620
626
632
638
643
649
657
663MRC_API int MR_MeshTopology_findNumHoles(const MR_MeshTopology *_this, MR_EdgeBitSet *holeRepresentativeEdges);
664
670
678
685
692
699
705
719
728
737
747MRC_API void MR_MeshTopology_addPart_3(MR_MeshTopology *_this, const MR_MeshTopology *from, const MR_PartMapping *map, const bool *rearrangeTriangles);
748
756MRC_API void MR_MeshTopology_addPart_5(MR_MeshTopology *_this, const MR_MeshTopology *from, MR_FaceMap *outFmap, MR_VertMap *outVmap, MR_WholeEdgeMap *outEmap, const bool *rearrangeTriangles);
757
765
780MRC_API void MR_MeshTopology_addPartByMask_6(MR_MeshTopology *_this, const MR_MeshTopology *from, const MR_FaceBitSet *fromFaces, const bool *flipOrientation, const MR_std_vector_std_vector_MR_EdgeId *thisContours, const MR_std_vector_std_vector_MR_EdgeId *fromContours, const MR_PartMapping *map);
781
786
797MRC_API void MR_MeshTopology_pack_4(MR_MeshTopology *_this, MR_FaceMap *outFmap, MR_VertMap *outVmap, MR_WholeEdgeMap *outEmap, const bool *rearrangeTriangles);
798
805
813
819
828
834
841
850MRC_API void MR_MeshTopology_addPackedPart(MR_MeshTopology *_this, const MR_MeshTopology *from, MR_EdgeId toEdgeId, const MR_FaceMap *fmap, const MR_VertMap *vmap);
851
860
865
870
877
878// constructs triangular grid mesh topology in parallel
884
892
893#ifdef __cplusplus
894} // extern "C"
895#endif
struct MR_std_vector_std_vector_MR_EdgeId MR_std_vector_std_vector_MR_EdgeId
Definition MR2DContoursTriangulation.h:18
struct MR_MeshTopology MR_MeshTopology
Definition MR2DContoursTriangulation.h:15
struct MR_std_function_bool_from_float MR_std_function_bool_from_float
Definition MR3mf.h:10
struct MR_UndirectedEdgeBitSet MR_UndirectedEdgeBitSet
Definition MRAABBTreeBase.h:28
struct MR_VertBitSet MR_VertBitSet
Definition MRAABBTree.h:22
struct MR_FaceBitSet MR_FaceBitSet
Definition MRAABBTree.h:17
struct MR_phmap_flat_hash_map_MR_FaceId_MR_FaceId MR_phmap_flat_hash_map_MR_FaceId_MR_FaceId
Definition MRBitSet.h:42
struct MR_EdgeBitSet MR_EdgeBitSet
Definition MRBitSet.h:84
struct MR_VertMap MR_VertMap
Definition MRBitSet.h:40
struct MR_FaceMap MR_FaceMap
Definition MRBitSet.h:26
struct MR_WholeEdgeMap MR_WholeEdgeMap
Definition MRBooleanOperation.h:21
struct MR_PackMapping MR_PackMapping
Definition MRBuffer.h:426
struct MR_std_vector_MR_EdgeId MR_std_vector_MR_EdgeId
Definition MRContoursStitch.h:11
struct MR_expected_void_std_string MR_expected_void_std_string
Definition MRCtm.h:26
struct MR_std_ostream MR_std_ostream
Definition MRCtm.h:31
struct MR_std_istream MR_std_istream
Definition MRCtm.h:28
struct MR_std_function_void_from_MR_EdgeId_MR_EdgeId MR_std_function_void_from_MR_EdgeId_MR_EdgeId
Definition MRFillHoleNicely.h:23
struct MR_GridSettings MR_GridSettings
Definition MRGridSettings.h:41
struct MR_Triangulation MR_Triangulation
Definition MRIdentifyVertices.h:13
MRC_API void MR_MeshTopology_deleteFaces(MR_MeshTopology *_this, const MR_FaceBitSet *fs, const MR_UndirectedEdgeBitSet *keepEdges)
MRC_API bool MR_MeshTopology_isTriVert(const MR_MeshTopology *_this, MR_FaceId f, MR_VertId v)
MRC_API bool MR_MeshTopology_isBdEdge(const MR_MeshTopology *_this, MR_EdgeId e, const MR_FaceBitSet *region)
MRC_API void MR_MeshTopology_addPart_5(MR_MeshTopology *_this, const MR_MeshTopology *from, MR_FaceMap *outFmap, MR_VertMap *outVmap, MR_WholeEdgeMap *outEmap, const bool *rearrangeTriangles)
MRC_API MR_uint64_t MR_MeshTopology_vertCapacity(const MR_MeshTopology *_this)
MRC_API bool MR_MeshTopology_hasEdge(const MR_MeshTopology *_this, MR_EdgeId e)
struct MR_std_vector_std_array_MR_VertId_3 MR_std_vector_std_array_MR_VertId_3
Definition MRMeshTopology.h:35
MRC_API MR_FaceId MR_MeshTopology_lastValidFace(const MR_MeshTopology *_this)
MRC_API MR_EdgeBitSet * MR_MeshTopology_findLeftBdEdges(const MR_MeshTopology *_this, const MR_FaceBitSet *region, const MR_EdgeBitSet *test)
MRC_API bool MR_MeshTopology_checkValidity(const MR_MeshTopology *_this, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb, const bool *allVerts)
MRC_API void MR_MeshTopology_preferEdges(MR_MeshTopology *_this, const MR_UndirectedEdgeBitSet *stableEdges)
MRC_API int MR_MeshTopology_getFaceDegree(const MR_MeshTopology *_this, MR_FaceId f)
MRC_API bool MR_equal_MR_MeshTopology(const MR_MeshTopology *_this, const MR_MeshTopology *b)
MRC_API MR_VertId MR_MeshTopology_org(const MR_MeshTopology *_this, MR_EdgeId he)
MRC_API MR_uint64_t MR_MeshTopology_edgeCapacity(const MR_MeshTopology *_this)
MRC_API MR_uint64_t MR_MeshTopology_heapBytes(const MR_MeshTopology *_this)
MRC_API MR_FaceId MR_MeshTopology_right(const MR_MeshTopology *_this, MR_EdgeId he)
MRC_API MR_EdgeId MR_MeshTopology_sharedEdge(const MR_MeshTopology *_this, MR_FaceId l, MR_FaceId r)
MRC_API MR_VertId MR_MeshTopology_lastValidVert(const MR_MeshTopology *_this)
MRC_API MR_std_vector_MR_EdgeId * MR_MeshTopology_getLeftRing(const MR_MeshTopology *_this, MR_EdgeId e)
MRC_API void MR_MeshTopology_shrinkToFit(MR_MeshTopology *_this)
MRC_API bool MR_MeshTopology_isInnerOrBdVertex(const MR_MeshTopology *_this, MR_VertId v, const MR_FaceBitSet *region)
MRC_API void MR_MeshTopology_packMinMem(MR_MeshTopology *_this, const MR_PackMapping *map)
MRC_API void MR_MeshTopology_getTriEdges(const MR_MeshTopology *_this, MR_FaceId f, MR_EdgeId *e0, MR_EdgeId *e1, MR_EdgeId *e2)
MRC_API bool MR_MeshTopology_isLeftBdEdge(const MR_MeshTopology *_this, MR_EdgeId e, const MR_FaceBitSet *region)
MRC_API bool MR_MeshTopology_isLeftBdFace(const MR_MeshTopology *_this, MR_EdgeId e, const MR_FaceBitSet *region)
MRC_API MR_uint64_t MR_MeshTopology_undirectedEdgeCapacity(const MR_MeshTopology *_this)
MRC_API MR_FaceBitSet * MR_MeshTopology_findBdFaces(const MR_MeshTopology *_this, const MR_FaceBitSet *region)
MRC_API void MR_MeshTopology_flip_MR_VertBitSet(const MR_MeshTopology *_this, MR_VertBitSet *vs)
MRC_API void MR_MeshTopology_excludeLoneEdges(const MR_MeshTopology *_this, MR_UndirectedEdgeBitSet *edges)
MRC_API MR_FaceBitSet * MR_MeshTopology_getPathRightFaces(const MR_MeshTopology *_this, const MR_std_vector_MR_EdgeId *path)
MRC_API void MR_MeshTopology_deleteFace(MR_MeshTopology *_this, MR_FaceId f, const MR_UndirectedEdgeBitSet *keepEdges)
MRC_API bool MR_MeshTopology_computeValidsFromEdges(MR_MeshTopology *_this, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API void MR_MeshTopology_edgeReserve(MR_MeshTopology *_this, MR_uint64_t newCapacity)
MRC_API void MR_MeshTopology_faceResize(MR_MeshTopology *_this, MR_uint64_t newSize)
MRC_API MR_MeshTopology * MR_MeshTopology_ConstructFromAnother(MR_PassBy _other_pass_by, MR_MeshTopology *_other)
MRC_API MR_EdgeId MR_MeshTopology_lastNotLoneEdge(const MR_MeshTopology *_this)
MRC_API bool MR_MeshTopology_isBdVertex(const MR_MeshTopology *_this, MR_VertId v, const MR_FaceBitSet *region)
MRC_API MR_EdgeId MR_MeshTopology_bdEdgeSameLeft(const MR_MeshTopology *_this, MR_EdgeId e, const MR_FaceBitSet *region)
MRC_API const MR_FaceBitSet * MR_MeshTopology_getFaceIds(const MR_MeshTopology *_this, const MR_FaceBitSet *region)
MRC_API MR_EdgeId MR_MeshTopology_bdEdgeSameOrigin(const MR_MeshTopology *_this, MR_EdgeId e, const MR_FaceBitSet *region)
MRC_API MR_FaceId MR_MeshTopology_left(const MR_MeshTopology *_this, MR_EdgeId he)
MRC_API MR_std_vector_MR_EdgeId * MR_MeshTopology_findHoleRepresentiveEdges(const MR_MeshTopology *_this, const MR_FaceBitSet *region)
MRC_API MR_FaceBitSet * MR_MeshTopology_getPathLeftFaces(const MR_MeshTopology *_this, const MR_std_vector_MR_EdgeId *path)
MRC_API void MR_MeshTopology_vertReserve(MR_MeshTopology *_this, MR_uint64_t newCapacity)
MRC_API MR_VertBitSet * MR_MeshTopology_findBdVerts(const MR_MeshTopology *_this, const MR_FaceBitSet *region, const MR_VertBitSet *test)
MRC_API bool MR_MeshTopology_isLeftInRegion(const MR_MeshTopology *_this, MR_EdgeId e, const MR_FaceBitSet *region)
MRC_API bool MR_MeshTopology_updatingValids(const MR_MeshTopology *_this)
MRC_API MR_UndirectedEdgeId MR_MeshTopology_lastNotLoneUndirectedEdge(const MR_MeshTopology *_this)
MRC_API bool MR_MeshTopology_isInnerEdge(const MR_MeshTopology *_this, MR_EdgeId e, const MR_FaceBitSet *region)
MRC_API const MR_VertBitSet * MR_MeshTopology_getVertIds(const MR_MeshTopology *_this, const MR_VertBitSet *region)
MRC_API MR_EdgeId MR_MeshTopology_bdEdgeWithLeft(const MR_MeshTopology *_this, MR_FaceId f, const MR_FaceBitSet *region)
struct MR_Vector_MR_EdgeId_MR_VertId MR_Vector_MR_EdgeId_MR_VertId
Definition MRMeshTopology.h:24
MRC_API MR_VertId MR_MeshTopology_addVertId(MR_MeshTopology *_this)
MRC_API MR_uint64_t MR_MeshTopology_undirectedEdgeSize(const MR_MeshTopology *_this)
MRC_API MR_FaceId MR_MeshTopology_sharedFace(const MR_MeshTopology *_this, MR_EdgeId a, MR_EdgeId b)
MRC_API MR_FaceId MR_MeshTopology_addFaceId(MR_MeshTopology *_this)
MRC_API MR_EdgeId MR_MeshTopology_prev(const MR_MeshTopology *_this, MR_EdgeId he)
MRC_API MR_MeshTopology * MR_MeshTopology_DefaultConstructArray(size_t num_elems)
MRC_API MR_EdgeId MR_MeshTopology_bdEdgeWithOrigin(const MR_MeshTopology *_this, MR_VertId v, const MR_FaceBitSet *region)
MRC_API MR_EdgeId MR_MeshTopology_prevLeftBd(const MR_MeshTopology *_this, MR_EdgeId e, const MR_FaceBitSet *region)
MRC_API MR_Triangulation * MR_MeshTopology_getTriangulation(const MR_MeshTopology *_this)
MRC_API void MR_MeshTopology_stopUpdatingValids(MR_MeshTopology *_this)
MRC_API const MR_VertBitSet * MR_MeshTopology_getValidVerts(const MR_MeshTopology *_this)
MRC_API MR_uint64_t MR_MeshTopology_vertSize(const MR_MeshTopology *_this)
MRC_API void MR_MeshTopology_flipEdge(MR_MeshTopology *_this, MR_EdgeId e)
MRC_API void MR_MeshTopology_addPackedPart(MR_MeshTopology *_this, const MR_MeshTopology *from, MR_EdgeId toEdgeId, const MR_FaceMap *fmap, const MR_VertMap *vmap)
MRC_API void MR_MeshTopology_DestroyArray(const MR_MeshTopology *_this)
Destroys a heap-allocated array of MR_MeshTopology. Does nothing if the pointer is null.
MRC_API MR_EdgeId MR_MeshTopology_collapseEdge(MR_MeshTopology *_this, MR_EdgeId e, const MR_std_function_void_from_MR_EdgeId_MR_EdgeId *onEdgeDel)
MRC_API void MR_MeshTopology_flip_MR_FaceBitSet(const MR_MeshTopology *_this, MR_FaceBitSet *fs)
MRC_API MR_EdgeId MR_MeshTopology_makeEdge(MR_MeshTopology *_this)
MRC_API void MR_MeshTopology_addPartByMask_3(MR_MeshTopology *_this, const MR_MeshTopology *from, const MR_FaceBitSet *fromFaces, const MR_PartMapping *map)
MRC_API void MR_MeshTopology_setOrg(MR_MeshTopology *_this, MR_EdgeId a, MR_VertId v)
MRC_API MR_expected_void_std_string * MR_MeshTopology_read(MR_MeshTopology *_this, MR_std_istream *s, MR_PassBy callback_pass_by, MR_std_function_bool_from_float *callback)
MRC_API MR_MeshTopology * MR_MeshTopology_AssignFromAnother(MR_MeshTopology *_this, MR_PassBy _other_pass_by, MR_MeshTopology *_other)
MRC_API MR_std_vector_std_array_MR_VertId_3 * MR_MeshTopology_getAllTriVerts(const MR_MeshTopology *_this)
MRC_API void MR_MeshTopology_setLeft(MR_MeshTopology *_this, MR_EdgeId a, MR_FaceId f)
MRC_API MR_UndirectedEdgeBitSet * MR_MeshTopology_findNotLoneUndirectedEdges(const MR_MeshTopology *_this)
MRC_API bool MR_MeshTopology_isInnerOrBdEdge(const MR_MeshTopology *_this, MR_EdgeId e, const MR_FaceBitSet *region)
MRC_API void MR_MeshTopology_splice(MR_MeshTopology *_this, MR_EdgeId a, MR_EdgeId b)
MRC_API bool MR_MeshTopology_buildGridMesh(MR_MeshTopology *_this, const MR_GridSettings *settings, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API int MR_MeshTopology_getOrgDegree(const MR_MeshTopology *_this, MR_EdgeId a)
MRC_API const MR_Vector_MR_EdgeId_MR_FaceId * MR_MeshTopology_edgePerFace(const MR_MeshTopology *_this)
MRC_API bool MR_MeshTopology_isBdFace(const MR_MeshTopology *_this, MR_FaceId f, const MR_FaceBitSet *region)
MRC_API void MR_MeshTopology_addPart_3(MR_MeshTopology *_this, const MR_MeshTopology *from, const MR_PartMapping *map, const bool *rearrangeTriangles)
MRC_API MR_EdgeId MR_MeshTopology_next(const MR_MeshTopology *_this, MR_EdgeId he)
MRC_API MR_VertBitSet * MR_MeshTopology_getPathVertices(const MR_MeshTopology *_this, const MR_std_vector_MR_EdgeId *path)
MRC_API int MR_MeshTopology_getVertDegree(const MR_MeshTopology *_this, MR_VertId v)
MRC_API bool MR_MeshTopology_fromSameOriginRing(const MR_MeshTopology *_this, MR_EdgeId a, MR_EdgeId b)
MRC_API void MR_MeshTopology_getLeftTriEdges(const MR_MeshTopology *_this, MR_EdgeId e0, MR_EdgeId *e1, MR_EdgeId *e2)
MRC_API MR_EdgeId MR_MeshTopology_splitEdge(MR_MeshTopology *_this, MR_EdgeId e, MR_FaceBitSet *region, MR_phmap_flat_hash_map_MR_FaceId_MR_FaceId *new2Old)
MRC_API const MR_FaceBitSet * MR_MeshTopology_getValidFaces(const MR_MeshTopology *_this)
MRC_API void MR_MeshTopology_vertResize(MR_MeshTopology *_this, MR_uint64_t newSize)
MRC_API MR_EdgeId MR_MeshTopology_sharedVertInOrg_MR_FaceId(const MR_MeshTopology *_this, MR_FaceId l, MR_FaceId r)
MRC_API void MR_MeshTopology_faceReserve(MR_MeshTopology *_this, MR_uint64_t newCapacity)
MRC_API void MR_MeshTopology_getLeftTriVerts_4(const MR_MeshTopology *_this, MR_EdgeId a, MR_VertId *v0, MR_VertId *v1, MR_VertId *v2)
MRC_API int MR_MeshTopology_getLeftDegree(const MR_MeshTopology *_this, MR_EdgeId a)
MRC_API MR_VertId MR_MeshTopology_splitFace(MR_MeshTopology *_this, MR_FaceId f, MR_FaceBitSet *region, MR_phmap_flat_hash_map_MR_FaceId_MR_FaceId *new2Old)
MRC_API void MR_MeshTopology_getLeftTriVerts_2(const MR_MeshTopology *_this, MR_EdgeId a, MR_std_array_MR_VertId_3 *v)
MRC_API MR_EdgeId MR_MeshTopology_edgeWithOrg(const MR_MeshTopology *_this, MR_VertId a)
MRC_API bool MR_MeshTopology_isBdVertexInOrg(const MR_MeshTopology *_this, MR_EdgeId e, const MR_FaceBitSet *region)
MRC_API void MR_MeshTopology_rotateTriangles(MR_MeshTopology *_this)
MRC_API int MR_MeshTopology_numValidFaces(const MR_MeshTopology *_this)
MRC_API bool MR_MeshTopology_isLeftTri(const MR_MeshTopology *_this, MR_EdgeId a)
MRC_API void MR_MeshTopology_getTriVerts_2(const MR_MeshTopology *_this, MR_FaceId f, MR_std_array_MR_VertId_3 *v)
MRC_API MR_std_array_MR_VertId_3 MR_MeshTopology_getTriVerts_1(const MR_MeshTopology *_this, MR_FaceId f)
MRC_API MR_MeshTopology * MR_MeshTopology_DefaultConstruct(void)
MRC_API MR_EdgeId MR_MeshTopology_nextLeftBd(const MR_MeshTopology *_this, MR_EdgeId e, const MR_FaceBitSet *region)
MRC_API MR_MeshTopology * MR_MeshTopology_OffsetMutablePtr(MR_MeshTopology *ptr, ptrdiff_t i)
MRC_API void MR_MeshTopology_resizeBeforeParallelAdd(MR_MeshTopology *_this, MR_uint64_t edgeSize, MR_uint64_t vertSize, MR_uint64_t faceSize)
MRC_API void MR_MeshTopology_write(const MR_MeshTopology *_this, MR_std_ostream *s)
MRC_API bool MR_MeshTopology_isClosed(const MR_MeshTopology *_this, const MR_FaceBitSet *region)
MRC_API void MR_MeshTopology_addPartByMask_6(MR_MeshTopology *_this, const MR_MeshTopology *from, const MR_FaceBitSet *fromFaces, const bool *flipOrientation, const MR_std_vector_std_vector_MR_EdgeId *thisContours, const MR_std_vector_std_vector_MR_EdgeId *fromContours, const MR_PartMapping *map)
struct MR_Vector_MR_EdgeId_MR_FaceId MR_Vector_MR_EdgeId_MR_FaceId
Definition MRMeshTopology.h:23
MRC_API MR_VertId MR_MeshTopology_dest(const MR_MeshTopology *_this, MR_EdgeId he)
MRC_API bool MR_MeshTopology_isLoneEdge(const MR_MeshTopology *_this, MR_EdgeId a)
MRC_API MR_uint64_t MR_MeshTopology_computeNotLoneUndirectedEdges(const MR_MeshTopology *_this)
MRC_API MR_std_array_MR_VertId_3 MR_MeshTopology_getLeftTriVerts_1(const MR_MeshTopology *_this, MR_EdgeId a)
MRC_API void MR_MeshTopology_getTriVerts_4(const MR_MeshTopology *_this, MR_FaceId f, MR_VertId *v0, MR_VertId *v1, MR_VertId *v2)
MRC_API MR_EdgeId MR_MeshTopology_findEdge(const MR_MeshTopology *_this, MR_VertId o, MR_VertId d)
MRC_API void MR_MeshTopology_faceResizeWithReserve(MR_MeshTopology *_this, MR_uint64_t newSize)
MRC_API MR_uint64_t MR_MeshTopology_edgeSize(const MR_MeshTopology *_this)
MRC_API void MR_MeshTopology_vertResizeWithReserve(MR_MeshTopology *_this, MR_uint64_t newSize)
MRC_API MR_EdgeId MR_MeshTopology_sharedVertInOrg_MR_EdgeId(const MR_MeshTopology *_this, MR_EdgeId a, MR_EdgeId b)
MRC_API bool MR_MeshTopology_hasFace(const MR_MeshTopology *_this, MR_FaceId a)
MRC_API const MR_Vector_MR_EdgeId_MR_VertId * MR_MeshTopology_edgePerVertex(const MR_MeshTopology *_this)
MRC_API bool MR_MeshTopology_hasVert(const MR_MeshTopology *_this, MR_VertId a)
MRC_API MR_uint64_t MR_MeshTopology_faceSize(const MR_MeshTopology *_this)
MRC_API MR_uint64_t MR_MeshTopology_faceCapacity(const MR_MeshTopology *_this)
MRC_API MR_EdgeId MR_MeshTopology_edgeWithLeft(const MR_MeshTopology *_this, MR_FaceId a)
MRC_API bool MR_MeshTopology_isLeftQuad(const MR_MeshTopology *_this, MR_EdgeId a)
MRC_API void MR_MeshTopology_Destroy(const MR_MeshTopology *_this)
Destroys a heap-allocated instance of MR_MeshTopology. Does nothing if the pointer is null.
MRC_API const MR_MeshTopology * MR_MeshTopology_OffsetPtr(const MR_MeshTopology *ptr, ptrdiff_t i)
MRC_API int MR_MeshTopology_numValidVerts(const MR_MeshTopology *_this)
MRC_API void MR_MeshTopology_pack_4(MR_MeshTopology *_this, MR_FaceMap *outFmap, MR_VertMap *outVmap, MR_WholeEdgeMap *outEmap, const bool *rearrangeTriangles)
MRC_API void MR_MeshTopology_flipOrientation(MR_MeshTopology *_this, const MR_UndirectedEdgeBitSet *fullComponents)
MRC_API int MR_MeshTopology_findNumHoles(const MR_MeshTopology *_this, MR_EdgeBitSet *holeRepresentativeEdges)
MRC_API MR_std_vector_std_vector_MR_EdgeId * MR_MeshTopology_getLeftRings(const MR_MeshTopology *_this, const MR_std_vector_MR_EdgeId *es)
MRC_API bool MR_MeshTopology_fromSameLeftRing(const MR_MeshTopology *_this, MR_EdgeId a, MR_EdgeId b)
MRC_API void MR_MeshTopology_pack_1(MR_MeshTopology *_this, const MR_PackMapping *map)
struct MR_PartMapping MR_PartMapping
Definition MRMesh.h:31
MR_PassBy
Definition common.h:23
uint64_t MR_uint64_t
Definition common.h:18
#define MRC_API
Definition exports.h:11
Definition MRId.h:153
Definition MRId.h:45
Definition MRId.h:35
Definition MRId.h:55
A fixed-size array of MR::VertId of size 3.
Definition std_array_MR_VertId_3.h:12