MeshLib C++ Docs
Loading...
Searching...
No Matches
MRDenseBox.h
Go to the documentation of this file.
1#pragma once
2#include "MRBox.h"
3#include "MRAffineXf3.h"
4#include "MRBestFit.h"
5#include "MRPointCloud.h"
6
7namespace MR
8{
14struct DenseBox
15{
17 MRMESH_API DenseBox( const std::vector<Vector3f>& points, const AffineXf3f* xf = nullptr );
19 MRMESH_API DenseBox( const std::vector<Vector3f>& points, const std::vector<float>& weights, const AffineXf3f* xf = nullptr );
21 MRMESH_API DenseBox( const MeshPart& meshPart, const AffineXf3f* xf = nullptr );
23 MRMESH_API DenseBox( const PointCloud& points, const AffineXf3f* xf = nullptr );
25 MRMESH_API DenseBox( const Polyline3& line, const AffineXf3f* xf = nullptr );
26
28 MRMESH_API Vector3f center() const;
31 MRMESH_API Vector3f corner( const Vector3b& index ) const;
33 MRMESH_API bool contains( const Vector3f& pt ) const;
34
35 // Access members
36
38 const Box3f& box() const { return box_; }
40 const AffineXf3f& basisXf() const { return basisXf_; }
42 const AffineXf3f& basisXfInv() const { return basisXfInv_; }
43
44private:
46 void init_( const std::vector<Vector3f>& points, const std::vector<float>* weights = nullptr, const AffineXf3f* xf = nullptr );
48 void init_( const MeshPart& meshPart, const AffineXf3f* xf = nullptr );
50 void init_( const PointCloud& points, const AffineXf3f* xf = nullptr );
52 void init_( const Polyline3& line, const AffineXf3f* xf = nullptr );
53
54 Box3f box_;
55 AffineXf3f basisXf_;
56 AffineXf3f basisXfInv_;
57};
58
59}
#define MRMESH_API
Definition MRMeshFwd.h:80
unsafe DenseBox(MR.Const_DenseBox _other)
Definition MRCameraOrientationPlugin.h:8