MeshLib C Docs
Loading...
Searching...
No Matches
MRBooleanOperation.h File Reference
#include <MRCMisc/common.h>
#include <MRCMisc/exports.h>
#include <stdbool.h>
#include <stddef.h>

Go to the source code of this file.

Typedefs

typedef struct MR_AffineXf3f MR_AffineXf3f
 
typedef struct MR_EdgeBitSet MR_EdgeBitSet
 
typedef struct MR_FaceBitSet MR_FaceBitSet
 
typedef struct MR_FaceMap MR_FaceMap
 
typedef struct MR_Mesh MR_Mesh
 
typedef struct MR_UndirectedEdgeBitSet MR_UndirectedEdgeBitSet
 
typedef struct MR_VertBitSet MR_VertBitSet
 
typedef struct MR_VertMap MR_VertMap
 
typedef struct MR_WholeEdgeMap MR_WholeEdgeMap
 
typedef struct MR_expected_MR_Mesh_std_string MR_expected_MR_Mesh_std_string
 
typedef struct MR_std_array_MR_BooleanResultMapper_Maps_2 MR_std_array_MR_BooleanResultMapper_Maps_2
 
typedef struct MR_std_vector_std_vector_MR_EdgeId MR_std_vector_std_vector_MR_EdgeId
 
typedef enum MR_BooleanOperation MR_BooleanOperation
 
typedef enum MR_BooleanResultMapper_MapObject MR_BooleanResultMapper_MapObject
 Input object index enum.
 
typedef struct MR_BooleanResultMapper_Maps MR_BooleanResultMapper_Maps
 
typedef struct MR_BooleanResultMapper MR_BooleanResultMapper
 
typedef struct MR_BooleanInternalParameters MR_BooleanInternalParameters
 

Enumerations

enum  MR_BooleanOperation {
  MR_BooleanOperation_InsideA = 0 , MR_BooleanOperation_InsideB = 1 , MR_BooleanOperation_OutsideA = 2 , MR_BooleanOperation_OutsideB = 3 ,
  MR_BooleanOperation_Union = 4 , MR_BooleanOperation_Intersection = 5 , MR_BooleanOperation_DifferenceBA = 6 , MR_BooleanOperation_DifferenceAB = 7 ,
  MR_BooleanOperation_Count = 8
}
 
enum  MR_BooleanResultMapper_MapObject { MR_BooleanResultMapper_MapObject_A = 0 , MR_BooleanResultMapper_MapObject_B = 1 , MR_BooleanResultMapper_MapObject_Count = 2 }
 Input object index enum. More...
 

Functions

MRC_API const MR_std_array_MR_BooleanResultMapper_Maps_2MR_BooleanResultMapper_Get_maps (const MR_BooleanResultMapper *_this)
 
MRC_API void MR_BooleanResultMapper_Set_maps (MR_BooleanResultMapper *_this, MR_PassBy value_pass_by, MR_std_array_MR_BooleanResultMapper_Maps_2 *value)
 
MRC_API MR_std_array_MR_BooleanResultMapper_Maps_2MR_BooleanResultMapper_GetMutable_maps (MR_BooleanResultMapper *_this)
 
MRC_API MR_BooleanResultMapperMR_BooleanResultMapper_DefaultConstruct (void)
 
MRC_API MR_BooleanResultMapperMR_BooleanResultMapper_DefaultConstructArray (size_t num_elems)
 
MRC_API const MR_BooleanResultMapperMR_BooleanResultMapper_OffsetPtr (const MR_BooleanResultMapper *ptr, ptrdiff_t i)
 
MRC_API MR_BooleanResultMapperMR_BooleanResultMapper_OffsetMutablePtr (MR_BooleanResultMapper *ptr, ptrdiff_t i)
 
MRC_API MR_BooleanResultMapperMR_BooleanResultMapper_ConstructFromAnother (MR_PassBy _other_pass_by, MR_BooleanResultMapper *_other)
 
MRC_API void MR_BooleanResultMapper_Destroy (const MR_BooleanResultMapper *_this)
 Destroys a heap-allocated instance of MR_BooleanResultMapper. Does nothing if the pointer is null.
 
MRC_API void MR_BooleanResultMapper_DestroyArray (const MR_BooleanResultMapper *_this)
 Destroys a heap-allocated array of MR_BooleanResultMapper. Does nothing if the pointer is null.
 
MRC_API MR_BooleanResultMapperMR_BooleanResultMapper_AssignFromAnother (MR_BooleanResultMapper *_this, MR_PassBy _other_pass_by, MR_BooleanResultMapper *_other)
 
MRC_API MR_FaceBitSetMR_BooleanResultMapper_map_MR_FaceBitSet (const MR_BooleanResultMapper *_this, const MR_FaceBitSet *oldBS, MR_BooleanResultMapper_MapObject obj)
 
MRC_API MR_VertBitSetMR_BooleanResultMapper_map_MR_VertBitSet (const MR_BooleanResultMapper *_this, const MR_VertBitSet *oldBS, MR_BooleanResultMapper_MapObject obj)
 
MRC_API MR_EdgeBitSetMR_BooleanResultMapper_map_MR_EdgeBitSet (const MR_BooleanResultMapper *_this, const MR_EdgeBitSet *oldBS, MR_BooleanResultMapper_MapObject obj)
 
