MeshLib C Docs
Loading...
Searching...
No Matches
MRMeshBoolean.h
Go to the documentation of this file.
1#pragma once
2
4#include <MRCMisc/common.h>
5#include <MRCMisc/exports.h>
6
7#include <stdbool.h>
8#include <stddef.h>
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14typedef struct MR_AffineXf3f MR_AffineXf3f; // Defined in `#include <MRCMesh/MRAffineXf.h>`.
15typedef struct MR_BooleanResultMapper MR_BooleanResultMapper; // Defined in `#include <MRCMesh/MRBooleanOperation.h>`.
16typedef struct MR_CoordinateConverters MR_CoordinateConverters; // Defined in `#include <MRCMesh/MRPrecisePredicates3.h>`.
17typedef struct MR_FaceBitSet MR_FaceBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
18typedef struct MR_Mesh MR_Mesh; // Defined in `#include <MRCMesh/MRMesh.h>`.
19typedef struct MR_VertBitSet MR_VertBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
20typedef struct MR_expected_MR_BooleanResultPoints_std_string MR_expected_MR_BooleanResultPoints_std_string; // Defined in `#include <MRCMisc/expected_MR_BooleanResultPoints_std_string.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_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
23typedef struct MR_std_string MR_std_string; // Defined in `#include <MRCMisc/std_string.h>`.
24typedef struct MR_std_vector_MR_OneMeshContour MR_std_vector_MR_OneMeshContour; // Defined in `#include <MRCMisc/std_vector_MR_OneMeshContour.h>`.
25typedef struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f; // Defined in `#include <MRCMisc/std_vector_MR_Vector3f.h>`.
26typedef 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>`.
27typedef struct MR_std_vector_std_vector_MR_Vector3f MR_std_vector_std_vector_MR_Vector3f; // Defined in `#include <MRCMisc/std_vector_std_vector_MR_Vector3f.h>`.
28
29
38
41
48
52
58
63
69
75
80
86
92
97
103
109
115MRC_API void MR_BooleanResult_Set_errorString(MR_BooleanResult *_this, const char *value, const char *value_end);
116
122
126
131
136MRC_API MR_BooleanResult *MR_BooleanResult_ConstructFrom(MR_PassBy mesh_pass_by, MR_Mesh *mesh, MR_PassBy meshABadContourFaces_pass_by, MR_FaceBitSet *meshABadContourFaces, MR_PassBy meshBBadContourFaces_pass_by, MR_FaceBitSet *meshBBadContourFaces, const char *errorString, const char *errorString_end);
137
140
143
147
150
153
157
162
167
172
177
181
185
208
220
225
229
234
239
243
248
252
257
261
264
267
271
274
277
282
288
293
299
305
310
316
322
327
333
339
344
350
356
361
367
374
380
387
395
402
410
415
419
424
428
433
436MRC_API MR_BooleanParameters *MR_BooleanParameters_ConstructFrom(const MR_AffineXf3f *rigidB2A, MR_BooleanResultMapper *mapper, MR_BooleanPreCutResult *outPreCutA, MR_BooleanPreCutResult *outPreCutB, MR_std_vector_std_vector_MR_EdgeId *outCutEdges, bool mergeAllNonIntersectingComponents, bool forceCut, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb);
437
440
443
447
450
453
458
466
478
485
493
498
502
507
512
516
521
526
530
535
539
544
547MRC_API MR_BooleanResultPoints *MR_BooleanResultPoints_ConstructFrom(MR_PassBy meshAVerts_pass_by, MR_VertBitSet *meshAVerts, MR_PassBy meshBVerts_pass_by, MR_VertBitSet *meshBVerts, MR_PassBy intersectionPoints_pass_by, MR_std_vector_MR_Vector3f *intersectionPoints);
548
551
554
558
561
564
569
586
595
596#ifdef __cplusplus
597} // extern "C"
598#endif
struct MR_std_vector_std_vector_MR_EdgeId MR_std_vector_std_vector_MR_EdgeId
Definition MR2DContoursTriangulation.h:19
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_VertBitSet MR_VertBitSet
Definition MRAABBTree.h:15
struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f
Definition MRBestFit.h:26
struct MR_BooleanResultMapper MR_BooleanResultMapper
Generated from class MR::BooleanResultMapper.
Definition MRBooleanOperation.h:71
int32_t MR_BooleanOperation
Definition MRBooleanOperation.h:32
struct MR_std_vector_std_vector_MR_Vector3f MR_std_vector_std_vector_MR_Vector3f
Definition MRContour.h:17
struct MR_std_vector_MR_OneMeshContour MR_std_vector_MR_OneMeshContour
Definition MRContoursCut.h:25
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_string MR_std_string
Definition MRE57.h:22
MRC_API MR_BooleanPreCutResult * MR_BooleanPreCutResult_OffsetMutablePtr(MR_BooleanPreCutResult *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_BooleanResult_DestroyArray(const MR_BooleanResult *_this)
Destroys a heap-allocated array of MR_BooleanResult. Does nothing if the pointer is null.
MRC_API MR_std_vector_MR_Vector3f * MR_BooleanResultPoints_GetMutable_intersectionPoints(MR_BooleanResultPoints *_this)
struct MR_CoordinateConverters MR_CoordinateConverters
Definition MRMeshBoolean.h:16
MRC_API MR_BooleanResult * MR_BooleanResult_OffsetMutablePtr(MR_BooleanResult *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 MR_FaceBitSet * MR_BooleanResult_GetMutable_meshBBadContourFaces(MR_BooleanResult *_this)
MRC_API MR_BooleanResultMapper *const * MR_BooleanParameters_Get_mapper(const MR_BooleanParameters *_this)
MRC_API MR_BooleanPreCutResult * MR_BooleanPreCutResult_AssignFromAnother(MR_BooleanPreCutResult *_this, MR_PassBy _other_pass_by, MR_BooleanPreCutResult *_other)
MRC_API MR_BooleanResult * MR_boolean_4_MR_Mesh_rvalue_ref(MR_Mesh *meshA, MR_Mesh *meshB, MR_BooleanOperation operation, const MR_BooleanParameters *params)
MRC_API MR_BooleanResult * MR_BooleanResult_ConstructFrom(MR_PassBy mesh_pass_by, MR_Mesh *mesh, MR_PassBy meshABadContourFaces_pass_by, MR_FaceBitSet *meshABadContourFaces, MR_PassBy meshBBadContourFaces_pass_by, MR_FaceBitSet *meshBBadContourFaces, const char *errorString, const char *errorString_end)
MRC_API void MR_BooleanParameters_Destroy(const MR_BooleanParameters *_this)
Destroys a heap-allocated instance of MR_BooleanParameters. Does nothing if the pointer is null.
MRC_API MR_expected_MR_Mesh_std_string * MR_selfBoolean(const MR_Mesh *mesh)
MRC_API void MR_BooleanParameters_Set_rigidB2A(MR_BooleanParameters *_this, const MR_AffineXf3f *value)
MRC_API bool * MR_BooleanParameters_GetMutable_mergeAllNonIntersectingComponents(MR_BooleanParameters *_this)
MRC_API MR_BooleanResultPoints * MR_BooleanResultPoints_DefaultConstructArray(size_t num_elems)
MRC_API MR_BooleanResult * MR_BooleanResult_DefaultConstruct(void)
MRC_API MR_BooleanResult * MR_BooleanResult_ConstructFromAnother(MR_PassBy _other_pass_by, MR_BooleanResult *_other)
MRC_API MR_Mesh * MR_BooleanPreCutResult_GetMutable_mesh(MR_BooleanPreCutResult *_this)
MRC_API void MR_BooleanResult_Set_meshABadContourFaces(MR_BooleanResult *_this, MR_PassBy value_pass_by, MR_FaceBitSet *value)
MRC_API void MR_BooleanResult_Destroy(const MR_BooleanResult *_this)
Destroys a heap-allocated instance of MR_BooleanResult. Does nothing if the pointer is null.
MRC_API MR_FaceBitSet * MR_BooleanResult_GetMutable_meshABadContourFaces(MR_BooleanResult *_this)
MRC_API const MR_BooleanPreCutResult * MR_BooleanPreCutResult_OffsetPtr(const MR_BooleanPreCutResult *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 MR_BooleanResultPoints * MR_BooleanResultPoints_AssignFromAnother(MR_BooleanResultPoints *_this, MR_PassBy _other_pass_by, MR_BooleanResultPoints *_other)
MRC_API MR_std_vector_std_vector_MR_EdgeId ** MR_BooleanParameters_GetMutable_outCutEdges(MR_BooleanParameters *_this)
MRC_API MR_BooleanResult * MR_BooleanResult_DefaultConstructArray(size_t num_elems)
MRC_API MR_BooleanResult * MR_boolean_6_const_MR_Mesh_ref(const MR_Mesh *meshA, const MR_Mesh *meshB, MR_BooleanOperation operation, const MR_AffineXf3f *rigidB2A, MR_BooleanResultMapper *mapper, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
Performs CSG operation on two meshes.
MRC_API MR_BooleanPreCutResult *const * MR_BooleanParameters_Get_outPreCutB(const MR_BooleanParameters *_this)
MRC_API bool MR_BooleanResult_valid(const MR_BooleanResult *_this)
MRC_API MR_BooleanPreCutResult * MR_BooleanPreCutResult_ConstructFromAnother(MR_PassBy _other_pass_by, MR_BooleanPreCutResult *_other)
MRC_API MR_BooleanResultMapper ** MR_BooleanParameters_GetMutable_mapper(MR_BooleanParameters *_this)
MRC_API void MR_BooleanPreCutResult_DestroyArray(const MR_BooleanPreCutResult *_this)
Destroys a heap-allocated array of MR_BooleanPreCutResult. Does nothing if the pointer is null.
MRC_API const MR_BooleanParameters * MR_BooleanParameters_OffsetPtr(const MR_BooleanParameters *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_BooleanResultPoints_Set_intersectionPoints(MR_BooleanResultPoints *_this, MR_PassBy value_pass_by, MR_std_vector_MR_Vector3f *value)
MRC_API const bool * MR_BooleanParameters_Get_forceCut(const MR_BooleanParameters *_this)
MRC_API void MR_BooleanPreCutResult_Set_contours(MR_BooleanPreCutResult *_this, MR_PassBy value_pass_by, MR_std_vector_MR_OneMeshContour *value)
MRC_API bool MR_BooleanResult_ConvertTo_bool(const MR_BooleanResult *_this)
MRC_API MR_BooleanResult * MR_boolean_4_const_MR_Mesh_ref(const MR_Mesh *meshA, const MR_Mesh *meshB, MR_BooleanOperation operation, const MR_BooleanParameters *params)
MRC_API void MR_convertIntFloatAllVerts(MR_Mesh *mesh, const MR_CoordinateConverters *conv)
MRC_API void MR_BooleanParameters_Set_cb(MR_BooleanParameters *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value)
MRC_API const MR_Mesh * MR_BooleanResult_Get_mesh(const MR_BooleanResult *_this)
MRC_API MR_BooleanParameters * MR_BooleanParameters_DefaultConstruct(void)
MRC_API const MR_std_vector_MR_Vector3f * MR_BooleanResultPoints_Get_intersectionPoints(const MR_BooleanResultPoints *_this)
MRC_API void MR_BooleanResult_Set_mesh(MR_BooleanResult *_this, MR_PassBy value_pass_by, MR_Mesh *value)
MRC_API bool * MR_BooleanParameters_GetMutable_forceCut(MR_BooleanParameters *_this)
MRC_API void MR_BooleanParameters_DestroyArray(const MR_BooleanParameters *_this)
Destroys a heap-allocated array of MR_BooleanParameters. Does nothing if the pointer is null.
MRC_API MR_BooleanParameters * MR_BooleanParameters_ConstructFromAnother(MR_PassBy _other_pass_by, MR_BooleanParameters *_other)
MRC_API const MR_AffineXf3f *const * MR_BooleanParameters_Get_rigidB2A(const MR_BooleanParameters *_this)
MRC_API MR_BooleanResultPoints * MR_BooleanResultPoints_ConstructFromAnother(MR_PassBy _other_pass_by, MR_BooleanResultPoints *_other)
MRC_API const MR_BooleanResultPoints * MR_BooleanResultPoints_OffsetPtr(const MR_BooleanResultPoints *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 MR_Mesh * MR_BooleanResult_GetMutable_mesh(MR_BooleanResult *_this)
MRC_API MR_BooleanPreCutResult *const * MR_BooleanParameters_Get_outPreCutA(const MR_BooleanParameters *_this)
MRC_API MR_BooleanParameters * MR_BooleanParameters_DefaultConstructArray(size_t num_elems)
MRC_API void MR_BooleanResultPoints_Set_meshBVerts(MR_BooleanResultPoints *_this, MR_PassBy value_pass_by, MR_VertBitSet *value)
MRC_API void MR_BooleanParameters_Set_mergeAllNonIntersectingComponents(MR_BooleanParameters *_this, bool value)
MRC_API MR_expected_MR_BooleanResultPoints_std_string * MR_getBooleanPoints(const MR_Mesh *meshA, const MR_Mesh *meshB, MR_BooleanOperation operation, const MR_AffineXf3f *rigidB2A)
Returns the points of mesh boolean's result mesh.
MRC_API void MR_BooleanResult_Set_meshBBadContourFaces(MR_BooleanResult *_this, MR_PassBy value_pass_by, MR_FaceBitSet *value)
MRC_API void MR_BooleanResultPoints_Set_meshAVerts(MR_BooleanResultPoints *_this, MR_PassBy value_pass_by, MR_VertBitSet *value)
MRC_API MR_BooleanParameters * MR_BooleanParameters_ConstructFrom(const MR_AffineXf3f *rigidB2A, MR_BooleanResultMapper *mapper, MR_BooleanPreCutResult *outPreCutA, MR_BooleanPreCutResult *outPreCutB, MR_std_vector_std_vector_MR_EdgeId *outCutEdges, bool mergeAllNonIntersectingComponents, bool forceCut, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API const bool * MR_BooleanParameters_Get_mergeAllNonIntersectingComponents(const MR_BooleanParameters *_this)
struct MR_BooleanParameters MR_BooleanParameters
Generated from class MR::BooleanParameters.
Definition MRMeshBoolean.h:47
MRC_API MR_std_function_bool_from_float * MR_BooleanParameters_GetMutable_cb(MR_BooleanParameters *_this)
MRC_API const MR_std_vector_MR_OneMeshContour * MR_BooleanPreCutResult_Get_contours(const MR_BooleanPreCutResult *_this)
MRC_API const MR_FaceBitSet * MR_BooleanResult_Get_meshABadContourFaces(const MR_BooleanResult *_this)
MRC_API MR_BooleanResult * MR_BooleanResult_AssignFromAnother(MR_BooleanResult *_this, MR_PassBy _other_pass_by, MR_BooleanResult *_other)
MRC_API void MR_BooleanParameters_Set_outCutEdges(MR_BooleanParameters *_this, MR_std_vector_std_vector_MR_EdgeId *value)
MRC_API const MR_std_string * MR_BooleanResult_Get_errorString(const MR_BooleanResult *_this)
MRC_API MR_BooleanPreCutResult ** MR_BooleanParameters_GetMutable_outPreCutA(MR_BooleanParameters *_this)
MRC_API void MR_BooleanParameters_Set_forceCut(MR_BooleanParameters *_this, bool value)
MRC_API MR_BooleanPreCutResult * MR_BooleanPreCutResult_DefaultConstructArray(size_t num_elems)
struct MR_BooleanResult MR_BooleanResult
Generated from class MR::BooleanResult.
Definition MRMeshBoolean.h:37
MRC_API void MR_BooleanResultPoints_DestroyArray(const MR_BooleanResultPoints *_this)
Destroys a heap-allocated array of MR_BooleanResultPoints. Does nothing if the pointer is null.
MRC_API MR_std_vector_MR_OneMeshContour * MR_BooleanPreCutResult_GetMutable_contours(MR_BooleanPreCutResult *_this)
MRC_API const MR_Mesh * MR_deref_const_MR_BooleanResult_ref(const MR_BooleanResult *_this)
MRC_API MR_BooleanResultPoints * MR_BooleanResultPoints_OffsetMutablePtr(MR_BooleanResultPoints *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 MR_BooleanPreCutResult ** MR_BooleanParameters_GetMutable_outPreCutB(MR_BooleanParameters *_this)
MRC_API const MR_VertBitSet * MR_BooleanResultPoints_Get_meshAVerts(const MR_BooleanResultPoints *_this)
MRC_API void MR_BooleanPreCutResult_Destroy(const MR_BooleanPreCutResult *_this)
Destroys a heap-allocated instance of MR_BooleanPreCutResult. Does nothing if the pointer is null.
MRC_API MR_std_vector_std_vector_MR_Vector3f * MR_findIntersectionContours(const MR_Mesh *meshA, const MR_Mesh *meshB, const MR_AffineXf3f *rigidB2A)
MRC_API MR_std_vector_std_vector_MR_EdgeId *const * MR_BooleanParameters_Get_outCutEdges(const MR_BooleanParameters *_this)
MRC_API MR_BooleanResultPoints * MR_BooleanResultPoints_DefaultConstruct(void)
MRC_API void MR_BooleanParameters_Set_outPreCutB(MR_BooleanParameters *_this, MR_BooleanPreCutResult *value)
MRC_API void MR_BooleanParameters_Set_outPreCutA(MR_BooleanParameters *_this, MR_BooleanPreCutResult *value)
MRC_API const MR_Mesh * MR_BooleanResult_arrow_const(const MR_BooleanResult *_this)
MRC_API MR_BooleanPreCutResult * MR_BooleanPreCutResult_ConstructFrom(MR_PassBy mesh_pass_by, MR_Mesh *mesh, MR_PassBy contours_pass_by, MR_std_vector_MR_OneMeshContour *contours)
MRC_API MR_VertBitSet * MR_BooleanResultPoints_GetMutable_meshBVerts(MR_BooleanResultPoints *_this)
MRC_API MR_Mesh * MR_deref_MR_BooleanResult_ref(MR_BooleanResult *_this)
MRC_API const MR_AffineXf3f ** MR_BooleanParameters_GetMutable_rigidB2A(MR_BooleanParameters *_this)
struct MR_BooleanPreCutResult MR_BooleanPreCutResult
Generated from class MR::BooleanPreCutResult.
Definition MRMeshBoolean.h:40
MRC_API MR_BooleanParameters * MR_BooleanParameters_AssignFromAnother(MR_BooleanParameters *_this, MR_PassBy _other_pass_by, MR_BooleanParameters *_other)
MRC_API void MR_BooleanResultPoints_Destroy(const MR_BooleanResultPoints *_this)
Destroys a heap-allocated instance of MR_BooleanResultPoints. Does nothing if the pointer is null.
MRC_API MR_BooleanResultPoints * MR_BooleanResultPoints_ConstructFrom(MR_PassBy meshAVerts_pass_by, MR_VertBitSet *meshAVerts, MR_PassBy meshBVerts_pass_by, MR_VertBitSet *meshBVerts, MR_PassBy intersectionPoints_pass_by, MR_std_vector_MR_Vector3f *intersectionPoints)
MRC_API void MR_BooleanParameters_Set_mapper(MR_BooleanParameters *_this, MR_BooleanResultMapper *value)
MRC_API const MR_BooleanResult * MR_BooleanResult_OffsetPtr(const MR_BooleanResult *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_BooleanPreCutResult_Set_mesh(MR_BooleanPreCutResult *_this, MR_PassBy value_pass_by, MR_Mesh *value)
MRC_API MR_BooleanResult * MR_boolean_6_MR_Mesh_rvalue_ref(MR_Mesh *meshA, MR_Mesh *meshB, MR_BooleanOperation operation, const MR_AffineXf3f *rigidB2A, MR_BooleanResultMapper *mapper, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API const MR_Mesh * MR_BooleanPreCutResult_Get_mesh(const MR_BooleanPreCutResult *_this)
MRC_API MR_Mesh * MR_BooleanResult_arrow(MR_BooleanResult *_this)
MRC_API MR_BooleanPreCutResult * MR_BooleanPreCutResult_DefaultConstruct(void)
MRC_API const MR_std_function_bool_from_float * MR_BooleanParameters_Get_cb(const MR_BooleanParameters *_this)
struct MR_BooleanResultPoints MR_BooleanResultPoints
Definition MRMeshBoolean.h:51
MRC_API const MR_VertBitSet * MR_BooleanResultPoints_Get_meshBVerts(const MR_BooleanResultPoints *_this)
MRC_API MR_std_string * MR_BooleanResult_GetMutable_errorString(MR_BooleanResult *_this)
MRC_API void MR_BooleanResult_Set_errorString(MR_BooleanResult *_this, const char *value, const char *value_end)
MRC_API MR_VertBitSet * MR_BooleanResultPoints_GetMutable_meshAVerts(MR_BooleanResultPoints *_this)
MRC_API const MR_FaceBitSet * MR_BooleanResult_Get_meshBBadContourFaces(const MR_BooleanResult *_this)
struct MR_expected_MR_BooleanResultPoints_std_string MR_expected_MR_BooleanResultPoints_std_string
Definition MRMeshBoolean.h:20
MRC_API MR_BooleanParameters * MR_BooleanParameters_OffsetMutablePtr(MR_BooleanParameters *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MR_PassBy
Definition common.h:19
#define MRC_API
Definition exports.h:11
Definition MRAffineXf.h:36