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>
#include <stdint.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_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 int32_t MR_BooleanOperation
 
typedef struct MR_BooleanResultMapper MR_BooleanResultMapper
 Generated from class MR::BooleanResultMapper.
 
typedef int32_t MR_BooleanResultMapper_MapObject
 Input object index enum.
 
typedef struct MR_BooleanResultMapper_Maps MR_BooleanResultMapper_Maps
 Generated from class MR::BooleanResultMapper::Maps.
 
typedef struct MR_BooleanInternalParameters MR_BooleanInternalParameters
 

Enumerations

enum  {
  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_A = 0 , MR_BooleanResultMapper_MapObject_B = 1 , MR_BooleanResultMapper_MapObject_Count = 2 }
 

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)
 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.
 
MRC_API MR_BooleanResultMapperMR_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.
 
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_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)
 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.
 
MRC_API MR_BooleanResultMapper_MapsMR_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.
 
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)
 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.
 
MRC_API MR_BooleanInternalParametersMR_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.
 
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.

◆ MR_BooleanOperation

typedef int32_t MR_BooleanOperation

Enum class of available CSG operations

Two separate meshes
See also
MR::boolean

◆ MR_BooleanResultMapper

◆ MR_BooleanResultMapper_MapObject

Input object index enum.

◆ MR_BooleanResultMapper_Maps

◆ 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_VertBitSet

typedef struct MR_VertBitSet MR_VertBitSet

◆ MR_VertMap

typedef struct MR_VertMap MR_VertMap

◆ MR_WholeEdgeMap

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
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 

◆ anonymous enum

anonymous 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 a method of class MR::BooleanInternalParameters named operator=. Parameter _this can not be null. It is a single object. Parameter _other 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_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. 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_ConstructFromAnother()

MRC_API MR_BooleanInternalParameters * MR_BooleanInternalParameters_ConstructFromAnother ( const MR_BooleanInternalParameters * _other)

Generated from a constructor of class MR::BooleanInternalParameters. Parameter _other can not be null. It is a single 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ MR_BooleanResultMapper_AssignFromAnother()

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

Generated from a method of class MR::BooleanResultMapper named operator=. 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_ConstructFromAnother()

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

Generated from a constructor of class MR::BooleanResultMapper. 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 a method of class MR::BooleanResultMapper named 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 a method of class MR::BooleanResultMapper named 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 a method of class MR::BooleanResultMapper named 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 a method of class MR::BooleanResultMapper named 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_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 a method of class MR::BooleanResultMapper named 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 a method of class MR::BooleanResultMapper::Maps named operator=. 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_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. 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_ConstructFromAnother()

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

Generated from a constructor of class MR::BooleanResultMapper::Maps. 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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 a method of class MR::BooleanResultMapper named 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.

◆ 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.

◆ 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.

◆ 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.