MRC_API MR_UndirectedEdgeBitSetMR_BooleanResultMapper_map_MR_UndirectedEdgeBitSet (const MR_BooleanResultMapper *_this, const MR_UndirectedEdgeBitSet *oldBS, MR_BooleanResultMapper_MapObject obj)
 
MRC_API MR_FaceBitSetMR_BooleanResultMapper_newFaces (const MR_BooleanResultMapper *_this)
 
MRC_API MR_FaceBitSetMR_BooleanResultMapper_filteredOldFaceBitSet (MR_BooleanResultMapper *_this, const MR_FaceBitSet *oldBS, MR_BooleanResultMapper_MapObject obj)
 
MRC_API const MR_BooleanResultMapper_MapsMR_BooleanResultMapper_getMaps (const MR_BooleanResultMapper *_this, MR_BooleanResultMapper_MapObject index)
 
MRC_API const MR_FaceMapMR_BooleanResultMapper_Maps_Get_cut2origin (const MR_BooleanResultMapper_Maps *_this)
 
MRC_API void MR_BooleanResultMapper_Maps_Set_cut2origin (MR_BooleanResultMapper_Maps *_this, MR_PassBy value_pass_by, MR_FaceMap *value)
 
MRC_API MR_FaceMapMR_BooleanResultMapper_Maps_GetMutable_cut2origin (MR_BooleanResultMapper_Maps *_this)
 
MRC_API const MR_FaceMapMR_BooleanResultMapper_Maps_Get_cut2newFaces (const MR_BooleanResultMapper_Maps *_this)
 
MRC_API void MR_BooleanResultMapper_Maps_Set_cut2newFaces (MR_BooleanResultMapper_Maps *_this, MR_PassBy value_pass_by, MR_FaceMap *value)
 
MRC_API MR_FaceMapMR_BooleanResultMapper_Maps_GetMutable_cut2newFaces (MR_BooleanResultMapper_Maps *_this)
 
MRC_API const MR_WholeEdgeMapMR_BooleanResultMapper_Maps_Get_old2newEdges (const MR_BooleanResultMapper_Maps *_this)
 
MRC_API void MR_BooleanResultMapper_Maps_Set_old2newEdges (MR_BooleanResultMapper_Maps *_this, MR_PassBy value_pass_by, MR_WholeEdgeMap *value)
 
MRC_API MR_WholeEdgeMapMR_BooleanResultMapper_Maps_GetMutable_old2newEdges (MR_BooleanResultMapper_Maps *_this)
 
MRC_API const MR_VertMapMR_BooleanResultMapper_Maps_Get_old2newVerts (const MR_BooleanResultMapper_Maps *_this)
 
MRC_API void MR_BooleanResultMapper_Maps_Set_old2newVerts (MR_BooleanResultMapper_Maps *_this, MR_PassBy value_pass_by, MR_VertMap *value)
 
MRC_API MR_VertMapMR_BooleanResultMapper_Maps_GetMutable_old2newVerts (MR_BooleanResultMapper_Maps *_this)
 
MRC_API const bool * MR_BooleanResultMapper_Maps_Get_identity (const MR_BooleanResultMapper_Maps *_this)
 
MRC_API void MR_BooleanResultMapper_Maps_Set_identity (MR_BooleanResultMapper_Maps *_this, bool value)
 
MRC_API bool * MR_BooleanResultMapper_Maps_GetMutable_identity (MR_BooleanResultMapper_Maps *_this)
 
MRC_API MR_BooleanResultMapper_MapsMR_BooleanResultMapper_Maps_DefaultConstruct (void)
 
MRC_API MR_BooleanResultMapper_MapsMR_BooleanResultMapper_Maps_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_BooleanResultMapper_MapsMR_BooleanResultMapper_Maps_ConstructFrom (MR_PassBy cut2origin_pass_by, MR_FaceMap *cut2origin, MR_PassBy cut2newFaces_pass_by, MR_FaceMap *cut2newFaces, MR_PassBy old2newEdges_pass_by, MR_WholeEdgeMap *old2newEdges, MR_PassBy old2newVerts_pass_by, MR_VertMap *old2newVerts, bool identity)
 
MRC_API const MR_BooleanResultMapper_MapsMR_BooleanResultMapper_Maps_OffsetPtr (const MR_BooleanResultMapper_Maps *ptr, ptrdiff_t i)
 
MRC_API MR_BooleanResultMapper_MapsMR_BooleanResultMapper_Maps_OffsetMutablePtr (MR_BooleanResultMapper_Maps *ptr, ptrdiff_t i)
 
MRC_API MR_BooleanResultMapper_MapsMR_BooleanResultMapper_Maps_ConstructFromAnother (MR_PassBy _other_pass_by, MR_BooleanResultMapper_Maps *_other)
 
MRC_API void MR_BooleanResultMapper_Maps_Destroy (const MR_BooleanResultMapper_Maps *_this)
 Destroys a heap-allocated instance of MR_BooleanResultMapper_Maps. Does nothing if the pointer is null.
 
MRC_API void MR_BooleanResultMapper_Maps_DestroyArray (const MR_BooleanResultMapper_Maps *_this)
 Destroys a heap-allocated array of MR_BooleanResultMapper_Maps. Does nothing if the pointer is null.
 
