MeshLib C Docs
Loading...
Searching...
No Matches
MROffsetVerts.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_Mesh MR_Mesh
 
typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float
 
typedef struct MR_std_function_float_from_MR_VertId MR_std_function_float_from_MR_VertId
 
typedef struct MR_std_optional_MR_VertCoords MR_std_optional_MR_VertCoords
 
typedef struct MR_std_optional_MR_VertScalars MR_std_optional_MR_VertScalars
 
typedef struct MR_ThickenParams MR_ThickenParams
 Generated from class MR::ThickenParams.
 
typedef struct MR_ZCompensateParams MR_ZCompensateParams
 Generated from class MR::ZCompensateParams.
 

Functions

MRC_API bool MR_offsetVerts (MR_Mesh *mesh, const MR_std_function_float_from_MR_VertId *offset, const MR_std_function_bool_from_float *cb)
 
MRC_API const float * MR_ThickenParams_Get_outsideOffset (const MR_ThickenParams *_this)
 
MRC_API void MR_ThickenParams_Set_outsideOffset (MR_ThickenParams *_this, float value)
 
MRC_API float * MR_ThickenParams_GetMutable_outsideOffset (MR_ThickenParams *_this)
 
MRC_API const float * MR_ThickenParams_Get_insideOffset (const MR_ThickenParams *_this)
 
MRC_API void MR_ThickenParams_Set_insideOffset (MR_ThickenParams *_this, float value)
 
MRC_API float * MR_ThickenParams_GetMutable_insideOffset (MR_ThickenParams *_this)
 
MRC_API MR_ThickenParamsMR_ThickenParams_DefaultConstruct (void)
 
MRC_API MR_ThickenParamsMR_ThickenParams_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_ThickenParamsMR_ThickenParams_ConstructFrom (float outsideOffset, float insideOffset)
 
