MeshLib C Docs
Loading...
Searching...
No Matches
MRBoxNesting.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRVector3.h>
4#include <MRCMisc/common.h>
5#include <MRCMisc/exports.h>
6
7#include <stdbool.h>
8#include <stddef.h>
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14typedef struct MR_Box3f MR_Box3f; // Defined in `#include <MRCMesh/MRBox.h>`.
15typedef struct MR_Nesting_NestingBaseParams MR_Nesting_NestingBaseParams; // Defined in `#include <MRCMesh/MRNestingStructures.h>`.
16typedef struct MR_Vector_MR_Nesting_MeshXf_MR_ObjId MR_Vector_MR_Nesting_MeshXf_MR_ObjId; // Defined in `#include <MRCMesh/MRVector.h>`.
17typedef struct MR_expected_MR_Vector_MR_Nesting_NestingResult_MR_ObjId_std_string MR_expected_MR_Vector_MR_Nesting_NestingResult_MR_ObjId_std_string; // Defined in `#include <MRCMisc/expected_MR_Vector_MR_Nesting_NestingResult_MR_ObjId_std_string.h>`.
18typedef struct MR_expected_void_std_string MR_expected_void_std_string; // Defined in `#include <MRCMisc/expected_void_std_string.h>`.
19typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
20typedef struct MR_std_shared_ptr_MR_Nesting_IBoxNestingPriority MR_std_shared_ptr_MR_Nesting_IBoxNestingPriority; // Defined in `#include <MRCMisc/std_shared_ptr_MR_Nesting_IBoxNestingPriority.h>`.
21typedef struct MR_std_vector_MR_Box3f MR_std_vector_MR_Box3f; // Defined in `#include <MRCMisc/std_vector_MR_Box3f.h>`.
22typedef struct MR_std_vector_MR_Nesting_BoxNestingCorner MR_std_vector_MR_Nesting_BoxNestingCorner; // Defined in `#include <MRCMisc/std_vector_MR_Nesting_BoxNestingCorner.h>`.
23
24
28
32
36
40
47
54
61
68
75
82
86
91
98
102
106
112
115
118
126
129
132
138
144
149
153
157
163
169
176
182
189
196
202
209
216
222
229
236
242
249
256
262
269
277
285
293
300
307
314
321
328
335
342
349
356
363
370
377
381
386
395MRC_API MR_Nesting_BoxNestingOptions *MR_Nesting_BoxNestingOptions_ConstructFrom(bool allow3dNesting, bool allowRotation, bool volumeBasedOrder, bool checkLessCombinations, int iterationLimit, MR_PassBy priorityMetric_pass_by, MR_std_shared_ptr_MR_Nesting_IBoxNestingPriority *priorityMetric, const MR_Vector3f *expansionFactor, const MR_std_vector_MR_Box3f *preNestedVolumes, const MR_std_vector_MR_Nesting_BoxNestingCorner *additinalSocketCorners, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb);
396
400
404
409
412
415
422
432
438
445
451
457
463
469
473
478
486
490
494
499
502
505
512
519
520#ifdef __cplusplus
521} // extern "C"
522#endif
struct MR_std_function_bool_from_float MR_std_function_bool_from_float
Definition MR3mf.h:10
struct MR_Nesting_NestingBaseParams MR_Nesting_NestingBaseParams
Definition MRBoxNesting.h:15
MRC_API MR_Nesting_NestingBaseParams * MR_Nesting_BoxNestingParams_GetMutable_baseParams(MR_Nesting_BoxNestingParams *_this)
struct MR_std_shared_ptr_MR_Nesting_IBoxNestingPriority MR_std_shared_ptr_MR_Nesting_IBoxNestingPriority
Definition MRBoxNesting.h:20
MRC_API void MR_Nesting_BoxNestingParams_Set_options(MR_Nesting_BoxNestingParams *_this, MR_PassBy value_pass_by, MR_Nesting_BoxNestingOptions *value)
MRC_API const MR_std_function_bool_from_float * MR_Nesting_BoxNestingOptions_Get_cb(const MR_Nesting_BoxNestingOptions *_this)
MRC_API MR_Nesting_BoxNestingOptions * MR_Nesting_BoxNestingOptions_ConstructFromAnother(MR_PassBy _other_pass_by, MR_Nesting_BoxNestingOptions *_other)
struct MR_std_vector_MR_Box3f MR_std_vector_MR_Box3f
Definition MRBoxNesting.h:21
MRC_API void MR_Nesting_BoxNestingOptions_Set_expansionFactor(MR_Nesting_BoxNestingOptions *_this, const MR_Vector3f *value)
struct MR_Nesting_IBoxNestingPriority MR_Nesting_IBoxNestingPriority
Definition MRBoxNesting.h:31
MRC_API MR_Nesting_BoxNestingOptions * MR_Nesting_BoxNestingParams_GetMutable_options(MR_Nesting_BoxNestingParams *_this)
MRC_API MR_Vector3f * MR_Nesting_BoxNestingCorner_GetMutable_pos(MR_Nesting_BoxNestingCorner *_this)
MRC_API const MR_Vector3f *const * MR_Nesting_BoxNestingOptions_Get_expansionFactor(const MR_Nesting_BoxNestingOptions *_this)
MRC_API MR_Nesting_BoxNestingParams * MR_Nesting_BoxNestingParams_ConstructFrom(const MR_Nesting_NestingBaseParams *baseParams, MR_PassBy options_pass_by, MR_Nesting_BoxNestingOptions *options)
MRC_API MR_Nesting_IBoxNestingPriority * MR_Nesting_IBoxNestingPriority_OffsetMutablePtr(MR_Nesting_IBoxNestingPriority *ptr, ptrdiff_t i)
MRC_API MR_Nesting_BoxNestingCorner * MR_Nesting_BoxNestingCorner_ConstructFrom(MR_Vector3f pos, unsigned char bitMask)
MRC_API MR_std_shared_ptr_MR_Nesting_IBoxNestingPriority * MR_Nesting_getNeighborigDensityPriorityMetric(const MR_Box3f *nest, float neighborhood)
MRC_API MR_std_function_bool_from_float * MR_Nesting_BoxNestingOptions_GetMutable_cb(MR_Nesting_BoxNestingOptions *_this)
MRC_API void MR_Nesting_BoxNestingOptions_Set_allow3dNesting(MR_Nesting_BoxNestingOptions *_this, bool value)
MRC_API MR_Nesting_BoxNestingParams * MR_Nesting_BoxNestingParams_AssignFromAnother(MR_Nesting_BoxNestingParams *_this, MR_PassBy _other_pass_by, MR_Nesting_BoxNestingParams *_other)
MRC_API const MR_Vector3f ** MR_Nesting_BoxNestingOptions_GetMutable_expansionFactor(MR_Nesting_BoxNestingOptions *_this)
MRC_API void MR_Nesting_BoxNestingOptions_Set_allowRotation(MR_Nesting_BoxNestingOptions *_this, bool value)
MRC_API bool * MR_Nesting_BoxNestingOptions_GetMutable_checkLessCombinations(MR_Nesting_BoxNestingOptions *_this)
struct MR_expected_MR_Vector_MR_Nesting_NestingResult_MR_ObjId_std_string MR_expected_MR_Vector_MR_Nesting_NestingResult_MR_ObjId_std_string
Definition MRBoxNesting.h:17
MRC_API const MR_std_shared_ptr_MR_Nesting_IBoxNestingPriority * MR_Nesting_BoxNestingOptions_Get_priorityMetric(const MR_Nesting_BoxNestingOptions *_this)
MRC_API void MR_Nesting_BoxNestingOptions_Set_volumeBasedOrder(MR_Nesting_BoxNestingOptions *_this, bool value)
MRC_API void MR_Nesting_BoxNestingOptions_Set_checkLessCombinations(MR_Nesting_BoxNestingOptions *_this, bool value)
MRC_API bool * MR_Nesting_BoxNestingOptions_GetMutable_volumeBasedOrder(MR_Nesting_BoxNestingOptions *_this)
MRC_API MR_Nesting_BoxNestingParams * MR_Nesting_BoxNestingParams_ConstructFromAnother(MR_PassBy _other_pass_by, MR_Nesting_BoxNestingParams *_other)
MRC_API const MR_Vector3f * MR_Nesting_BoxNestingCorner_Get_pos(const MR_Nesting_BoxNestingCorner *_this)
MRC_API const bool * MR_Nesting_BoxNestingOptions_Get_allowRotation(const MR_Nesting_BoxNestingOptions *_this)
MRC_API unsigned char * MR_Nesting_BoxNestingCorner_GetMutable_bitMask(MR_Nesting_BoxNestingCorner *_this)
MRC_API void MR_Nesting_BoxNestingOptions_Set_additinalSocketCorners(MR_Nesting_BoxNestingOptions *_this, const MR_std_vector_MR_Nesting_BoxNestingCorner *value)
MRC_API void MR_Nesting_BoxNestingCorner_Set_pos(MR_Nesting_BoxNestingCorner *_this, MR_Vector3f value)
MRC_API MR_Nesting_BoxNestingCorner * MR_Nesting_BoxNestingCorner_AssignFromAnother(MR_Nesting_BoxNestingCorner *_this, const MR_Nesting_BoxNestingCorner *_other)
MRC_API MR_Nesting_BoxNestingOptions * MR_Nesting_BoxNestingOptions_ConstructFrom(bool allow3dNesting, bool allowRotation, bool volumeBasedOrder, bool checkLessCombinations, int iterationLimit, MR_PassBy priorityMetric_pass_by, MR_std_shared_ptr_MR_Nesting_IBoxNestingPriority *priorityMetric, const MR_Vector3f *expansionFactor, const MR_std_vector_MR_Box3f *preNestedVolumes, const MR_std_vector_MR_Nesting_BoxNestingCorner *additinalSocketCorners, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API MR_std_shared_ptr_MR_Nesting_IBoxNestingPriority * MR_Nesting_getNestPostionMinPriorityMetric(const MR_Box3f *nest)
MRC_API bool * MR_Nesting_BoxNestingOptions_GetMutable_allow3dNesting(MR_Nesting_BoxNestingOptions *_this)
MRC_API MR_Nesting_BoxNestingCorner * MR_Nesting_BoxNestingCorner_DefaultConstruct(void)
MRC_API void MR_Nesting_BoxNestingOptions_Set_priorityMetric(MR_Nesting_BoxNestingOptions *_this, MR_PassBy value_pass_by, MR_std_shared_ptr_MR_Nesting_IBoxNestingPriority *value)
MRC_API MR_Nesting_BoxNestingOptions * MR_Nesting_BoxNestingOptions_OffsetMutablePtr(MR_Nesting_BoxNestingOptions *ptr, ptrdiff_t i)
struct MR_std_vector_MR_Nesting_BoxNestingCorner MR_std_vector_MR_Nesting_BoxNestingCorner
Definition MRBoxNesting.h:22
MRC_API MR_expected_void_std_string * MR_Nesting_fillNestingSocketCorneres(const MR_std_vector_MR_Box3f *nestedBoxes, MR_std_vector_MR_Nesting_BoxNestingCorner *outCorners, const MR_std_function_bool_from_float *cb)
MRC_API const MR_Nesting_BoxNestingOptions * MR_Nesting_BoxNestingOptions_OffsetPtr(const MR_Nesting_BoxNestingOptions *ptr, ptrdiff_t i)
MRC_API const MR_std_vector_MR_Box3f *const * MR_Nesting_BoxNestingOptions_Get_preNestedVolumes(const MR_Nesting_BoxNestingOptions *_this)
MRC_API MR_Nesting_BoxNestingOptions * MR_Nesting_BoxNestingOptions_AssignFromAnother(MR_Nesting_BoxNestingOptions *_this, MR_PassBy _other_pass_by, MR_Nesting_BoxNestingOptions *_other)
struct MR_Nesting_BoxNestingCorner MR_Nesting_BoxNestingCorner
Definition MRBoxNesting.h:27
MRC_API MR_Nesting_BoxNestingParams * MR_Nesting_BoxNestingParams_DefaultConstructArray(size_t num_elems)
struct MR_Nesting_BoxNestingOptions MR_Nesting_BoxNestingOptions
Definition MRBoxNesting.h:35
MRC_API void MR_Nesting_IBoxNestingPriority_DestroyArray(const MR_Nesting_IBoxNestingPriority *_this)
Destroys a heap-allocated array of MR_Nesting_IBoxNestingPriority. Does nothing if the pointer is nul...
MRC_API MR_Nesting_BoxNestingParams * MR_Nesting_BoxNestingParams_DefaultConstruct(void)
MRC_API const MR_std_vector_MR_Nesting_BoxNestingCorner ** MR_Nesting_BoxNestingOptions_GetMutable_additinalSocketCorners(MR_Nesting_BoxNestingOptions *_this)
struct MR_Nesting_BoxNestingParams MR_Nesting_BoxNestingParams
Definition MRBoxNesting.h:39
MRC_API void MR_Nesting_BoxNestingParams_DestroyArray(const MR_Nesting_BoxNestingParams *_this)
Destroys a heap-allocated array of MR_Nesting_BoxNestingParams. Does nothing if the pointer is null.
MRC_API MR_Nesting_BoxNestingOptions * MR_Nesting_BoxNestingOptions_DefaultConstruct(void)
MRC_API void MR_Nesting_BoxNestingOptions_Set_cb(MR_Nesting_BoxNestingOptions *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value)
MRC_API void MR_Nesting_BoxNestingCorner_Set_bitMask(MR_Nesting_BoxNestingCorner *_this, unsigned char value)
MRC_API const MR_Nesting_NestingBaseParams * MR_Nesting_BoxNestingParams_Get_baseParams(const MR_Nesting_BoxNestingParams *_this)
MRC_API void MR_Nesting_BoxNestingOptions_Set_iterationLimit(MR_Nesting_BoxNestingOptions *_this, int value)
MRC_API const MR_Nesting_BoxNestingOptions * MR_Nesting_BoxNestingParams_Get_options(const MR_Nesting_BoxNestingParams *_this)
MRC_API MR_Nesting_BoxNestingCorner * MR_Nesting_BoxNestingCorner_ConstructFromAnother(const MR_Nesting_BoxNestingCorner *_other)
MRC_API const unsigned char * MR_Nesting_BoxNestingCorner_Get_bitMask(const MR_Nesting_BoxNestingCorner *_this)
MRC_API void MR_Nesting_IBoxNestingPriority_Destroy(const MR_Nesting_IBoxNestingPriority *_this)
Destroys a heap-allocated instance of MR_Nesting_IBoxNestingPriority. Does nothing if the pointer is ...
MRC_API const bool * MR_Nesting_BoxNestingOptions_Get_allow3dNesting(const MR_Nesting_BoxNestingOptions *_this)
MRC_API MR_expected_MR_Vector_MR_Nesting_NestingResult_MR_ObjId_std_string * MR_Nesting_boxNesting(const MR_Vector_MR_Nesting_MeshXf_MR_ObjId *meshes, const MR_Nesting_BoxNestingParams *params)
MRC_API const MR_Nesting_BoxNestingCorner * MR_Nesting_BoxNestingCorner_OffsetPtr(const MR_Nesting_BoxNestingCorner *ptr, ptrdiff_t i)
MRC_API const MR_Nesting_IBoxNestingPriority * MR_Nesting_IBoxNestingPriority_OffsetPtr(const MR_Nesting_IBoxNestingPriority *ptr, ptrdiff_t i)
MRC_API MR_Nesting_BoxNestingCorner * MR_Nesting_BoxNestingCorner_OffsetMutablePtr(MR_Nesting_BoxNestingCorner *ptr, ptrdiff_t i)
MRC_API MR_Nesting_BoxNestingOptions * MR_Nesting_BoxNestingOptions_DefaultConstructArray(size_t num_elems)
MRC_API const MR_Nesting_BoxNestingParams * MR_Nesting_BoxNestingParams_OffsetPtr(const MR_Nesting_BoxNestingParams *ptr, ptrdiff_t i)
MRC_API void MR_Nesting_BoxNestingOptions_Destroy(const MR_Nesting_BoxNestingOptions *_this)
Destroys a heap-allocated instance of MR_Nesting_BoxNestingOptions. Does nothing if the pointer is nu...
MRC_API bool * MR_Nesting_BoxNestingOptions_GetMutable_allowRotation(MR_Nesting_BoxNestingOptions *_this)
MRC_API void MR_Nesting_BoxNestingCorner_Destroy(const MR_Nesting_BoxNestingCorner *_this)
Destroys a heap-allocated instance of MR_Nesting_BoxNestingCorner. Does nothing if the pointer is nul...
MRC_API const MR_std_vector_MR_Box3f ** MR_Nesting_BoxNestingOptions_GetMutable_preNestedVolumes(MR_Nesting_BoxNestingOptions *_this)
MRC_API MR_Nesting_BoxNestingCorner * MR_Nesting_BoxNestingCorner_DefaultConstructArray(size_t num_elems)
MRC_API int * MR_Nesting_BoxNestingOptions_GetMutable_iterationLimit(MR_Nesting_BoxNestingOptions *_this)
MRC_API void MR_Nesting_IBoxNestingPriority_addNested(MR_Nesting_IBoxNestingPriority *_this, const MR_Box3f *box)
MRC_API const bool * MR_Nesting_BoxNestingOptions_Get_volumeBasedOrder(const MR_Nesting_BoxNestingOptions *_this)
MRC_API double MR_Nesting_IBoxNestingPriority_complete(const MR_Nesting_IBoxNestingPriority *_this)
MRC_API void MR_Nesting_BoxNestingOptions_DestroyArray(const MR_Nesting_BoxNestingOptions *_this)
Destroys a heap-allocated array of MR_Nesting_BoxNestingOptions. Does nothing if the pointer is null.
MRC_API MR_Nesting_BoxNestingParams * MR_Nesting_BoxNestingParams_OffsetMutablePtr(MR_Nesting_BoxNestingParams *ptr, ptrdiff_t i)
MRC_API void MR_Nesting_IBoxNestingPriority_init(MR_Nesting_IBoxNestingPriority *_this, const MR_Box3f *thisBox)
MRC_API void MR_Nesting_BoxNestingParams_Set_baseParams(MR_Nesting_BoxNestingParams *_this, const MR_Nesting_NestingBaseParams *value)
MRC_API void MR_Nesting_BoxNestingCorner_DestroyArray(const MR_Nesting_BoxNestingCorner *_this)
Destroys a heap-allocated array of MR_Nesting_BoxNestingCorner. Does nothing if the pointer is null.
MRC_API void MR_Nesting_BoxNestingParams_Destroy(const MR_Nesting_BoxNestingParams *_this)
Destroys a heap-allocated instance of MR_Nesting_BoxNestingParams. Does nothing if the pointer is nul...
MRC_API const MR_std_vector_MR_Nesting_BoxNestingCorner *const * MR_Nesting_BoxNestingOptions_Get_additinalSocketCorners(const MR_Nesting_BoxNestingOptions *_this)
MRC_API MR_std_shared_ptr_MR_Nesting_IBoxNestingPriority * MR_Nesting_BoxNestingOptions_GetMutable_priorityMetric(MR_Nesting_BoxNestingOptions *_this)
MRC_API const int * MR_Nesting_BoxNestingOptions_Get_iterationLimit(const MR_Nesting_BoxNestingOptions *_this)
MRC_API const bool * MR_Nesting_BoxNestingOptions_Get_checkLessCombinations(const MR_Nesting_BoxNestingOptions *_this)
MRC_API void MR_Nesting_BoxNestingOptions_Set_preNestedVolumes(MR_Nesting_BoxNestingOptions *_this, const MR_std_vector_MR_Box3f *value)
struct MR_expected_void_std_string MR_expected_void_std_string
Definition MRCtm.h:26
struct MR_Vector_MR_Nesting_MeshXf_MR_ObjId MR_Vector_MR_Nesting_MeshXf_MR_ObjId
std::vector<T>-like container that requires specific indexing type,
Definition MRNesting3mfExport.h:14
MR_PassBy
Definition common.h:23
#define MRC_API
Definition include/MRCMisc/exports.h:11
Definition MRBox.h:107
Generated from class MR::Vector3f.
Definition MRVector3.h:47