MeshLib C++ Docs
Loading...
Searching...
No Matches
MRGridSampling.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRMeshFwd.h"
5#include "MRId.h"
6#include "MRPointCloudPart.h"
7#include "MRVector.h"
8#include <optional>
9
10namespace MR
11{
12
17MRMESH_API std::optional<VertBitSet> verticesGridSampling( const MeshPart& mp, float voxelSize, const ProgressCallback & cb = {} );
18
23MRMESH_API std::optional<VertBitSet> pointGridSampling( const PointCloudPart& pcp, float voxelSize, const ProgressCallback & cb = {} );
24
25
27struct ModelPointsData
28{
30 const VertCoords* points{ nullptr };
32 const VertBitSet* validPoints{ nullptr };
34 const AffineXf3f* xf{ nullptr };
36 ObjId fakeObjId{};
37};
38
39struct ObjVertId
40{
41 ObjId objId;
42 VertId vId;
43
44 friend bool operator==( const ObjVertId&, const ObjVertId& ) = default;
45};
46
47using MultiObjsSamples = std::vector<ObjVertId>;
48
53MRMESH_API std::optional<MultiObjsSamples> multiModelGridSampling( const Vector<ModelPointsData, ObjId>& models, float voxelSize, const ProgressCallback& cb = {} );
54
55} //namespace MR
#define MRMESH_API
Definition MRMeshFwd.h:80
new unsafe MR.? Const_VertBitSet validPoints
new unsafe MR.? ConstBox_AffineXf3f xf
new unsafe MR.? Const_VertCoords points
new unsafe ref MR.ObjId fakeObjId
Definition MRPointCloudPart.h:10
std::vector<T>-like container that requires specific indexing type,
Definition MRVector.h:19
Definition MRCameraOrientationPlugin.h:8
MRMESH_API std::optional< VertBitSet > verticesGridSampling(const MeshPart &mp, float voxelSize, const ProgressCallback &cb={})
MRMESH_API std::optional< VertBitSet > pointGridSampling(const PointCloudPart &pcp, float voxelSize, const ProgressCallback &cb={})
MRMESH_API std::optional< MultiObjsSamples > multiModelGridSampling(const Vector< ModelPointsData, ObjId > &models, float voxelSize, const ProgressCallback &cb={})
unsafe ObjVertId()
static unsafe bool operator==(MR.ObjVertId _1, MR.ObjVertId _2)