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#include <stdint.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16typedef struct MR_EdgeBitSet MR_EdgeBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
17typedef struct MR_FaceBitSet MR_FaceBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
18typedef struct MR_FaceMap MR_FaceMap; // Defined in `#include <MRCMesh/MRVector.h>`.
19typedef struct MR_GridSettings MR_GridSettings; // Defined in `#include <MRCMesh/MRGridSettings.h>`.
20typedef struct MR_PackMapping MR_PackMapping; // Defined in `#include <MRCMesh/MRBuffer.h>`.
21typedef struct MR_PartMapping MR_PartMapping; // Defined in `#include <MRCMesh/MRPartMapping.h>`.
22typedef struct MR_Triangulation MR_Triangulation; // Defined in `#include <MRCMesh/MRVector.h>`.
23typedef struct MR_UndirectedEdgeBitSet MR_UndirectedEdgeBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
24typedef struct MR_Vector_MR_EdgeId_MR_FaceId MR_Vector_MR_EdgeId_MR_FaceId; // Defined in `#include <MRCMesh/MRVector.h>`.
25typedef struct MR_Vector_MR_EdgeId_MR_VertId MR_Vector_MR_EdgeId_MR_VertId; // Defined in `#include <MRCMesh/MRVector.h>`.
26typedef struct MR_VertBitSet MR_VertBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
27typedef struct MR_VertMap MR_VertMap; // Defined in `#include <MRCMesh/MRVector.h>`.
28typedef struct MR_WholeEdgeMap MR_WholeEdgeMap; // Defined in `#include <MRCMesh/MRVector.h>`.
29typedef struct MR_expected_void_std_string MR_expected_void_std_string; // Defined in `#include <MRCMisc/expected_void_std_string.h>`.
30typedef 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>`.
31typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
32typedef 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>`.
33typedef struct MR_std_istream MR_std_istream; // Defined in `#include <MRCMisc/iostream.h>`.
34typedef struct MR_std_ostream MR_std_ostream; // Defined in `#include <MRCMisc/iostream.h>`.
35typedef struct MR_std_vector_MR_EdgeId MR_std_vector_MR_EdgeId; // Defined in `#include <MRCMisc/std_vector_MR_EdgeId.h>`.
36typedef 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>`.
37typedef 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>`.
38
39
43
47
52
55
58
62
65
68
73
78
83
88
93
99
104
109
114
119
124
130
135
140
145
150
158
170
175
180
185
190
195
200
206
212
217
222
227
232
237
242
247
256
261
265
270
276
283
292
297
301
310
319
324
330
335
340
345
350
355
360
365
370
375
380
386
392
398
404
409
414
419
424
429
434
439
444
449
455
462
467
472
477
482
487
493
499
505
512
519
526
532
539
545
551
561
569
576
582
589
595
603
609
615
621
627
633
638
644
652
658MRC_API int32_t MR_MeshTopology_findNumHoles(const MR_MeshTopology *_this, MR_EdgeBitSet *holeRepresentativeEdges);
659
665
673
680
687
694
700
714
723
732
742MRC_API void MR_MeshTopology_addPart_3(MR_MeshTopology *_this, const MR_MeshTopology *from, const MR_PartMapping *map, const bool *rearrangeTriangles);
743
751MRC_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);
752
760
768
783MRC_API void MR_MeshTopology_addPartByMask_6_const_MR_FaceBitSet_ptr(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);
784
796MRC_API void MR_MeshTopology_addPartByMask_6_MR_FaceBitSet(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);
797
802
813MRC_API void MR_MeshTopology_pack_4(MR_MeshTopology *_this, MR_FaceMap *outFmap, MR_VertMap *outVmap, MR_WholeEdgeMap *outEmap, const bool *rearrangeTriangles);
814
821
829
835
844
850
857
866MRC_API void MR_MeshTopology_addPackedPart(MR_MeshTopology *_this, const MR_MeshTopology *from, MR_EdgeId toEdgeId, const MR_FaceMap *fmap, const MR_VertMap *vmap);
867
876
881
886
893
894// constructs triangular grid mesh topology in parallel
900
908
911
912#ifdef __cplusplus
913} // extern "C"
914#endif
struct MR_std_vector_std_vector_MR_EdgeId MR_std_vector_std_vector_MR_EdgeId
Definition MR2DContoursTriangulation.h:19
struct MR_MeshTopology MR_MeshTopology
Definition MR2DContoursTriangulation.h:16
struct MR_std_function_bool_from_float MR_std_function_bool_from_float
Definition MR3mf.h:10
struct MR_FaceBitSet MR_FaceBitSet
Definition MRAABBTreeBase.h:25
struct MR_UndirectedEdgeBitSet MR_UndirectedEdgeBitSet
Definition MRAABBTreeBase.h:29
struct MR_VertBitSet MR_VertBitSet
Definition MRAABBTree.h:15
struct MR_phmap_flat_hash_map_MR_FaceId_MR_FaceId MR_phmap_flat_hash_map_MR_FaceId_MR_FaceId
Definition MRBitSet.h:43
struct MR_EdgeBitSet MR_EdgeBitSet
Definition MRBitSet.h:79
struct MR_VertMap MR_VertMap
Definition MRBitSet.h:41
struct MR_FaceMap MR_FaceMap
Definition MRBitSet.h:27
struct MR_WholeEdgeMap MR_WholeEdgeMap
Definition MRBooleanOperation.h:21
struct MR_PackMapping MR_PackMapping
Definition MRBuffer.h:374
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:20
struct MR_std_ostream MR_std_ostream
Definition MRCtm.h:22
struct MR_std_istream MR_std_istream
Definition MRCtm.h:21
struct MR_std_function_void_from_MR_EdgeId_MR_EdgeId MR_std_function_void_from_MR_EdgeId_MR_EdgeId
Definition MRFillHoleNicely.h:24
struct MR_GridSettings MR_GridSettings
Definition MRGridSettings.h:21
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 int32_t MR_MeshTopology_getFaceDegree(const MR_MeshTopology *_this, MR_FaceId f)
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:36
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 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 int32_t MR_MeshTopology_numValidFaces(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 void MR_MeshTopology_addPartByMask_6_const_MR_FaceBitSet_ptr(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)
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 void MR_MeshTopology_addPartByMask_3_MR_FaceBitSet(MR_MeshTopology *_this, const MR_MeshTopology *from, const MR_FaceBitSet *fromFaces, const MR_PartMapping *map)
MRC_API int32_t MR_MeshTopology_getOrgDegree(const MR_MeshTopology *_this, MR_EdgeId a)
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 void MR_MeshTopology_addPartByMask_3_const_MR_FaceBitSet_ptr(MR_MeshTopology *_this, const MR_MeshTopology *from, const MR_FaceBitSet *fromFaces, const MR_PartMapping *map)
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:25
MRC_API MR_VertId MR_MeshTopology_addVertId(MR_MeshTopology *_this)
MRC_API MR_uint64_t MR_MeshTopology_undirectedEdgeSize(const MR_MeshTopology *_this)
MRC_API int32_t MR_MeshTopology_numValidVerts(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_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_loadMeshDll(void)
Generated from function MR::loadMeshDll.
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 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 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 int32_t MR_MeshTopology_findNumHoles(const MR_MeshTopology *_this, MR_EdgeBitSet *holeRepresentativeEdges)
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 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_addPartByMask_6_MR_FaceBitSet(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)
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 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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
struct MR_Vector_MR_EdgeId_MR_FaceId MR_Vector_MR_EdgeId_MR_FaceId
Definition MRMeshTopology.h:24
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 int32_t MR_MeshTopology_getLeftDegree(const MR_MeshTopology *_this, MR_EdgeId a)
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 int32_t MR_MeshTopology_getVertDegree(const MR_MeshTopology *_this, MR_VertId v)
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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 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:19
uint64_t MR_uint64_t
Definition common.h:14
#define MRC_API
Definition exports.h:11
Definition MRId.h:152
Definition MRId.h:46
Definition MRId.h:36
Definition MRId.h:56
A fixed-size array of MR::VertId of size 3.
Definition std_array_MR_VertId_3.h:12