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
39
43
51
56
62
67
73
79
84
90
96
101
107
113
119MRC_API void MR_BooleanResult_Set_errorString(MR_BooleanResult *_this, const char *value, const char *value_end);
120
126
130
135
140MRC_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);
141
144
147
151
154
157
161
166
171
176
181
185
189
212
224
229
233
238
243
247
252
256
261
265
268
271
275
278
281
286
292
297
303
309
314
320
326
331
337
343
348
354
360
365
371
378
384
391
399
406
414
419
423
428
432
437
440MRC_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);
441
444
447
451
454
457
462
470
482
489
497
502
506
511
516
520
525
530
534
539
543
548
551MRC_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);
552
555
558
562
565
568
573
590
599
600#ifdef __cplusplus
601} // extern "C"
602#endif
struct MR_std_vector_std_vector_MR_EdgeId MR_std_vector_std_vector_MR_EdgeId
Definition MR2DContoursTriangulation.h:18
struct MR_std_function_bool_from_float MR_std_function_bool_from_float
Definition MR3mf.h:10
struct MR_VertBitSet MR_VertBitSet
Definition MRAABBTree.h:22
struct MR_FaceBitSet MR_FaceBitSet
Definition MRAABBTree.h:17
struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f
Definition MRBestFit.h:25
MR_BooleanOperation
Definition MRBooleanOperation.h:33
struct MR_BooleanResultMapper MR_BooleanResultMapper
Definition MRBooleanOperation.h:83
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: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_std_string MR_std_string
Definition MRCtm.h:32
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
Definition MRMeshBoolean.h:50
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
Definition MRMeshBoolean.h:38
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
Definition MRMeshBoolean.h:42
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:55
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:23
#define MRC_API
Definition exports.h:11
Definition MRAffineXf.h:39