MeshLib C Docs
Loading...
Searching...
No Matches
MRMeshSubdivide.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMisc/common.h>
4#include <MRCMisc/exports.h>
5
6#include <stdbool.h>
7#include <stddef.h>
8#include <stdint.h>
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14typedef struct MR_FaceBitSet MR_FaceBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
15typedef struct MR_Mesh MR_Mesh; // Defined in `#include <MRCMesh/MRMesh.h>`.
16typedef struct MR_MeshPart MR_MeshPart; // Defined in `#include <MRCMesh/MRMeshPart.h>`.
17typedef struct MR_ObjectMesh MR_ObjectMesh; // Defined in `#include <MRCMesh/MRObjectMesh.h>`.
18typedef struct MR_ObjectMeshData MR_ObjectMeshData; // Defined in `#include <MRCMesh/MRObjectMeshData.h>`.
19typedef struct MR_UndirectedEdgeBitSet MR_UndirectedEdgeBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
20typedef struct MR_VertBitSet MR_VertBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
21typedef struct MR_expected_MR_Mesh_std_string MR_expected_MR_Mesh_std_string; // Defined in `#include <MRCMisc/expected_MR_Mesh_std_string.h>`.
22typedef struct MR_std_function_bool_from_MR_EdgeId MR_std_function_bool_from_MR_EdgeId; // Defined in `#include <MRCMisc/std_function_bool_from_MR_EdgeId.h>`.
23typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
24typedef 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>`.
25typedef struct MR_std_function_void_from_MR_VertId MR_std_function_void_from_MR_VertId; // Defined in `#include <MRCMisc/std_function_void_from_MR_VertId.h>`.
26
27
30
36
41
47
53
58
64
70
75
81
87
92
98
106
113
121
127
132
138
144
149
155
161
166
172
179
185
192
198
203
209
217
224
232
239
245
252
253// 30 degrees
258
259// 30 degrees
263
264// 30 degrees
269
275
280
286
292
297
303
309
314
320
326
331
337
343
348
354
358
363
366MRC_API MR_SubdivideSettings *MR_SubdivideSettings_ConstructFrom(float maxEdgeLen, int32_t maxEdgeSplits, float maxDeviationAfterFlip, float maxAngleChangeAfterFlip, float criticalAspectRatioFlip, MR_FaceBitSet *region, MR_UndirectedEdgeBitSet *notFlippable, MR_VertBitSet *newVerts, bool subdivideBorder, float maxTriAspectRatio, float maxSplittableTriAspectRatio, bool smoothMode, float minSharpDihedralAngle, bool projectOnOriginalMesh, MR_PassBy beforeEdgeSplit_pass_by, MR_std_function_bool_from_MR_EdgeId *beforeEdgeSplit, MR_PassBy onVertCreated_pass_by, MR_std_function_void_from_MR_VertId *onVertCreated, MR_PassBy onEdgeSplit_pass_by, MR_std_function_void_from_MR_EdgeId_MR_EdgeId *onEdgeSplit, MR_PassBy progressCallback_pass_by, MR_std_function_bool_from_float *progressCallback);
367
370
373
377
380
383
388
396
404
413
420
421#ifdef __cplusplus
422} // extern "C"
423#endif
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_MeshPart MR_MeshPart
Definition MRAABBTree.h:14
struct MR_ObjectMeshData MR_ObjectMeshData
Definition MRChangeMeshDataAction.h:14
struct MR_expected_MR_Mesh_std_string MR_expected_MR_Mesh_std_string
Definition MRCtm.h:18
struct MR_Mesh MR_Mesh
Definition MRCtm.h:13
struct MR_std_function_bool_from_MR_EdgeId MR_std_function_bool_from_MR_EdgeId
Definition MRFillHoleNicely.h:23
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_ObjectMesh MR_ObjectMesh
Definition MRMeshBooleanFacade.h:14
MRC_API const MR_std_function_bool_from_MR_EdgeId * MR_SubdivideSettings_Get_beforeEdgeSplit(const MR_SubdivideSettings *_this)
MRC_API int32_t MR_subdivideMesh_MR_ObjectMeshData(MR_ObjectMeshData *data, const MR_SubdivideSettings *settings)
MRC_API void MR_SubdivideSettings_Set_maxDeviationAfterFlip(MR_SubdivideSettings *_this, float value)
MRC_API const float * MR_SubdivideSettings_Get_maxAngleChangeAfterFlip(const MR_SubdivideSettings *_this)
MRC_API float * MR_SubdivideSettings_GetMutable_maxTriAspectRatio(MR_SubdivideSettings *_this)
MRC_API const float * MR_SubdivideSettings_Get_maxEdgeLen(const MR_SubdivideSettings *_this)
MRC_API MR_VertBitSet *const * MR_SubdivideSettings_Get_newVerts(const MR_SubdivideSettings *_this)
MRC_API const float * MR_SubdivideSettings_Get_maxTriAspectRatio(const MR_SubdivideSettings *_this)
MRC_API const float * MR_SubdivideSettings_Get_criticalAspectRatioFlip(const MR_SubdivideSettings *_this)
MRC_API MR_SubdivideSettings * MR_SubdivideSettings_DefaultConstruct(void)
MRC_API MR_std_function_bool_from_float * MR_SubdivideSettings_GetMutable_progressCallback(MR_SubdivideSettings *_this)
MRC_API int32_t * MR_SubdivideSettings_GetMutable_maxEdgeSplits(MR_SubdivideSettings *_this)
MRC_API MR_UndirectedEdgeBitSet *const * MR_SubdivideSettings_Get_notFlippable(const MR_SubdivideSettings *_this)
MRC_API MR_SubdivideSettings * MR_SubdivideSettings_DefaultConstructArray(size_t num_elems)
MRC_API void MR_SubdivideSettings_Set_smoothMode(MR_SubdivideSettings *_this, bool value)
MRC_API MR_std_function_void_from_MR_EdgeId_MR_EdgeId * MR_SubdivideSettings_GetMutable_onEdgeSplit(MR_SubdivideSettings *_this)
MRC_API void MR_SubdivideSettings_Set_subdivideBorder(MR_SubdivideSettings *_this, bool value)
MRC_API void MR_SubdivideSettings_Set_minSharpDihedralAngle(MR_SubdivideSettings *_this, float value)
MRC_API MR_SubdivideSettings * MR_SubdivideSettings_OffsetMutablePtr(MR_SubdivideSettings *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_SubdivideSettings_DestroyArray(const MR_SubdivideSettings *_this)
Destroys a heap-allocated array of MR_SubdivideSettings. Does nothing if the pointer is null.
MRC_API const float * MR_SubdivideSettings_Get_minSharpDihedralAngle(const MR_SubdivideSettings *_this)
MRC_API MR_FaceBitSet ** MR_SubdivideSettings_GetMutable_region(MR_SubdivideSettings *_this)
MRC_API MR_expected_MR_Mesh_std_string * MR_copySubdividePackMesh(const MR_MeshPart *mp, float voxelSize, const MR_std_function_bool_from_float *cb)
MRC_API const MR_SubdivideSettings * MR_SubdivideSettings_OffsetPtr(const MR_SubdivideSettings *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_SubdivideSettings_Set_onVertCreated(MR_SubdivideSettings *_this, MR_PassBy value_pass_by, MR_std_function_void_from_MR_VertId *value)
MRC_API int32_t MR_subdivideMesh_MR_Mesh(MR_Mesh *mesh, const MR_SubdivideSettings *settings)
MRC_API void MR_SubdivideSettings_Set_newVerts(MR_SubdivideSettings *_this, MR_VertBitSet *value)
MRC_API const MR_std_function_bool_from_float * MR_SubdivideSettings_Get_progressCallback(const MR_SubdivideSettings *_this)
MRC_API MR_SubdivideSettings * MR_SubdivideSettings_AssignFromAnother(MR_SubdivideSettings *_this, MR_PassBy _other_pass_by, MR_SubdivideSettings *_other)
MRC_API MR_ObjectMeshData * MR_makeSubdividedObjectMeshData(const MR_ObjectMesh *obj, const MR_SubdivideSettings *settings)
MRC_API void MR_SubdivideSettings_Set_onEdgeSplit(MR_SubdivideSettings *_this, MR_PassBy value_pass_by, MR_std_function_void_from_MR_EdgeId_MR_EdgeId *value)
MRC_API void MR_SubdivideSettings_Set_maxEdgeSplits(MR_SubdivideSettings *_this, int32_t value)
MRC_API const bool * MR_SubdivideSettings_Get_smoothMode(const MR_SubdivideSettings *_this)
MRC_API MR_SubdivideSettings * MR_SubdivideSettings_ConstructFromAnother(MR_PassBy _other_pass_by, MR_SubdivideSettings *_other)
MRC_API const float * MR_SubdivideSettings_Get_maxDeviationAfterFlip(const MR_SubdivideSettings *_this)
MRC_API void MR_SubdivideSettings_Set_maxTriAspectRatio(MR_SubdivideSettings *_this, float value)
MRC_API MR_FaceBitSet *const * MR_SubdivideSettings_Get_region(const MR_SubdivideSettings *_this)
MRC_API const MR_std_function_void_from_MR_VertId * MR_SubdivideSettings_Get_onVertCreated(const MR_SubdivideSettings *_this)
MRC_API MR_UndirectedEdgeBitSet ** MR_SubdivideSettings_GetMutable_notFlippable(MR_SubdivideSettings *_this)
MRC_API void MR_SubdivideSettings_Set_notFlippable(MR_SubdivideSettings *_this, MR_UndirectedEdgeBitSet *value)
MRC_API const bool * MR_SubdivideSettings_Get_subdivideBorder(const MR_SubdivideSettings *_this)
MRC_API void MR_SubdivideSettings_Set_maxEdgeLen(MR_SubdivideSettings *_this, float value)
MRC_API void MR_SubdivideSettings_Destroy(const MR_SubdivideSettings *_this)
Destroys a heap-allocated instance of MR_SubdivideSettings. Does nothing if the pointer is null.
MRC_API MR_std_function_void_from_MR_VertId * MR_SubdivideSettings_GetMutable_onVertCreated(MR_SubdivideSettings *_this)
MRC_API bool * MR_SubdivideSettings_GetMutable_subdivideBorder(MR_SubdivideSettings *_this)
MRC_API void MR_SubdivideSettings_Set_projectOnOriginalMesh(MR_SubdivideSettings *_this, bool value)
MRC_API void MR_SubdivideSettings_Set_maxSplittableTriAspectRatio(MR_SubdivideSettings *_this, float value)
struct MR_std_function_void_from_MR_VertId MR_std_function_void_from_MR_VertId
Definition MRMeshSubdivide.h:25
MRC_API void MR_SubdivideSettings_Set_region(MR_SubdivideSettings *_this, MR_FaceBitSet *value)
MRC_API const MR_std_function_void_from_MR_EdgeId_MR_EdgeId * MR_SubdivideSettings_Get_onEdgeSplit(const MR_SubdivideSettings *_this)
MRC_API float * MR_SubdivideSettings_GetMutable_maxAngleChangeAfterFlip(MR_SubdivideSettings *_this)
MRC_API void MR_SubdivideSettings_Set_criticalAspectRatioFlip(MR_SubdivideSettings *_this, float value)
MRC_API MR_SubdivideSettings * MR_SubdivideSettings_ConstructFrom(float maxEdgeLen, int32_t maxEdgeSplits, float maxDeviationAfterFlip, float maxAngleChangeAfterFlip, float criticalAspectRatioFlip, MR_FaceBitSet *region, MR_UndirectedEdgeBitSet *notFlippable, MR_VertBitSet *newVerts, bool subdivideBorder, float maxTriAspectRatio, float maxSplittableTriAspectRatio, bool smoothMode, float minSharpDihedralAngle, bool projectOnOriginalMesh, MR_PassBy beforeEdgeSplit_pass_by, MR_std_function_bool_from_MR_EdgeId *beforeEdgeSplit, MR_PassBy onVertCreated_pass_by, MR_std_function_void_from_MR_VertId *onVertCreated, MR_PassBy onEdgeSplit_pass_by, MR_std_function_void_from_MR_EdgeId_MR_EdgeId *onEdgeSplit, MR_PassBy progressCallback_pass_by, MR_std_function_bool_from_float *progressCallback)
MRC_API MR_std_function_bool_from_MR_EdgeId * MR_SubdivideSettings_GetMutable_beforeEdgeSplit(MR_SubdivideSettings *_this)
MRC_API bool * MR_SubdivideSettings_GetMutable_smoothMode(MR_SubdivideSettings *_this)
MRC_API void MR_SubdivideSettings_Set_beforeEdgeSplit(MR_SubdivideSettings *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_MR_EdgeId *value)
MRC_API float * MR_SubdivideSettings_GetMutable_maxSplittableTriAspectRatio(MR_SubdivideSettings *_this)
MRC_API float * MR_SubdivideSettings_GetMutable_maxDeviationAfterFlip(MR_SubdivideSettings *_this)
MRC_API float * MR_SubdivideSettings_GetMutable_maxEdgeLen(MR_SubdivideSettings *_this)
MRC_API const float * MR_SubdivideSettings_Get_maxSplittableTriAspectRatio(const MR_SubdivideSettings *_this)
MRC_API bool * MR_SubdivideSettings_GetMutable_projectOnOriginalMesh(MR_SubdivideSettings *_this)
MRC_API void MR_SubdivideSettings_Set_progressCallback(MR_SubdivideSettings *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value)
MRC_API float * MR_SubdivideSettings_GetMutable_criticalAspectRatioFlip(MR_SubdivideSettings *_this)
MRC_API float * MR_SubdivideSettings_GetMutable_minSharpDihedralAngle(MR_SubdivideSettings *_this)
MRC_API MR_VertBitSet ** MR_SubdivideSettings_GetMutable_newVerts(MR_SubdivideSettings *_this)
MRC_API const int32_t * MR_SubdivideSettings_Get_maxEdgeSplits(const MR_SubdivideSettings *_this)
MRC_API const bool * MR_SubdivideSettings_Get_projectOnOriginalMesh(const MR_SubdivideSettings *_this)
struct MR_SubdivideSettings MR_SubdivideSettings
Generated from class MR::SubdivideSettings.
Definition MRMeshSubdivide.h:29
MRC_API void MR_SubdivideSettings_Set_maxAngleChangeAfterFlip(MR_SubdivideSettings *_this, float value)
MR_PassBy
Definition common.h:19
#define MRC_API
Definition exports.h:11