18 MRMESH_API void init(
const Vector3i& resolution = Vector3i::diagonal( 2 ),
const Box3f& initialBox = Box3f() );
38 const VertBitSet& validPoints_;
39 std::vector<Vector3f> refPointsGrid_;
41 VertCoords normedCoords_;
44 Vector3f applyToNormedPoint_(
const Vector3f& normedPoint, std::vector<Vector3f>& xPlaneCache, std::vector<Vector3f>& yLineCache, std::vector<Vector3f>& tempPoints )
const;
58 void addPair(
const Vector3f& src,
const Vector3f& tgt,
float w = 1.0f ) {
addPair( Vector3d( src ), Vector3d( tgt ),
double( w ) ); }
75 double sumWeight_{ 0.0 };
77 Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> accumA_;
78 Eigen::Matrix<double, Eigen::Dynamic, 3> accumB_;
80 std::vector<int> pascalLineX_;
81 std::vector<int> pascalLineY_;
82 std::vector<int> pascalLineZ_;
84 Vector3d reverseDiagonal_;
86 double stabilizer_{ 0.1 };
98 const Vector3i& resolution = Vector3i::diagonal( 2 ),
const AffineXf3f* samplesToBox =
nullptr );
#define MRMESH_API
Definition MRMesh/MRMeshFwd.h:46
#define MRMESH_CLASS
Definition MRMesh/MRMeshFwd.h:50
Definition MRCameraOrientationPlugin.h:8
MRMESH_API std::vector< Vector3f > findBestFreeformDeformation(const Box3f &box, const std::vector< Vector3f > &source, const std::vector< Vector3f > &target, const Vector3i &resolution=Vector3i::diagonal(2), const AffineXf3f *samplesToBox=nullptr)
MRMESH_API std::vector< Vector3f > makeFreeFormOriginGrid(const Box3f &box, const Vector3i &resolution)
Returns positions of grid points in given box with given resolution.