19 MRMESH_API void init(
const Vector3i& resolution = Vector3i::diagonal( 2 ),
const Box3f& initialBox = Box3f() );
39 const VertBitSet& validPoints_;
40 std::vector<Vector3f> refPointsGrid_;
42 VertCoords normedCoords_;
45 Vector3f applyToNormedPoint_(
const Vector3f& normedPoint, std::vector<Vector3f>& xPlaneCache, std::vector<Vector3f>& yLineCache, std::vector<Vector3f>& tempPoints )
const;
59 void addPair(
const Vector3f& src,
const Vector3f& tgt,
float w = 1.0f ) {
addPair( Vector3d( src ), Vector3d( tgt ),
double( w ) ); }
76 double sumWeight_{ 0.0 };
78 Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> accumA_;
79 Eigen::Matrix<double, Eigen::Dynamic, 3> accumB_;
81 std::vector<int> pascalLineX_;
82 std::vector<int> pascalLineY_;
83 std::vector<int> pascalLineZ_;
85 Vector3d reverseDiagonal_;
87 double stabilizer_{ 0.1 };
99 const Vector3i& resolution = Vector3i::diagonal( 2 ),
const AffineXf3f* samplesToBox =
nullptr );
#define MRMESH_API
Definition MRMesh/MRMeshFwd.h:79
#define MRMESH_CLASS
Definition MRMesh/MRMeshFwd.h:83
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.
Definition MRMesh/MRMesh.h:23