MRC_API MR_BooleanResultMapper_MapsMR_BooleanResultMapper_Maps_AssignFromAnother (MR_BooleanResultMapper_Maps *_this, MR_PassBy _other_pass_by, MR_BooleanResultMapper_Maps *_other)
 
MRC_API const MR_Mesh *const * MR_BooleanInternalParameters_Get_originalMeshA (const MR_BooleanInternalParameters *_this)
 
MRC_API void MR_BooleanInternalParameters_Set_originalMeshA (MR_BooleanInternalParameters *_this, const MR_Mesh *value)
 
MRC_API const MR_Mesh ** MR_BooleanInternalParameters_GetMutable_originalMeshA (MR_BooleanInternalParameters *_this)
 
MRC_API const MR_Mesh *const * MR_BooleanInternalParameters_Get_originalMeshB (const MR_BooleanInternalParameters *_this)
 
MRC_API void MR_BooleanInternalParameters_Set_originalMeshB (MR_BooleanInternalParameters *_this, const MR_Mesh *value)
 
MRC_API const MR_Mesh ** MR_BooleanInternalParameters_GetMutable_originalMeshB (MR_BooleanInternalParameters *_this)
 
MRC_API MR_std_vector_std_vector_MR_EdgeId *const * MR_BooleanInternalParameters_Get_optionalOutCut (const MR_BooleanInternalParameters *_this)
 
MRC_API void MR_BooleanInternalParameters_Set_optionalOutCut (MR_BooleanInternalParameters *_this, MR_std_vector_std_vector_MR_EdgeId *value)
 
MRC_API MR_std_vector_std_vector_MR_EdgeId ** MR_BooleanInternalParameters_GetMutable_optionalOutCut (MR_BooleanInternalParameters *_this)
 
MRC_API MR_BooleanInternalParametersMR_BooleanInternalParameters_DefaultConstruct (void)
 
MRC_API MR_BooleanInternalParametersMR_BooleanInternalParameters_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_BooleanInternalParametersMR_BooleanInternalParameters_ConstructFrom (const MR_Mesh *originalMeshA, const MR_Mesh *originalMeshB, MR_std_vector_std_vector_MR_EdgeId *optionalOutCut)
 
MRC_API const MR_BooleanInternalParametersMR_BooleanInternalParameters_OffsetPtr (const MR_BooleanInternalParameters *ptr, ptrdiff_t i)
 
MRC_API MR_BooleanInternalParametersMR_BooleanInternalParameters_OffsetMutablePtr (MR_BooleanInternalParameters *ptr, ptrdiff_t i)
 
MRC_API MR_BooleanInternalParametersMR_BooleanInternalParameters_ConstructFromAnother (const MR_BooleanInternalParameters *_other)
 
MRC_API void MR_BooleanInternalParameters_Destroy (const MR_BooleanInternalParameters *_this)
 Destroys a heap-allocated instance of MR_BooleanInternalParameters. Does nothing if the pointer is null.
 
MRC_API void MR_BooleanInternalParameters_DestroyArray (const MR_BooleanInternalParameters *_this)
 Destroys a heap-allocated array of MR_BooleanInternalParameters. Does nothing if the pointer is null.
 
MRC_API MR_BooleanInternalParametersMR_BooleanInternalParameters_AssignFromAnother (MR_BooleanInternalParameters *_this, const MR_BooleanInternalParameters *_other)
 
MRC_API MR_expected_MR_Mesh_std_stringMR_doBooleanOperation (MR_Mesh *meshACut, MR_Mesh *meshBCut, const MR_std_vector_std_vector_MR_EdgeId *cutEdgesA, const MR_std_vector_std_vector_MR_EdgeId *cutEdgesB, MR_BooleanOperation operation, const MR_AffineXf3f *rigidB2A, MR_BooleanResultMapper *mapper, const bool *mergeAllNonIntersectingComponents, const MR_BooleanInternalParameters *intParams)
 

Typedef Documentation

◆ MR_AffineXf3f

typedef struct MR_AffineXf3f MR_AffineXf3f

◆ MR_BooleanInternalParameters

Parameters will be useful if specified Generated from class MR::BooleanInternalParameters. Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).

◆ MR_BooleanOperation

Enum class of available CSG operations

Two separate meshes
See also
MR::boolean

◆ MR_BooleanResultMapper

Generated from class MR::BooleanResultMapper. Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).

◆ MR_BooleanResultMapper_MapObject

◆ MR_BooleanResultMapper_Maps

Generated from class MR::BooleanResultMapper::Maps. Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).

◆ MR_EdgeBitSet

typedef struct MR_EdgeBitSet MR_EdgeBitSet

◆ MR_expected_MR_Mesh_std_string

◆ MR_FaceBitSet

typedef struct MR_FaceBitSet MR_FaceBitSet

◆ MR_FaceMap

typedef struct MR_FaceMap MR_FaceMap

◆ MR_Mesh

typedef struct MR_Mesh MR_Mesh

◆ MR_std_array_MR_BooleanResultMapper_Maps_2

◆ MR_std_vector_std_vector_MR_EdgeId

◆ MR_UndirectedEdgeBitSet

◆ MR_VertBitSet

typedef struct MR_VertBitSet MR_VertBitSet

◆ MR_VertMap

typedef struct MR_VertMap MR_VertMap

◆ MR_WholeEdgeMap

Enumeration Type Documentation

◆ MR_BooleanOperation