MRC_API const MR_ThickenParamsMR_ThickenParams_OffsetPtr (const MR_ThickenParams *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_ThickenParamsMR_ThickenParams_OffsetMutablePtr (MR_ThickenParams *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_ThickenParamsMR_ThickenParams_ConstructFromAnother (const MR_ThickenParams *_other)
 
MRC_API void MR_ThickenParams_Destroy (const MR_ThickenParams *_this)
 Destroys a heap-allocated instance of MR_ThickenParams. Does nothing if the pointer is null.
 
MRC_API void MR_ThickenParams_DestroyArray (const MR_ThickenParams *_this)
 Destroys a heap-allocated array of MR_ThickenParams. Does nothing if the pointer is null.
 
MRC_API MR_ThickenParamsMR_ThickenParams_AssignFromAnother (MR_ThickenParams *_this, const MR_ThickenParams *_other)
 
MRC_API MR_MeshMR_makeThickMesh (const MR_Mesh *m, const MR_ThickenParams *params)
 
MRC_API const float * MR_ZCompensateParams_Get_maxShift (const MR_ZCompensateParams *_this)
 
MRC_API void MR_ZCompensateParams_Set_maxShift (MR_ZCompensateParams *_this, float value)
 
MRC_API float * MR_ZCompensateParams_GetMutable_maxShift (MR_ZCompensateParams *_this)
 
MRC_API const bool * MR_ZCompensateParams_Get_reduceSelfIntersections (const MR_ZCompensateParams *_this)
 
MRC_API void MR_ZCompensateParams_Set_reduceSelfIntersections (MR_ZCompensateParams *_this, bool value)
 
MRC_API bool * MR_ZCompensateParams_GetMutable_reduceSelfIntersections (MR_ZCompensateParams *_this)
 
MRC_API const float * MR_ZCompensateParams_Get_minThickness (const MR_ZCompensateParams *_this)
 
MRC_API void MR_ZCompensateParams_Set_minThickness (MR_ZCompensateParams *_this, float value)
 
MRC_API float * MR_ZCompensateParams_GetMutable_minThickness (MR_ZCompensateParams *_this)
 
MRC_API const MR_std_function_bool_from_floatMR_ZCompensateParams_Get_progress (const MR_ZCompensateParams *_this)
 
MRC_API void MR_ZCompensateParams_Set_progress (MR_ZCompensateParams *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value)
 
MRC_API MR_std_function_bool_from_floatMR_ZCompensateParams_GetMutable_progress (MR_ZCompensateParams *_this)
 
MRC_API MR_ZCompensateParamsMR_ZCompensateParams_DefaultConstruct (void)
 
MRC_API MR_ZCompensateParamsMR_ZCompensateParams_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_ZCompensateParamsMR_ZCompensateParams_ConstructFrom (float maxShift, bool reduceSelfIntersections, float minThickness, MR_PassBy progress_pass_by, MR_std_function_bool_from_float *progress)
 
MRC_API const MR_ZCompensateParamsMR_ZCompensateParams_OffsetPtr (const MR_ZCompensateParams *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_ZCompensateParamsMR_ZCompensateParams_OffsetMutablePtr (MR_ZCompensateParams *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_ZCompensateParamsMR_ZCompensateParams_ConstructFromAnother (MR_PassBy _other_pass_by, MR_ZCompensateParams *_other)
 
MRC_API void MR_ZCompensateParams_Destroy (const MR_ZCompensateParams *_this)
 Destroys a heap-allocated instance of MR_ZCompensateParams. Does nothing if the pointer is null.
 
MRC_API void MR_ZCompensateParams_DestroyArray (const MR_ZCompensateParams *_this)
 Destroys a heap-allocated array of MR_ZCompensateParams. Does nothing if the pointer is null.
 
MRC_API MR_ZCompensateParamsMR_ZCompensateParams_AssignFromAnother (MR_ZCompensateParams *_this, MR_PassBy _other_pass_by, MR_ZCompensateParams *_other)
 
MRC_API bool MR_zCompensate (MR_Mesh *mesh, const MR_ZCompensateParams *params)
 
MRC_API MR_std_optional_MR_VertScalarsMR_findZcompensationShifts (const MR_Mesh *mesh, const MR_ZCompensateParams *params)
 
MRC_API MR_std_optional_MR_VertCoordsMR_findZcompensatedPositions (const MR_Mesh *mesh, const MR_ZCompensateParams *params)
 

Typedef Documentation

◆ MR_Mesh

typedef struct MR_Mesh MR_Mesh

◆ MR_std_function_bool_from_float

◆ MR_std_function_float_from_MR_VertId

◆ MR_std_optional_MR_VertCoords

◆ MR_std_optional_MR_VertScalars

◆ MR_ThickenParams

Generated from class MR::ThickenParams.

◆ MR_ZCompensateParams

Generated from class MR::ZCompensateParams.

Function Documentation

◆ MR_findZcompensatedPositions()

MRC_API MR_std_optional_MR_VertCoords * MR_findZcompensatedPositions ( const MR_Mesh * mesh,
const MR_ZCompensateParams * params )

finds vertices positions of the mesh after z-compensation without modifying the mesh Generated from function MR::findZcompensatedPositions. Parameter mesh can not be null. It is a single object. Parameter params can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_std_optional_MR_VertCoords_Destroy() to free it when you're done using it.

◆ MR_findZcompensationShifts()

MRC_API MR_std_optional_MR_VertScalars * MR_findZcompensationShifts ( const MR_Mesh * mesh,
const MR_ZCompensateParams * params )

finds the shift along z-axis for each vertex without modifying the mesh Generated from function MR::findZcompensationShifts. Parameter mesh can not be null. It is a single object. Parameter params can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_std_optional_MR_VertScalars_Destroy() to free it when you're done using it.

◆ MR_makeThickMesh()

MRC_API MR_Mesh * MR_makeThickMesh ( const MR_Mesh * m,
const MR_ThickenParams * params )

given a mesh m, representing a surface, creates new closed mesh by cloning mirrored mesh, and shifting original part and cloned part in different directions according to params, if original mesh was open then stitches corresponding boundaries of two parts Generated from function MR::makeThickMesh. Parameter m can not be null. It is a single object. Parameter params can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_Mesh_Destroy() to free it when you're done using it.

◆ MR_offsetVerts()

MRC_API bool MR_offsetVerts ( MR_Mesh * mesh,
const MR_std_function_float_from_MR_VertId * offset,
const MR_std_function_bool_from_float * cb )

Modifies mesh shifting each vertex along its pseudonormal by the corresponding offset

Returns
false if cancelled. Generated from function MR::offsetVerts. Parameter mesh can not be null. It is a single object. Parameter offset can not be null. It is a single object. Parameter cb is a single object. Parameter cb has a default argument: {}, pass a null pointer to use it.

◆ MR_ThickenParams_AssignFromAnother()

MRC_API MR_ThickenParams * MR_ThickenParams_AssignFromAnother ( MR_ThickenParams * _this,
const MR_ThickenParams * _other )

Generated from a method of class MR::ThickenParams 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_ThickenParams_ConstructFrom()

MRC_API MR_ThickenParams * MR_ThickenParams_ConstructFrom ( float outsideOffset,
float insideOffset )

Constructs MR::ThickenParams elementwise. Never returns null. Returns an instance allocated on the heap! Must call MR_ThickenParams_Destroy() to free it when you're done using it.

◆ MR_ThickenParams_ConstructFromAnother()

MRC_API MR_ThickenParams * MR_ThickenParams_ConstructFromAnother ( const MR_ThickenParams * _other)

Generated from a constructor of class MR::ThickenParams. Parameter _other can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_ThickenParams_Destroy() to free it when you're done using it.

◆ MR_ThickenParams_DefaultConstruct()

MRC_API MR_ThickenParams * MR_ThickenParams_DefaultConstruct ( void )

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

◆ MR_ThickenParams_DefaultConstructArray()

MRC_API MR_ThickenParams * MR_ThickenParams_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_ThickenParams_DestroyArray(). Use MR_ThickenParams_OffsetMutablePtr() and MR_ThickenParams_OffsetPtr() to access the array elements.

◆ MR_ThickenParams_Destroy()

MRC_API void MR_ThickenParams_Destroy ( const MR_ThickenParams * _this)

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

◆ MR_ThickenParams_DestroyArray()

MRC_API void MR_ThickenParams_DestroyArray ( const MR_ThickenParams * _this)

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

◆ MR_ThickenParams_Get_insideOffset()

MRC_API const float * MR_ThickenParams_Get_insideOffset ( const MR_ThickenParams * _this)

the amount of offset for cloned mirrored mesh vertices in the opposite direction Returns a pointer to a member variable of class MR::ThickenParams named insideOffset. 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_ThickenParams_Get_outsideOffset()

MRC_API const float * MR_ThickenParams_Get_outsideOffset ( const MR_ThickenParams * _this)

the amount of offset for original mesh vertices Returns a pointer to a member variable of class MR::ThickenParams named outsideOffset. 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_ThickenParams_GetMutable_insideOffset()

MRC_API float * MR_ThickenParams_GetMutable_insideOffset ( MR_ThickenParams * _this)

the amount of offset for cloned mirrored mesh vertices in the opposite direction Returns a mutable pointer to a member variable of class MR::ThickenParams named insideOffset. 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_ThickenParams_GetMutable_outsideOffset()

MRC_API float * MR_ThickenParams_GetMutable_outsideOffset ( MR_ThickenParams * _this)

the amount of offset for original mesh vertices Returns a mutable pointer to a member variable of class MR::ThickenParams named outsideOffset. 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_ThickenParams_OffsetMutablePtr()

MRC_API MR_ThickenParams * MR_ThickenParams_OffsetMutablePtr ( MR_ThickenParams * 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_ThickenParams_OffsetPtr()

MRC_API const MR_ThickenParams * MR_ThickenParams_OffsetPtr ( const MR_ThickenParams * 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_ThickenParams_Set_insideOffset()

MRC_API void MR_ThickenParams_Set_insideOffset ( MR_ThickenParams * _this,
float value )

the amount of offset for cloned mirrored mesh vertices in the opposite direction Modifies a member variable of class MR::ThickenParams named insideOffset. Parameter _this can not be null. It is a single object.

◆ MR_ThickenParams_Set_outsideOffset()

MRC_API void MR_ThickenParams_Set_outsideOffset ( MR_ThickenParams * _this,
float value )

the amount of offset for original mesh vertices Modifies a member variable of class MR::ThickenParams named outsideOffset. Parameter _this can not be null. It is a single object.

◆ MR_zCompensate()

MRC_API bool MR_zCompensate ( MR_Mesh * mesh,
const MR_ZCompensateParams * params )

For 3D printers: shifts every vertex with normal having negative projection on Z-axis, along Z-axis; mesh's topology is preserved unchanged

Returns
false if cancelled. Generated from function MR::zCompensate. Parameter mesh can not be null. It is a single object. Parameter params can not be null. It is a single object.

◆ MR_ZCompensateParams_AssignFromAnother()

MRC_API MR_ZCompensateParams * MR_ZCompensateParams_AssignFromAnother ( MR_ZCompensateParams * _this,
MR_PassBy _other_pass_by,
MR_ZCompensateParams * _other )

Generated from a method of class MR::ZCompensateParams 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_ZCompensateParams_ConstructFrom()

MRC_API MR_ZCompensateParams * MR_ZCompensateParams_ConstructFrom ( float maxShift,
bool reduceSelfIntersections,
float minThickness,
MR_PassBy progress_pass_by,
MR_std_function_bool_from_float * progress )

Constructs MR::ZCompensateParams elementwise. Never returns null. Returns an instance allocated on the heap! Must call MR_ZCompensateParams_Destroy() to free it when you're done using it.

◆ MR_ZCompensateParams_ConstructFromAnother()

MRC_API MR_ZCompensateParams * MR_ZCompensateParams_ConstructFromAnother ( MR_PassBy _other_pass_by,
MR_ZCompensateParams * _other )

Generated from a constructor of class MR::ZCompensateParams. Never returns null. Returns an instance allocated on the heap! Must call MR_ZCompensateParams_Destroy() to free it when you're done using it.

◆ MR_ZCompensateParams_DefaultConstruct()

MRC_API MR_ZCompensateParams * MR_ZCompensateParams_DefaultConstruct ( void )

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

◆ MR_ZCompensateParams_DefaultConstructArray()

MRC_API MR_ZCompensateParams * MR_ZCompensateParams_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_ZCompensateParams_DestroyArray(). Use MR_ZCompensateParams_OffsetMutablePtr() and MR_ZCompensateParams_OffsetPtr() to access the array elements.

◆ MR_ZCompensateParams_Destroy()

MRC_API void MR_ZCompensateParams_Destroy ( const MR_ZCompensateParams * _this)

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

◆ MR_ZCompensateParams_DestroyArray()

MRC_API void MR_ZCompensateParams_DestroyArray ( const MR_ZCompensateParams * _this)

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

◆ MR_ZCompensateParams_Get_maxShift()

MRC_API const float * MR_ZCompensateParams_Get_maxShift ( const MR_ZCompensateParams * _this)

shift of mesh parts orthogonal to Z-axis with normal against Z-axis; for other mesh parts the shift will be less and will depend on the angle between point pseudo-normal and Z-axis Returns a pointer to a member variable of class MR::ZCompensateParams named maxShift. 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_ZCompensateParams_Get_minThickness()

MRC_API const float * MR_ZCompensateParams_Get_minThickness ( const MR_ZCompensateParams * _this)

only if (reduceSelfIntersections = true), avoids moving a vertex closer than this distance to another triangle Returns a pointer to a member variable of class MR::ZCompensateParams named minThickness. 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_ZCompensateParams_Get_progress()

MRC_API const MR_std_function_bool_from_float * MR_ZCompensateParams_Get_progress ( const MR_ZCompensateParams * _this)

to report progress and cancel processing Returns a pointer to a member variable of class MR::ZCompensateParams named progress. 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_ZCompensateParams_Get_reduceSelfIntersections()

MRC_API const bool * MR_ZCompensateParams_Get_reduceSelfIntersections ( const MR_ZCompensateParams * _this)

if true, limits the movement of each vertex to reduce self-intersections in the mesh Returns a pointer to a member variable of class MR::ZCompensateParams named reduceSelfIntersections. 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_ZCompensateParams_GetMutable_maxShift()

MRC_API float * MR_ZCompensateParams_GetMutable_maxShift ( MR_ZCompensateParams * _this)

shift of mesh parts orthogonal to Z-axis with normal against Z-axis; for other mesh parts the shift will be less and will depend on the angle between point pseudo-normal and Z-axis Returns a mutable pointer to a member variable of class MR::ZCompensateParams named maxShift. 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_ZCompensateParams_GetMutable_minThickness()

MRC_API float * MR_ZCompensateParams_GetMutable_minThickness ( MR_ZCompensateParams * _this)

only if (reduceSelfIntersections = true), avoids moving a vertex closer than this distance to another triangle Returns a mutable pointer to a member variable of class MR::ZCompensateParams named minThickness. 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_ZCompensateParams_GetMutable_progress()

MRC_API MR_std_function_bool_from_float * MR_ZCompensateParams_GetMutable_progress ( MR_ZCompensateParams * _this)

to report progress and cancel processing Returns a mutable pointer to a member variable of class MR::ZCompensateParams named progress. 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_ZCompensateParams_GetMutable_reduceSelfIntersections()

MRC_API bool * MR_ZCompensateParams_GetMutable_reduceSelfIntersections ( MR_ZCompensateParams * _this)

if true, limits the movement of each vertex to reduce self-intersections in the mesh Returns a mutable pointer to a member variable of class MR::ZCompensateParams named reduceSelfIntersections. 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_ZCompensateParams_OffsetMutablePtr()

MRC_API MR_ZCompensateParams * MR_ZCompensateParams_OffsetMutablePtr ( MR_ZCompensateParams * 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_ZCompensateParams_OffsetPtr()

MRC_API const MR_ZCompensateParams * MR_ZCompensateParams_OffsetPtr ( const MR_ZCompensateParams * 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_ZCompensateParams_Set_maxShift()

MRC_API void MR_ZCompensateParams_Set_maxShift ( MR_ZCompensateParams * _this,
float value )

shift of mesh parts orthogonal to Z-axis with normal against Z-axis; for other mesh parts the shift will be less and will depend on the angle between point pseudo-normal and Z-axis Modifies a member variable of class MR::ZCompensateParams named maxShift. Parameter _this can not be null. It is a single object.

◆ MR_ZCompensateParams_Set_minThickness()

MRC_API void MR_ZCompensateParams_Set_minThickness ( MR_ZCompensateParams * _this,
float value )

only if (reduceSelfIntersections = true), avoids moving a vertex closer than this distance to another triangle Modifies a member variable of class MR::ZCompensateParams named minThickness. Parameter _this can not be null. It is a single object.

◆ MR_ZCompensateParams_Set_progress()

MRC_API void MR_ZCompensateParams_Set_progress ( MR_ZCompensateParams * _this,
MR_PassBy value_pass_by,
MR_std_function_bool_from_float * value )

to report progress and cancel processing Modifies a member variable of class MR::ZCompensateParams named progress. Parameter _this can not be null. It is a single object.

◆ MR_ZCompensateParams_Set_reduceSelfIntersections()

MRC_API void MR_ZCompensateParams_Set_reduceSelfIntersections ( MR_ZCompensateParams * _this,
bool value )

if true, limits the movement of each vertex to reduce self-intersections in the mesh Modifies a member variable of class MR::ZCompensateParams named reduceSelfIntersections. Parameter _this can not be null. It is a single object.