MeshLib C Docs
Loading...
Searching...
No Matches
MRVDBConversions.h
Go to the documentation of this file.
1#pragma once
2
4#include <MRCMesh/MRBox.h>
5#include <MRCMesh/MRVector3.h>
6#include <MRCMisc/common.h>
7#include <MRCMisc/exports.h>
8
9#include <stdbool.h>
10#include <stddef.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16typedef struct MR_Box3i MR_Box3i; // Defined in `#include <MRCMesh/MRBox.h>`.
17typedef struct MR_FloatGrid MR_FloatGrid; // Defined in `#include <MRCVoxels/MRFloatGrid.h>`.
18typedef struct MR_FunctionVolume MR_FunctionVolume; // Defined in `#include <MRCVoxels/MRVoxelsVolume.h>`.
19typedef struct MR_Mesh MR_Mesh; // Defined in `#include <MRCMesh/MRMesh.h>`.
20typedef struct MR_MeshPart MR_MeshPart; // Defined in `#include <MRCMesh/MRMeshPart.h>`.
21typedef struct MR_SimpleVolume MR_SimpleVolume; // Defined in `#include <MRCVoxels/MRVoxelsVolume.h>`.
22typedef struct MR_SimpleVolumeMinMax MR_SimpleVolumeMinMax; // Defined in `#include <MRCVoxels/MRVoxelsVolume.h>`.
23typedef struct MR_VdbVolume MR_VdbVolume; // Defined in `#include <MRCVoxels/MRVoxelsVolume.h>`.
24typedef struct MR_expected_MR_Mesh_std_string MR_expected_MR_Mesh_std_string; // Defined in `#include <MRCMisc/expected_MR_Mesh_std_string.h>`.
25typedef struct MR_expected_MR_SimpleVolumeMinMaxU16_std_string MR_expected_MR_SimpleVolumeMinMaxU16_std_string; // Defined in `#include <MRCMisc/expected_MR_SimpleVolumeMinMaxU16_std_string.h>`.
26typedef struct MR_expected_MR_SimpleVolumeMinMax_std_string MR_expected_MR_SimpleVolumeMinMax_std_string; // Defined in `#include <MRCMisc/expected_MR_SimpleVolumeMinMax_std_string.h>`.
27typedef struct MR_expected_MR_VdbVolume_std_string MR_expected_MR_VdbVolume_std_string; // Defined in `#include <MRCMisc/expected_MR_VdbVolume_std_string.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_std_function_bool_from_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
30typedef struct MR_std_shared_ptr_MR_IFastWindingNumber MR_std_shared_ptr_MR_IFastWindingNumber; // Defined in `#include <MRCMisc/std_shared_ptr_MR_IFastWindingNumber.h>`.
31
32
33// Conversion type
35{
36 // only closed meshes can be converted with signed type
38 // this type leads to shell like iso-surfaces
41
42// Parameters structure for meshToVolume function
46
51
55
59
60// closed surface is required
61// surfaceOffset - number voxels around surface to calculate distance in (should be positive)
62// returns null if was canceled by progress callback
70MRC_API MR_FloatGrid *MR_meshToLevelSet(const MR_MeshPart *mp, const MR_AffineXf3f *xf, const MR_Vector3f *voxelSize, const float *surfaceOffset, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb);
71
72// does not require closed surface, resulting grid cannot be used for boolean operations,
73// surfaceOffset - the number of voxels around surface to calculate distance in (should be positive)
74// returns null if was canceled by progress callback
82MRC_API MR_FloatGrid *MR_meshToDistanceField(const MR_MeshPart *mp, const MR_AffineXf3f *xf, const MR_Vector3f *voxelSize, const float *surfaceOffset, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb);
83
89
95
101
102// the number of voxels around surface to calculate distance in (should be positive)
108
109// the number of voxels around surface to calculate distance in (should be positive)
114
115// the number of voxels around surface to calculate distance in (should be positive)
121
127
133
139
140// mesh initial transform
146
147// mesh initial transform
153
154// mesh initial transform
160
161// optional output: xf to original mesh (respecting worldXf)
167
168// optional output: xf to original mesh (respecting worldXf)
174
175// optional output: xf to original mesh (respecting worldXf)
181
187
192MRC_API void MR_MeshToVolumeParams_Set_cb(MR_MeshToVolumeParams *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value);
193
199
203
208
218
222
226
231
234
237
244
245// eval min max value from FloatGrid
250MRC_API void MR_evalGridMinMax(const MR_FloatGrid *grid, float *min, float *max);
251
261
272
273// fills VdbVolume data from FloatGrid (does not fill voxels size, cause we expect it outside)
276MRC_API MR_VdbVolume *MR_floatGridToVdbVolume(MR_PassBy grid_pass_by, MR_FloatGrid *grid);
277
278// make FloatGrid from SimpleVolume
279// make copy of data
280// background - the new background value for FloatGrid
281// grid can be used to make iso-surface later with gridToMesh function
287MRC_API MR_FloatGrid *MR_simpleVolumeToDenseGrid(const MR_SimpleVolume *simpleVolume, const float *background, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb);
288
289// set the simpleVolume.min as the background value
295
296// make VdbVolume from FunctionVolume
297// make copy of data
298// set minimum value as the background value
303MRC_API MR_VdbVolume *MR_functionVolumeToVdbVolume(const MR_FunctionVolume *functoinVolume, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb);
304
305// make SimpleVolume from VdbVolume
306// make copy of data
314
328MRC_API MR_expected_MR_SimpleVolumeMinMax_std_string *MR_vdbVolumeToSimpleVolumeNorm(const MR_VdbVolume *vdbVolume, const MR_Box3i *activeBox, const MR_Box1f *sourceScale, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb);
329
343MRC_API MR_expected_MR_SimpleVolumeMinMaxU16_std_string *MR_vdbVolumeToSimpleVolumeU16(const MR_VdbVolume *vdbVolume, const MR_Box3i *activeBox, const MR_Box1f *sourceScale, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb);
344
351
358
365
372
378
385
392
398
405
412
418
425
432
438
445
451
456
462
469
475MRC_API void MR_GridToMeshSettings_Set_cb(MR_GridToMeshSettings *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value);
476
483
487
492
498MRC_API MR_GridToMeshSettings *MR_GridToMeshSettings_ConstructFrom(MR_Vector3f voxelSize, float isoValue, float adaptivity, int maxFaces, int maxVertices, bool relaxDisorientedTriangles, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb);
499
503
507
512
515
518
525
532
542
549
556
563
570
577
584
592
599
607
614
620
627
634
641
648
652
657
664MRC_API MR_MakeSignedByWindingNumberSettings *MR_MakeSignedByWindingNumberSettings_ConstructFrom(MR_AffineXf3f meshToGridXf, MR_PassBy fwn_pass_by, MR_std_shared_ptr_MR_IFastWindingNumber *fwn, float windingNumberThreshold, float windingNumberBeta, MR_PassBy progress_pass_by, MR_std_function_bool_from_float *progress);
665
669
673
678
681
684
691
700
707
713
720
727
733
740
747
753
760
767
773
780
787
794
801
809
816
824
831
837
844
851
858
865
869
874
880MRC_API MR_DoubleOffsetSettings *MR_DoubleOffsetSettings_ConstructFrom(float voxelSize, float offsetA, float offsetB, float adaptivity, MR_PassBy fwn_pass_by, MR_std_shared_ptr_MR_IFastWindingNumber *fwn, float windingNumberThreshold, float windingNumberBeta, MR_PassBy progress_pass_by, MR_std_function_bool_from_float *progress);
881
885
889
894
897
900
907
915
916#ifdef __cplusplus
917} // extern "C"
918#endif
struct MR_std_function_bool_from_float MR_std_function_bool_from_float
Definition MR3mf.h:10
struct MR_MeshPart MR_MeshPart
Definition MRAABBTree.h:19
struct MR_FloatGrid MR_FloatGrid
Definition MRBoolean.h:13
struct MR_VdbVolume MR_VdbVolume
Definition MRBox.h:18
struct MR_SimpleVolumeMinMax MR_SimpleVolumeMinMax
Definition MRBox.h:16
struct MR_expected_void_std_string MR_expected_void_std_string
Definition MRCtm.h:26
struct MR_expected_MR_Mesh_std_string MR_expected_MR_Mesh_std_string
Definition MRCtm.h:24
struct MR_Mesh MR_Mesh
Definition MRCtm.h:16
struct MR_FunctionVolume MR_FunctionVolume
Definition MRFillingSurface.h:14
struct MR_SimpleVolume MR_SimpleVolume
Definition MRMarchingCubes.h:16
struct MR_std_shared_ptr_MR_IFastWindingNumber MR_std_shared_ptr_MR_IFastWindingNumber
Definition MRMeshToDistanceVolume.h:23
struct MR_expected_MR_SimpleVolumeMinMax_std_string MR_expected_MR_SimpleVolumeMinMax_std_string
Definition MRMeshToDistanceVolume.h:21
struct MR_expected_MR_VdbVolume_std_string MR_expected_MR_VdbVolume_std_string
Definition MRPolylineToVoxels.h:20
MRC_API void MR_DoubleOffsetSettings_DestroyArray(const MR_DoubleOffsetSettings *_this)
Destroys a heap-allocated array of MR_DoubleOffsetSettings. Does nothing if the pointer is null.
MRC_API void MR_MeshToVolumeParams_Set_type(MR_MeshToVolumeParams *_this, MR_MeshToVolumeParams_Type value)
MRC_API MR_MakeSignedByWindingNumberSettings * MR_MakeSignedByWindingNumberSettings_ConstructFrom(MR_AffineXf3f meshToGridXf, MR_PassBy fwn_pass_by, MR_std_shared_ptr_MR_IFastWindingNumber *fwn, float windingNumberThreshold, float windingNumberBeta, MR_PassBy progress_pass_by, MR_std_function_bool_from_float *progress)
MRC_API const MR_DoubleOffsetSettings * MR_DoubleOffsetSettings_OffsetPtr(const MR_DoubleOffsetSettings *ptr, ptrdiff_t i)
MRC_API const MR_MeshToVolumeParams * MR_MeshToVolumeParams_OffsetPtr(const MR_MeshToVolumeParams *ptr, ptrdiff_t i)
MRC_API void MR_GridToMeshSettings_Set_maxVertices(MR_GridToMeshSettings *_this, int value)
MRC_API void MR_DoubleOffsetSettings_Set_offsetB(MR_DoubleOffsetSettings *_this, float value)
MRC_API const MR_std_shared_ptr_MR_IFastWindingNumber * MR_DoubleOffsetSettings_Get_fwn(const MR_DoubleOffsetSettings *_this)
MRC_API MR_expected_MR_Mesh_std_string * MR_gridToMesh_MR_FloatGrid_rvalue_ref(MR_FloatGrid *grid, const MR_GridToMeshSettings *settings)
MRC_API MR_AffineXf3f * MR_MeshToVolumeParams_GetMutable_worldXf(MR_MeshToVolumeParams *_this)
MRC_API void MR_GridToMeshSettings_Set_cb(MR_GridToMeshSettings *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value)
MRC_API MR_MakeSignedByWindingNumberSettings * MR_MakeSignedByWindingNumberSettings_AssignFromAnother(MR_MakeSignedByWindingNumberSettings *_this, MR_PassBy _other_pass_by, MR_MakeSignedByWindingNumberSettings *_other)
MRC_API MR_expected_MR_VdbVolume_std_string * MR_meshToDistanceVdbVolume(const MR_MeshPart *mp, const MR_MeshToVolumeParams *params)
MRC_API MR_FloatGrid * MR_meshToDistanceField(const MR_MeshPart *mp, const MR_AffineXf3f *xf, const MR_Vector3f *voxelSize, const float *surfaceOffset, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API MR_std_shared_ptr_MR_IFastWindingNumber * MR_DoubleOffsetSettings_GetMutable_fwn(MR_DoubleOffsetSettings *_this)
MRC_API float * MR_GridToMeshSettings_GetMutable_isoValue(MR_GridToMeshSettings *_this)
MRC_API void MR_MakeSignedByWindingNumberSettings_Set_meshToGridXf(MR_MakeSignedByWindingNumberSettings *_this, MR_AffineXf3f value)
MRC_API MR_std_function_bool_from_float * MR_MeshToVolumeParams_GetMutable_cb(MR_MeshToVolumeParams *_this)
MRC_API void MR_MeshToVolumeParams_Set_worldXf(MR_MeshToVolumeParams *_this, MR_AffineXf3f value)
MRC_API MR_MeshToVolumeParams * MR_MeshToVolumeParams_DefaultConstructArray(size_t num_elems)
MRC_API int * MR_GridToMeshSettings_GetMutable_maxVertices(MR_GridToMeshSettings *_this)
MRC_API float * MR_DoubleOffsetSettings_GetMutable_voxelSize(MR_DoubleOffsetSettings *_this)
MRC_API MR_std_function_bool_from_float * MR_MakeSignedByWindingNumberSettings_GetMutable_progress(MR_MakeSignedByWindingNumberSettings *_this)
MRC_API MR_MeshToVolumeParams * MR_MeshToVolumeParams_AssignFromAnother(MR_MeshToVolumeParams *_this, MR_PassBy _other_pass_by, MR_MeshToVolumeParams *_other)
MRC_API float * MR_DoubleOffsetSettings_GetMutable_windingNumberThreshold(MR_DoubleOffsetSettings *_this)
MRC_API const MR_Vector3f * MR_GridToMeshSettings_Get_voxelSize(const MR_GridToMeshSettings *_this)
MRC_API float * MR_MakeSignedByWindingNumberSettings_GetMutable_windingNumberThreshold(MR_MakeSignedByWindingNumberSettings *_this)
MRC_API MR_expected_MR_SimpleVolumeMinMax_std_string * MR_vdbVolumeToSimpleVolume(const MR_VdbVolume *vdbVolume, const MR_Box3i *activeBox, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API float * MR_DoubleOffsetSettings_GetMutable_offsetB(MR_DoubleOffsetSettings *_this)
MRC_API MR_DoubleOffsetSettings * MR_DoubleOffsetSettings_DefaultConstructArray(size_t num_elems)
MRC_API MR_expected_MR_Mesh_std_string * MR_doubleOffsetVdb(const MR_MeshPart *mp, const MR_DoubleOffsetSettings *settings)
MRC_API void MR_MeshToVolumeParams_Set_voxelSize(MR_MeshToVolumeParams *_this, MR_Vector3f value)
MRC_API const float * MR_DoubleOffsetSettings_Get_windingNumberThreshold(const MR_DoubleOffsetSettings *_this)
MRC_API MR_MeshToVolumeParams * MR_MeshToVolumeParams_ConstructFrom(MR_MeshToVolumeParams_Type type, float surfaceOffset, MR_Vector3f voxelSize, MR_AffineXf3f worldXf, MR_AffineXf3f *outXf, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API MR_DoubleOffsetSettings * MR_DoubleOffsetSettings_ConstructFrom(float voxelSize, float offsetA, float offsetB, float adaptivity, MR_PassBy fwn_pass_by, MR_std_shared_ptr_MR_IFastWindingNumber *fwn, float windingNumberThreshold, float windingNumberBeta, MR_PassBy progress_pass_by, MR_std_function_bool_from_float *progress)
MRC_API void MR_MeshToVolumeParams_Set_cb(MR_MeshToVolumeParams *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value)
MRC_API const float * MR_DoubleOffsetSettings_Get_offsetA(const MR_DoubleOffsetSettings *_this)
MRC_API void MR_GridToMeshSettings_Set_maxFaces(MR_GridToMeshSettings *_this, int value)
struct MR_MeshToVolumeParams MR_MeshToVolumeParams
Definition MRVDBConversions.h:45
struct MR_expected_MR_SimpleVolumeMinMaxU16_std_string MR_expected_MR_SimpleVolumeMinMaxU16_std_string
Definition MRVDBConversions.h:25
MRC_API MR_DoubleOffsetSettings * MR_DoubleOffsetSettings_OffsetMutablePtr(MR_DoubleOffsetSettings *ptr, ptrdiff_t i)
MRC_API MR_AffineXf3f *const * MR_MeshToVolumeParams_Get_outXf(const MR_MeshToVolumeParams *_this)
MRC_API MR_AffineXf3f * MR_MakeSignedByWindingNumberSettings_GetMutable_meshToGridXf(MR_MakeSignedByWindingNumberSettings *_this)
MRC_API void MR_GridToMeshSettings_Set_isoValue(MR_GridToMeshSettings *_this, float value)
MRC_API void MR_MakeSignedByWindingNumberSettings_Set_fwn(MR_MakeSignedByWindingNumberSettings *_this, MR_PassBy value_pass_by, MR_std_shared_ptr_MR_IFastWindingNumber *value)
MRC_API const float * MR_GridToMeshSettings_Get_adaptivity(const MR_GridToMeshSettings *_this)
MRC_API MR_MakeSignedByWindingNumberSettings * MR_MakeSignedByWindingNumberSettings_DefaultConstruct(void)
MRC_API const float * MR_DoubleOffsetSettings_Get_voxelSize(const MR_DoubleOffsetSettings *_this)
MRC_API void MR_MeshToVolumeParams_DestroyArray(const MR_MeshToVolumeParams *_this)
Destroys a heap-allocated array of MR_MeshToVolumeParams. Does nothing if the pointer is null.
MRC_API const MR_MakeSignedByWindingNumberSettings * MR_MakeSignedByWindingNumberSettings_OffsetPtr(const MR_MakeSignedByWindingNumberSettings *ptr, ptrdiff_t i)
MRC_API MR_MeshToVolumeParams_Type * MR_MeshToVolumeParams_GetMutable_type(MR_MeshToVolumeParams *_this)
MRC_API MR_Vector3f * MR_GridToMeshSettings_GetMutable_voxelSize(MR_GridToMeshSettings *_this)
MRC_API void MR_DoubleOffsetSettings_Set_voxelSize(MR_DoubleOffsetSettings *_this, float value)
MRC_API MR_FloatGrid * MR_simpleVolumeToDenseGrid(const MR_SimpleVolume *simpleVolume, const float *background, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API float * MR_DoubleOffsetSettings_GetMutable_windingNumberBeta(MR_DoubleOffsetSettings *_this)
MRC_API const MR_std_function_bool_from_float * MR_MakeSignedByWindingNumberSettings_Get_progress(const MR_MakeSignedByWindingNumberSettings *_this)
MRC_API const float * MR_DoubleOffsetSettings_Get_adaptivity(const MR_DoubleOffsetSettings *_this)
MRC_API const bool * MR_GridToMeshSettings_Get_relaxDisorientedTriangles(const MR_GridToMeshSettings *_this)
MRC_API void MR_MakeSignedByWindingNumberSettings_Destroy(const MR_MakeSignedByWindingNumberSettings *_this)
Destroys a heap-allocated instance of MR_MakeSignedByWindingNumberSettings. Does nothing if the point...
MRC_API MR_GridToMeshSettings * MR_GridToMeshSettings_ConstructFromAnother(MR_PassBy _other_pass_by, MR_GridToMeshSettings *_other)
MRC_API MR_MeshToVolumeParams * MR_MeshToVolumeParams_ConstructFromAnother(MR_PassBy _other_pass_by, MR_MeshToVolumeParams *_other)
MRC_API float * MR_MakeSignedByWindingNumberSettings_GetMutable_windingNumberBeta(MR_MakeSignedByWindingNumberSettings *_this)
MRC_API void MR_DoubleOffsetSettings_Set_windingNumberBeta(MR_DoubleOffsetSettings *_this, float value)
MRC_API void MR_GridToMeshSettings_Destroy(const MR_GridToMeshSettings *_this)
Destroys a heap-allocated instance of MR_GridToMeshSettings. Does nothing if the pointer is null.
MRC_API MR_FloatGrid * MR_meshToLevelSet(const MR_MeshPart *mp, const MR_AffineXf3f *xf, const MR_Vector3f *voxelSize, const float *surfaceOffset, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API const MR_Vector3f * MR_MeshToVolumeParams_Get_voxelSize(const MR_MeshToVolumeParams *_this)
MRC_API void MR_MeshToVolumeParams_Set_outXf(MR_MeshToVolumeParams *_this, MR_AffineXf3f *value)
MRC_API float * MR_DoubleOffsetSettings_GetMutable_adaptivity(MR_DoubleOffsetSettings *_this)
MRC_API void MR_MakeSignedByWindingNumberSettings_Set_windingNumberThreshold(MR_MakeSignedByWindingNumberSettings *_this, float value)
MRC_API void MR_DoubleOffsetSettings_Set_adaptivity(MR_DoubleOffsetSettings *_this, float value)
MRC_API MR_GridToMeshSettings * MR_GridToMeshSettings_DefaultConstructArray(size_t num_elems)
MRC_API void MR_GridToMeshSettings_DestroyArray(const MR_GridToMeshSettings *_this)
Destroys a heap-allocated array of MR_GridToMeshSettings. Does nothing if the pointer is null.
MRC_API MR_GridToMeshSettings * MR_GridToMeshSettings_OffsetMutablePtr(MR_GridToMeshSettings *ptr, ptrdiff_t i)
MRC_API const MR_AffineXf3f * MR_MeshToVolumeParams_Get_worldXf(const MR_MeshToVolumeParams *_this)
MRC_API void MR_DoubleOffsetSettings_Destroy(const MR_DoubleOffsetSettings *_this)
Destroys a heap-allocated instance of MR_DoubleOffsetSettings. Does nothing if the pointer is null.
struct MR_GridToMeshSettings MR_GridToMeshSettings
Definition MRVDBConversions.h:50
MRC_API void MR_GridToMeshSettings_Set_relaxDisorientedTriangles(MR_GridToMeshSettings *_this, bool value)
MRC_API const float * MR_MakeSignedByWindingNumberSettings_Get_windingNumberBeta(const MR_MakeSignedByWindingNumberSettings *_this)
MRC_API const MR_GridToMeshSettings * MR_GridToMeshSettings_OffsetPtr(const MR_GridToMeshSettings *ptr, ptrdiff_t i)
MRC_API MR_VdbVolume * MR_floatGridToVdbVolume(MR_PassBy grid_pass_by, MR_FloatGrid *grid)
MRC_API MR_MakeSignedByWindingNumberSettings * MR_MakeSignedByWindingNumberSettings_OffsetMutablePtr(MR_MakeSignedByWindingNumberSettings *ptr, ptrdiff_t i)
MRC_API void MR_DoubleOffsetSettings_Set_offsetA(MR_DoubleOffsetSettings *_this, float value)
MRC_API MR_expected_void_std_string * MR_makeSignedByWindingNumber(MR_FloatGrid *grid, const MR_Vector3f *voxelSize, const MR_Mesh *refMesh, const MR_MakeSignedByWindingNumberSettings *settings)
MRC_API void MR_MeshToVolumeParams_Set_surfaceOffset(MR_MeshToVolumeParams *_this, float value)
MRC_API MR_DoubleOffsetSettings * MR_DoubleOffsetSettings_DefaultConstruct(void)
MRC_API MR_expected_MR_SimpleVolumeMinMaxU16_std_string * MR_vdbVolumeToSimpleVolumeU16(const MR_VdbVolume *vdbVolume, const MR_Box3i *activeBox, const MR_Box1f *sourceScale, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API MR_expected_MR_Mesh_std_string * MR_gridToMesh_const_MR_FloatGrid_ref(const MR_FloatGrid *grid, const MR_GridToMeshSettings *settings)
MRC_API MR_GridToMeshSettings * MR_GridToMeshSettings_AssignFromAnother(MR_GridToMeshSettings *_this, MR_PassBy _other_pass_by, MR_GridToMeshSettings *_other)
MRC_API const MR_std_function_bool_from_float * MR_DoubleOffsetSettings_Get_progress(const MR_DoubleOffsetSettings *_this)
MRC_API MR_std_shared_ptr_MR_IFastWindingNumber * MR_MakeSignedByWindingNumberSettings_GetMutable_fwn(MR_MakeSignedByWindingNumberSettings *_this)
MRC_API MR_std_function_bool_from_float * MR_DoubleOffsetSettings_GetMutable_progress(MR_DoubleOffsetSettings *_this)
MRC_API const MR_AffineXf3f * MR_MakeSignedByWindingNumberSettings_Get_meshToGridXf(const MR_MakeSignedByWindingNumberSettings *_this)
struct MR_MakeSignedByWindingNumberSettings MR_MakeSignedByWindingNumberSettings
Definition MRVDBConversions.h:54
MRC_API const MR_MeshToVolumeParams_Type * MR_MeshToVolumeParams_Get_type(const MR_MeshToVolumeParams *_this)
MRC_API MR_MakeSignedByWindingNumberSettings * MR_MakeSignedByWindingNumberSettings_DefaultConstructArray(size_t num_elems)
MRC_API MR_Vector3f * MR_MeshToVolumeParams_GetMutable_voxelSize(MR_MeshToVolumeParams *_this)
MRC_API const MR_std_function_bool_from_float * MR_MeshToVolumeParams_Get_cb(const MR_MeshToVolumeParams *_this)
MRC_API void MR_DoubleOffsetSettings_Set_windingNumberThreshold(MR_DoubleOffsetSettings *_this, float value)
MRC_API float * MR_DoubleOffsetSettings_GetMutable_offsetA(MR_DoubleOffsetSettings *_this)
MRC_API void MR_evalGridMinMax(const MR_FloatGrid *grid, float *min, float *max)
MRC_API MR_GridToMeshSettings * MR_GridToMeshSettings_DefaultConstruct(void)
MRC_API const MR_std_shared_ptr_MR_IFastWindingNumber * MR_MakeSignedByWindingNumberSettings_Get_fwn(const MR_MakeSignedByWindingNumberSettings *_this)
MRC_API int * MR_GridToMeshSettings_GetMutable_maxFaces(MR_GridToMeshSettings *_this)
MRC_API void MR_MeshToVolumeParams_Destroy(const MR_MeshToVolumeParams *_this)
Destroys a heap-allocated instance of MR_MeshToVolumeParams. Does nothing if the pointer is null.
MRC_API MR_VdbVolume * MR_functionVolumeToVdbVolume(const MR_FunctionVolume *functoinVolume, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API MR_std_function_bool_from_float * MR_GridToMeshSettings_GetMutable_cb(MR_GridToMeshSettings *_this)
MRC_API void MR_DoubleOffsetSettings_Set_fwn(MR_DoubleOffsetSettings *_this, MR_PassBy value_pass_by, MR_std_shared_ptr_MR_IFastWindingNumber *value)
MRC_API void MR_MakeSignedByWindingNumberSettings_Set_progress(MR_MakeSignedByWindingNumberSettings *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value)
MRC_API const float * MR_MakeSignedByWindingNumberSettings_Get_windingNumberThreshold(const MR_MakeSignedByWindingNumberSettings *_this)
MRC_API MR_GridToMeshSettings * MR_GridToMeshSettings_ConstructFrom(MR_Vector3f voxelSize, float isoValue, float adaptivity, int maxFaces, int maxVertices, bool relaxDisorientedTriangles, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API MR_expected_MR_SimpleVolumeMinMax_std_string * MR_vdbVolumeToSimpleVolumeNorm(const MR_VdbVolume *vdbVolume, const MR_Box3i *activeBox, const MR_Box1f *sourceScale, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API void MR_GridToMeshSettings_Set_voxelSize(MR_GridToMeshSettings *_this, MR_Vector3f value)
struct MR_DoubleOffsetSettings MR_DoubleOffsetSettings
Definition MRVDBConversions.h:58
MRC_API const float * MR_DoubleOffsetSettings_Get_windingNumberBeta(const MR_DoubleOffsetSettings *_this)
MRC_API void MR_MakeSignedByWindingNumberSettings_DestroyArray(const MR_MakeSignedByWindingNumberSettings *_this)
Destroys a heap-allocated array of MR_MakeSignedByWindingNumberSettings. Does nothing if the pointer ...
MRC_API MR_MeshToVolumeParams * MR_MeshToVolumeParams_DefaultConstruct(void)
MRC_API float * MR_GridToMeshSettings_GetMutable_adaptivity(MR_GridToMeshSettings *_this)
MRC_API void MR_DoubleOffsetSettings_Set_progress(MR_DoubleOffsetSettings *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value)
MRC_API bool * MR_GridToMeshSettings_GetMutable_relaxDisorientedTriangles(MR_GridToMeshSettings *_this)
MRC_API MR_DoubleOffsetSettings * MR_DoubleOffsetSettings_AssignFromAnother(MR_DoubleOffsetSettings *_this, MR_PassBy _other_pass_by, MR_DoubleOffsetSettings *_other)
MRC_API const MR_std_function_bool_from_float * MR_GridToMeshSettings_Get_cb(const MR_GridToMeshSettings *_this)
MR_MeshToVolumeParams_Type
Definition MRVDBConversions.h:35
@ MR_MeshToVolumeParams_Type_Signed
Definition MRVDBConversions.h:37
@ MR_MeshToVolumeParams_Type_Unsigned
Definition MRVDBConversions.h:39
MRC_API MR_VdbVolume * MR_simpleVolumeToVdbVolume(const MR_SimpleVolumeMinMax *simpleVolume, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API MR_expected_MR_VdbVolume_std_string * MR_meshToVolume(const MR_MeshPart *mp, const MR_MeshToVolumeParams *params)
MRC_API const float * MR_DoubleOffsetSettings_Get_offsetB(const MR_DoubleOffsetSettings *_this)
MRC_API MR_AffineXf3f ** MR_MeshToVolumeParams_GetMutable_outXf(MR_MeshToVolumeParams *_this)
MRC_API float * MR_MeshToVolumeParams_GetMutable_surfaceOffset(MR_MeshToVolumeParams *_this)
MRC_API const float * MR_GridToMeshSettings_Get_isoValue(const MR_GridToMeshSettings *_this)
MRC_API const int * MR_GridToMeshSettings_Get_maxFaces(const MR_GridToMeshSettings *_this)
MRC_API const float * MR_MeshToVolumeParams_Get_surfaceOffset(const MR_MeshToVolumeParams *_this)
MRC_API void MR_MakeSignedByWindingNumberSettings_Set_windingNumberBeta(MR_MakeSignedByWindingNumberSettings *_this, float value)
MRC_API MR_MeshToVolumeParams * MR_MeshToVolumeParams_OffsetMutablePtr(MR_MeshToVolumeParams *ptr, ptrdiff_t i)
MRC_API const int * MR_GridToMeshSettings_Get_maxVertices(const MR_GridToMeshSettings *_this)
MRC_API MR_DoubleOffsetSettings * MR_DoubleOffsetSettings_ConstructFromAnother(MR_PassBy _other_pass_by, MR_DoubleOffsetSettings *_other)
MRC_API void MR_GridToMeshSettings_Set_adaptivity(MR_GridToMeshSettings *_this, float value)
MRC_API MR_MakeSignedByWindingNumberSettings * MR_MakeSignedByWindingNumberSettings_ConstructFromAnother(MR_PassBy _other_pass_by, MR_MakeSignedByWindingNumberSettings *_other)
Definition MRAffineXf.h:39
Definition MRBox.h:46
Definition MRBox.h:94
Generated from class MR::Vector3f.
Definition MRVector3.h:47