Enum class of available CSG operations

Two separate meshes
See also
MR::boolean
Enumerator
MR_BooleanOperation_InsideA 

Part of mesh A that is inside of mesh B

Inside A
MR_BooleanOperation_InsideB 

Part of mesh B that is inside of mesh A

Inside B
MR_BooleanOperation_OutsideA 

Part of mesh A that is outside of mesh B

Outside A
MR_BooleanOperation_OutsideB 

Part of mesh B that is outside of mesh A

Outside B
MR_BooleanOperation_Union 

Union surface of two meshes (outside parts)

Union
MR_BooleanOperation_Intersection 

Intersection surface of two meshes (inside parts)

Intersection
MR_BooleanOperation_DifferenceBA 

Surface of mesh B - surface of mesh A (outside B - inside A)

Difference B-A
MR_BooleanOperation_DifferenceAB 

not a valid operation

Surface of mesh A - surface of mesh B (outside A - inside B)

Difference A-B
MR_BooleanOperation_Count 

◆ MR_BooleanResultMapper_MapObject

Input object index enum.

Enumerator
MR_BooleanResultMapper_MapObject_A 
MR_BooleanResultMapper_MapObject_B 
MR_BooleanResultMapper_MapObject_Count 

Function Documentation

◆ MR_BooleanInternalParameters_AssignFromAnother()

MRC_API MR_BooleanInternalParameters * MR_BooleanInternalParameters_AssignFromAnother ( MR_BooleanInternalParameters * _this,
const MR_BooleanInternalParameters * _other )

Generated from method MR::BooleanInternalParameters::operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in this object. The returned pointer will never be null. It is non-owning, do NOT destroy it. When this function is called, this object will drop any object references it had previously.

◆ MR_BooleanInternalParameters_ConstructFrom()

MRC_API MR_BooleanInternalParameters * MR_BooleanInternalParameters_ConstructFrom ( const MR_Mesh * originalMeshA,
const MR_Mesh * originalMeshB,
MR_std_vector_std_vector_MR_EdgeId * optionalOutCut )

Constructs MR::BooleanInternalParameters elementwise. The reference to the parameter originalMeshA might be preserved in the constructed object. The reference to the parameter originalMeshB might be preserved in the constructed object. The reference to the parameter optionalOutCut might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_BooleanInternalParameters_Destroy() to free it when you're done using it. When this function is called, this object will drop any object references it had previously.

◆ MR_BooleanInternalParameters_ConstructFromAnother()

MRC_API MR_BooleanInternalParameters * MR_BooleanInternalParameters_ConstructFromAnother ( const MR_BooleanInternalParameters * _other)

Generated from constructor MR::BooleanInternalParameters::BooleanInternalParameters. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_BooleanInternalParameters_Destroy() to free it when you're done using it.

◆ MR_BooleanInternalParameters_DefaultConstruct()

MRC_API MR_BooleanInternalParameters * MR_BooleanInternalParameters_DefaultConstruct ( void )

Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_BooleanInternalParameters_Destroy() to free it when you're done using it.

◆ MR_BooleanInternalParameters_DefaultConstructArray()

MRC_API MR_BooleanInternalParameters * MR_BooleanInternalParameters_DefaultConstructArray ( size_t num_elems)

Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_BooleanInternalParameters_DestroyArray(). Use MR_BooleanInternalParameters_OffsetMutablePtr() and MR_BooleanInternalParameters_OffsetPtr() to access the array elements.

◆ MR_BooleanInternalParameters_Destroy()

MRC_API void MR_BooleanInternalParameters_Destroy ( const MR_BooleanInternalParameters * _this)

Destroys a heap-allocated instance of MR_BooleanInternalParameters. Does nothing if the pointer is null.

◆ MR_BooleanInternalParameters_DestroyArray()

MRC_API void MR_BooleanInternalParameters_DestroyArray ( const MR_BooleanInternalParameters * _this)

Destroys a heap-allocated array of MR_BooleanInternalParameters. Does nothing if the pointer is null.

◆ MR_BooleanInternalParameters_Get_optionalOutCut()

MRC_API MR_std_vector_std_vector_MR_EdgeId *const * MR_BooleanInternalParameters_Get_optionalOutCut ( const MR_BooleanInternalParameters * _this)

Optional output cut edges of booleaned meshes Returns a pointer to a member variable of class MR::BooleanInternalParameters named optionalOutCut. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanInternalParameters_Get_originalMeshA()

MRC_API const MR_Mesh *const * MR_BooleanInternalParameters_Get_originalMeshA ( const MR_BooleanInternalParameters * _this)

Instance of original mesh with tree for better speed Returns a pointer to a member variable of class MR::BooleanInternalParameters named originalMeshA. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanInternalParameters_Get_originalMeshB()

MRC_API const MR_Mesh *const * MR_BooleanInternalParameters_Get_originalMeshB ( const MR_BooleanInternalParameters * _this)

Instance of original mesh with tree for better speed Returns a pointer to a member variable of class MR::BooleanInternalParameters named originalMeshB. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanInternalParameters_GetMutable_optionalOutCut()

MRC_API MR_std_vector_std_vector_MR_EdgeId ** MR_BooleanInternalParameters_GetMutable_optionalOutCut ( MR_BooleanInternalParameters * _this)

