MeshLib C++ Docs
Loading...
Searching...
No Matches
MRSequentialNester.h
Go to the documentation of this file.
1#pragma once
3#include "MRTetrisNesting.h"
4#include "MRMesh/MRBitSet.h"
5
6namespace MR
7{
10
11
12namespace Nesting
13{
14
17{
18public:
20 MRVOXELS_API SequentialNester( const NestingBaseParams& params, float voxelSize );
21
24 MRVOXELS_API Expected<NestingResult> nestMesh( const MeshXf& meshXf, const BoxNestingOptions& options, const std::vector<OutEdge>* densificationSequence = nullptr );
25
28 MRVOXELS_API Expected<Vector<NestingResult, ObjId>> nestMeshes( const Vector<MeshXf, ObjId>& meshes, const BoxNestingOptions& options, const std::vector<OutEdge>* densificationSequence = nullptr );
29private:
30 NestingBaseParams baseParams_;
31 TetrisDensifyOptions tetrisOptions_;
32
33 Vector<ObjId, VoxelId> voxelsCache_;
34 Vector3i dimensionsCache_;
35 VoxelBitSet occupiedVoxelsCache_;
36
37 std::vector<Box3f> nestedBoxesCache_;
38 std::vector<BoxNestingCorner> addBoxCornersCache_;
39};
40
41}
42
43}
#define MRVOXELS_API
see explanation in MRMesh/MRMeshFwd.h
Definition MRVoxelsFwd.h:14
#define MRVOXELS_CLASS
Definition MRVoxelsFwd.h:18
std::vector<T>-like container that requires specific indexing type,
Definition MRVector.h:23
tl::expected< T, E > Expected
Definition MRExpected.h:31
Expected< Vector< NestingResult, ObjId > > nestMeshes(const Vector< MeshXf, ObjId > &meshes, const BoxNestingOptions &options, const std::vector< OutEdge > *densificationSequence=nullptr)
SequentialNester(const NestingBaseParams &params, float voxelSize)
if voxelSize > 0 peform densification on each addition
Expected< NestingResult > nestMesh(const MeshXf &meshXf, const BoxNestingOptions &options, const std::vector< OutEdge > *densificationSequence=nullptr)
Definition MRNesting3mfExport.h:20
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRBoxNesting.h:47
Definition MRNestingStructures.h:25
Definition MRNestingStructures.h:33
Definition MRTetrisNesting.h:20