Optional output cut edges of booleaned meshes Returns a mutable pointer to a member variable of class MR::BooleanInternalParameters named optionalOutCut. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanInternalParameters_GetMutable_originalMeshA()

MRC_API const MR_Mesh ** MR_BooleanInternalParameters_GetMutable_originalMeshA ( MR_BooleanInternalParameters * _this)

Instance of original mesh with tree for better speed Returns a mutable pointer to a member variable of class MR::BooleanInternalParameters named originalMeshA. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanInternalParameters_GetMutable_originalMeshB()

MRC_API const MR_Mesh ** MR_BooleanInternalParameters_GetMutable_originalMeshB ( MR_BooleanInternalParameters * _this)

Instance of original mesh with tree for better speed Returns a mutable pointer to a member variable of class MR::BooleanInternalParameters named originalMeshB. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanInternalParameters_OffsetMutablePtr()

MRC_API MR_BooleanInternalParameters * MR_BooleanInternalParameters_OffsetMutablePtr ( MR_BooleanInternalParameters * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.

◆ MR_BooleanInternalParameters_OffsetPtr()

MRC_API const MR_BooleanInternalParameters * MR_BooleanInternalParameters_OffsetPtr ( const MR_BooleanInternalParameters * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.

◆ MR_BooleanInternalParameters_Set_optionalOutCut()

MRC_API void MR_BooleanInternalParameters_Set_optionalOutCut ( MR_BooleanInternalParameters * _this,
MR_std_vector_std_vector_MR_EdgeId * value )

Optional output cut edges of booleaned meshes Modifies a member variable of class MR::BooleanInternalParameters named optionalOutCut. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element optionalOutCut. When this function is called, this object will drop object references it had previously in optionalOutCut.

◆ MR_BooleanInternalParameters_Set_originalMeshA()

MRC_API void MR_BooleanInternalParameters_Set_originalMeshA ( MR_BooleanInternalParameters * _this,
const MR_Mesh * value )

Instance of original mesh with tree for better speed Modifies a member variable of class MR::BooleanInternalParameters named originalMeshA. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element originalMeshA. When this function is called, this object will drop object references it had previously in originalMeshA.

◆ MR_BooleanInternalParameters_Set_originalMeshB()

MRC_API void MR_BooleanInternalParameters_Set_originalMeshB ( MR_BooleanInternalParameters * _this,
const MR_Mesh * value )

Instance of original mesh with tree for better speed Modifies a member variable of class MR::BooleanInternalParameters named originalMeshB. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element originalMeshB. When this function is called, this object will drop object references it had previously in originalMeshB.

◆ MR_BooleanResultMapper_AssignFromAnother()

MRC_API MR_BooleanResultMapper * MR_BooleanResultMapper_AssignFromAnother ( MR_BooleanResultMapper * _this,
MR_PassBy _other_pass_by,
MR_BooleanResultMapper * _other )

Generated from method MR::BooleanResultMapper::operator=. Parameter _this can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in this object. The returned pointer will never be null. It is non-owning, do NOT destroy it. When this function is called, this object will drop any object references it had previously.

◆ MR_BooleanResultMapper_ConstructFromAnother()

MRC_API MR_BooleanResultMapper * MR_BooleanResultMapper_ConstructFromAnother ( MR_PassBy _other_pass_by,
MR_BooleanResultMapper * _other )

Generated from constructor MR::BooleanResultMapper::BooleanResultMapper. The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_BooleanResultMapper_Destroy() to free it when you're done using it.

◆ MR_BooleanResultMapper_DefaultConstruct()

MRC_API MR_BooleanResultMapper * MR_BooleanResultMapper_DefaultConstruct ( void )

Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_BooleanResultMapper_Destroy() to free it when you're done using it.

◆ MR_BooleanResultMapper_DefaultConstructArray()

MRC_API MR_BooleanResultMapper * MR_BooleanResultMapper_DefaultConstructArray ( size_t num_elems)

Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_BooleanResultMapper_DestroyArray(). Use MR_BooleanResultMapper_OffsetMutablePtr() and MR_BooleanResultMapper_OffsetPtr() to access the array elements.

◆ MR_BooleanResultMapper_Destroy()

MRC_API void MR_BooleanResultMapper_Destroy ( const MR_BooleanResultMapper * _this)

Destroys a heap-allocated instance of MR_BooleanResultMapper. Does nothing if the pointer is null.

◆ MR_BooleanResultMapper_DestroyArray()

MRC_API void MR_BooleanResultMapper_DestroyArray ( const MR_BooleanResultMapper * _this)

Destroys a heap-allocated array of MR_BooleanResultMapper. Does nothing if the pointer is null.

◆ MR_BooleanResultMapper_filteredOldFaceBitSet()

MRC_API MR_FaceBitSet * MR_BooleanResultMapper_filteredOldFaceBitSet ( MR_BooleanResultMapper * _this,
const MR_FaceBitSet * oldBS,
MR_BooleanResultMapper_MapObject obj )

returns updated oldBS leaving only faces that has corresponding ones in result mesh Generated from method MR::BooleanResultMapper::filteredOldFaceBitSet. Parameter _this can not be null. It is a single object. Parameter oldBS can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_FaceBitSet_Destroy() to free it when you're done using it.

◆ MR_BooleanResultMapper_Get_maps()

MRC_API const MR_std_array_MR_BooleanResultMapper_Maps_2 * MR_BooleanResultMapper_Get_maps ( const MR_BooleanResultMapper * _this)

Returns a pointer to a member variable of class MR::BooleanResultMapper named maps. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanResultMapper_getMaps()

MRC_API const MR_BooleanResultMapper_Maps * MR_BooleanResultMapper_getMaps ( const MR_BooleanResultMapper * _this,
MR_BooleanResultMapper_MapObject index )

Generated from method MR::BooleanResultMapper::getMaps. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanResultMapper_GetMutable_maps()

MRC_API MR_std_array_MR_BooleanResultMapper_Maps_2 * MR_BooleanResultMapper_GetMutable_maps ( MR_BooleanResultMapper * _this)

Returns a mutable pointer to a member variable of class MR::BooleanResultMapper named maps. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanResultMapper_map_MR_EdgeBitSet()

MRC_API MR_EdgeBitSet * MR_BooleanResultMapper_map_MR_EdgeBitSet ( const MR_BooleanResultMapper * _this,
const MR_EdgeBitSet * oldBS,
MR_BooleanResultMapper_MapObject obj )

Returns edges bitset of result mesh corresponding input one Generated from method MR::BooleanResultMapper::map. Parameter _this can not be null. It is a single object. Parameter oldBS can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_EdgeBitSet_Destroy() to free it when you're done using it.

◆ MR_BooleanResultMapper_map_MR_FaceBitSet()

MRC_API MR_FaceBitSet * MR_BooleanResultMapper_map_MR_FaceBitSet ( const MR_BooleanResultMapper * _this,
const MR_FaceBitSet * oldBS,
MR_BooleanResultMapper_MapObject obj )

Returns faces bitset of result mesh corresponding input one Generated from method MR::BooleanResultMapper::map. Parameter _this can not be null. It is a single object. Parameter oldBS can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_FaceBitSet_Destroy() to free it when you're done using it.

◆ MR_BooleanResultMapper_map_MR_UndirectedEdgeBitSet()

MRC_API MR_UndirectedEdgeBitSet * MR_BooleanResultMapper_map_MR_UndirectedEdgeBitSet ( const MR_BooleanResultMapper * _this,
const MR_UndirectedEdgeBitSet * oldBS,
MR_BooleanResultMapper_MapObject obj )

Returns undirected edges bitset of result mesh corresponding input one Generated from method MR::BooleanResultMapper::map. Parameter _this can not be null. It is a single object. Parameter oldBS can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_UndirectedEdgeBitSet_Destroy() to free it when you're done using it.

◆ MR_BooleanResultMapper_map_MR_VertBitSet()

MRC_API MR_VertBitSet * MR_BooleanResultMapper_map_MR_VertBitSet ( const MR_BooleanResultMapper * _this,
const MR_VertBitSet * oldBS,
MR_BooleanResultMapper_MapObject obj )

Returns vertices bitset of result mesh corresponding input one Generated from method MR::BooleanResultMapper::map. Parameter _this can not be null. It is a single object. Parameter oldBS can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_VertBitSet_Destroy() to free it when you're done using it.

◆ MR_BooleanResultMapper_Maps_AssignFromAnother()

MRC_API MR_BooleanResultMapper_Maps * MR_BooleanResultMapper_Maps_AssignFromAnother ( MR_BooleanResultMapper_Maps * _this,
MR_PassBy _other_pass_by,
MR_BooleanResultMapper_Maps * _other )

Generated from method MR::BooleanResultMapper::Maps::operator=. Parameter _this can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in this object. The returned pointer will never be null. It is non-owning, do NOT destroy it. When this function is called, this object will drop any object references it had previously.

◆ MR_BooleanResultMapper_Maps_ConstructFrom()

MRC_API MR_BooleanResultMapper_Maps * MR_BooleanResultMapper_Maps_ConstructFrom ( MR_PassBy cut2origin_pass_by,
MR_FaceMap * cut2origin,
MR_PassBy cut2newFaces_pass_by,
MR_FaceMap * cut2newFaces,
MR_PassBy old2newEdges_pass_by,
MR_WholeEdgeMap * old2newEdges,
MR_PassBy old2newVerts_pass_by,
MR_VertMap * old2newVerts,
bool identity )

Constructs MR::BooleanResultMapper::Maps elementwise. The reference to the parameter cut2origin might be preserved in the constructed object. The reference to the parameter cut2newFaces might be preserved in the constructed object. The reference to the parameter old2newEdges might be preserved in the constructed object. The reference to the parameter old2newVerts might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_BooleanResultMapper_Maps_Destroy() to free it when you're done using it. When this function is called, this object will drop any object references it had previously.

◆ MR_BooleanResultMapper_Maps_ConstructFromAnother()

MRC_API MR_BooleanResultMapper_Maps * MR_BooleanResultMapper_Maps_ConstructFromAnother ( MR_PassBy _other_pass_by,
MR_BooleanResultMapper_Maps * _other )

Generated from constructor MR::BooleanResultMapper::Maps::Maps. The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_BooleanResultMapper_Maps_Destroy() to free it when you're done using it.

◆ MR_BooleanResultMapper_Maps_DefaultConstruct()

MRC_API MR_BooleanResultMapper_Maps * MR_BooleanResultMapper_Maps_DefaultConstruct ( void )

Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_BooleanResultMapper_Maps_Destroy() to free it when you're done using it.

◆ MR_BooleanResultMapper_Maps_DefaultConstructArray()

MRC_API MR_BooleanResultMapper_Maps * MR_BooleanResultMapper_Maps_DefaultConstructArray ( size_t num_elems)

Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_BooleanResultMapper_Maps_DestroyArray(). Use MR_BooleanResultMapper_Maps_OffsetMutablePtr() and MR_BooleanResultMapper_Maps_OffsetPtr() to access the array elements.

◆ MR_BooleanResultMapper_Maps_Destroy()

MRC_API void MR_BooleanResultMapper_Maps_Destroy ( const MR_BooleanResultMapper_Maps * _this)

Destroys a heap-allocated instance of MR_BooleanResultMapper_Maps. Does nothing if the pointer is null.

◆ MR_BooleanResultMapper_Maps_DestroyArray()

MRC_API void MR_BooleanResultMapper_Maps_DestroyArray ( const MR_BooleanResultMapper_Maps * _this)

Destroys a heap-allocated array of MR_BooleanResultMapper_Maps. Does nothing if the pointer is null.

◆ MR_BooleanResultMapper_Maps_Get_cut2newFaces()

MRC_API const MR_FaceMap * MR_BooleanResultMapper_Maps_Get_cut2newFaces ( const MR_BooleanResultMapper_Maps * _this)

"after cut" faces to "after stitch" faces (1-1) Returns a pointer to a member variable of class MR::BooleanResultMapper::Maps named cut2newFaces. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanResultMapper_Maps_Get_cut2origin()

MRC_API const MR_FaceMap * MR_BooleanResultMapper_Maps_Get_cut2origin ( const MR_BooleanResultMapper_Maps * _this)

"after cut" faces to "origin" faces this map is not 1-1, but N-1 Returns a pointer to a member variable of class MR::BooleanResultMapper::Maps named cut2origin. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanResultMapper_Maps_Get_identity()

MRC_API const bool * MR_BooleanResultMapper_Maps_Get_identity ( const MR_BooleanResultMapper_Maps * _this)

old topology indexes are valid if true Returns a pointer to a member variable of class MR::BooleanResultMapper::Maps named identity. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanResultMapper_Maps_Get_old2newEdges()

MRC_API const MR_WholeEdgeMap * MR_BooleanResultMapper_Maps_Get_old2newEdges ( const MR_BooleanResultMapper_Maps * _this)

"origin" edges to "after stitch" edges (1-1) Returns a pointer to a member variable of class MR::BooleanResultMapper::Maps named old2newEdges. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanResultMapper_Maps_Get_old2newVerts()

MRC_API const MR_VertMap * MR_BooleanResultMapper_Maps_Get_old2newVerts ( const MR_BooleanResultMapper_Maps * _this)

"origin" vertices to "after stitch" vertices (1-1) Returns a pointer to a member variable of class MR::BooleanResultMapper::Maps named old2newVerts. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanResultMapper_Maps_GetMutable_cut2newFaces()

MRC_API MR_FaceMap * MR_BooleanResultMapper_Maps_GetMutable_cut2newFaces ( MR_BooleanResultMapper_Maps * _this)

"after cut" faces to "after stitch" faces (1-1) Returns a mutable pointer to a member variable of class MR::BooleanResultMapper::Maps named cut2newFaces. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanResultMapper_Maps_GetMutable_cut2origin()

MRC_API MR_FaceMap * MR_BooleanResultMapper_Maps_GetMutable_cut2origin ( MR_BooleanResultMapper_Maps * _this)

"after cut" faces to "origin" faces this map is not 1-1, but N-1 Returns a mutable pointer to a member variable of class MR::BooleanResultMapper::Maps named cut2origin. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanResultMapper_Maps_GetMutable_identity()

MRC_API bool * MR_BooleanResultMapper_Maps_GetMutable_identity ( MR_BooleanResultMapper_Maps * _this)

old topology indexes are valid if true Returns a mutable pointer to a member variable of class MR::BooleanResultMapper::Maps named identity. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanResultMapper_Maps_GetMutable_old2newEdges()

MRC_API MR_WholeEdgeMap * MR_BooleanResultMapper_Maps_GetMutable_old2newEdges ( MR_BooleanResultMapper_Maps * _this)

"origin" edges to "after stitch" edges (1-1) Returns a mutable pointer to a member variable of class MR::BooleanResultMapper::Maps named old2newEdges. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanResultMapper_Maps_GetMutable_old2newVerts()

MRC_API MR_VertMap * MR_BooleanResultMapper_Maps_GetMutable_old2newVerts ( MR_BooleanResultMapper_Maps * _this)

"origin" vertices to "after stitch" vertices (1-1) Returns a mutable pointer to a member variable of class MR::BooleanResultMapper::Maps named old2newVerts. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_BooleanResultMapper_Maps_OffsetMutablePtr()

MRC_API MR_BooleanResultMapper_Maps * MR_BooleanResultMapper_Maps_OffsetMutablePtr ( MR_BooleanResultMapper_Maps * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.

◆ MR_BooleanResultMapper_Maps_OffsetPtr()

MRC_API const MR_BooleanResultMapper_Maps * MR_BooleanResultMapper_Maps_OffsetPtr ( const MR_BooleanResultMapper_Maps * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.

◆ MR_BooleanResultMapper_Maps_Set_cut2newFaces()

MRC_API void MR_BooleanResultMapper_Maps_Set_cut2newFaces ( MR_BooleanResultMapper_Maps * _this,
MR_PassBy value_pass_by,
MR_FaceMap * value )

"after cut" faces to "after stitch" faces (1-1) Modifies a member variable of class MR::BooleanResultMapper::Maps named cut2newFaces. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element cut2newFaces. When this function is called, this object will drop object references it had previously in cut2newFaces.

◆ MR_BooleanResultMapper_Maps_Set_cut2origin()

MRC_API void MR_BooleanResultMapper_Maps_Set_cut2origin ( MR_BooleanResultMapper_Maps * _this,
MR_PassBy value_pass_by,
MR_FaceMap * value )

"after cut" faces to "origin" faces this map is not 1-1, but N-1 Modifies a member variable of class MR::BooleanResultMapper::Maps named cut2origin. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element cut2origin. When this function is called, this object will drop object references it had previously in cut2origin.

◆ MR_BooleanResultMapper_Maps_Set_identity()

MRC_API void MR_BooleanResultMapper_Maps_Set_identity ( MR_BooleanResultMapper_Maps * _this,
bool value )

old topology indexes are valid if true Modifies a member variable of class MR::BooleanResultMapper::Maps named identity. Parameter _this can not be null. It is a single object. When this function is called, this object will drop object references it had previously in identity.

◆ MR_BooleanResultMapper_Maps_Set_old2newEdges()

MRC_API void MR_BooleanResultMapper_Maps_Set_old2newEdges ( MR_BooleanResultMapper_Maps * _this,
MR_PassBy value_pass_by,
MR_WholeEdgeMap * value )

"origin" edges to "after stitch" edges (1-1) Modifies a member variable of class MR::BooleanResultMapper::Maps named old2newEdges. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element old2newEdges. When this function is called, this object will drop object references it had previously in old2newEdges.

◆ MR_BooleanResultMapper_Maps_Set_old2newVerts()

MRC_API void MR_BooleanResultMapper_Maps_Set_old2newVerts ( MR_BooleanResultMapper_Maps * _this,
MR_PassBy value_pass_by,
MR_VertMap * value )

"origin" vertices to "after stitch" vertices (1-1) Modifies a member variable of class MR::BooleanResultMapper::Maps named old2newVerts. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element old2newVerts. When this function is called, this object will drop object references it had previously in old2newVerts.

◆ MR_BooleanResultMapper_newFaces()

MRC_API MR_FaceBitSet * MR_BooleanResultMapper_newFaces ( const MR_BooleanResultMapper * _this)

Returns only new faces that are created during boolean operation Generated from method MR::BooleanResultMapper::newFaces. Parameter _this can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_FaceBitSet_Destroy() to free it when you're done using it.

◆ MR_BooleanResultMapper_OffsetMutablePtr()

MRC_API MR_BooleanResultMapper * MR_BooleanResultMapper_OffsetMutablePtr ( MR_BooleanResultMapper * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.

◆ MR_BooleanResultMapper_OffsetPtr()

MRC_API const MR_BooleanResultMapper * MR_BooleanResultMapper_OffsetPtr ( const MR_BooleanResultMapper * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.

◆ MR_BooleanResultMapper_Set_maps()

MRC_API void MR_BooleanResultMapper_Set_maps ( MR_BooleanResultMapper * _this,
MR_PassBy value_pass_by,
MR_std_array_MR_BooleanResultMapper_Maps_2 * value )

Modifies a member variable of class MR::BooleanResultMapper named maps. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element maps. When this function is called, this object will drop object references it had previously in maps.

◆ MR_doBooleanOperation()

MRC_API MR_expected_MR_Mesh_std_string * MR_doBooleanOperation ( MR_Mesh * meshACut,
MR_Mesh * meshBCut,
const MR_std_vector_std_vector_MR_EdgeId * cutEdgesA,
const MR_std_vector_std_vector_MR_EdgeId * cutEdgesB,
MR_BooleanOperation operation,
const MR_AffineXf3f * rigidB2A,
MR_BooleanResultMapper * mapper,
const bool * mergeAllNonIntersectingComponents,
const MR_BooleanInternalParameters * intParams )

Perform boolean operation on cut meshes

Returns
mesh in space of meshA or error.
Note
: actually this function is meant to be internal, use "boolean" instead Generated from function MR::doBooleanOperation. Parameter meshACut can not be null. It is a single object. In C++ this parameter takes an rvalue reference: it might invalidate the passed object, but if your pointer is owning, you must still destroy it manually later. Parameter meshBCut can not be null. It is a single object. In C++ this parameter takes an rvalue reference: it might invalidate the passed object, but if your pointer is owning, you must still destroy it manually later. Parameter cutEdgesA can not be null. It is a single object. Parameter cutEdgesB can not be null. It is a single object. Parameter rigidB2A defaults to a null pointer in C++. Parameter mapper defaults to a null pointer in C++. Parameter mergeAllNonIntersectingComponents has a default argument: false, pass a null pointer to use it. Parameter intParams is a single object. Parameter intParams has a default argument: {}, pass a null pointer to use it. Never returns null. Returns an instance allocated on the heap! Must call MR_expected_MR_Mesh_std_string_Destroy() to free it when you're done using it.