15class PointToPointAligningTransform
19 MRMESH_API void add(
const Vector3d& p1,
const Vector3d& p2,
double w = 1 );
22 void add(
const Vector3f& p1,
const Vector3f& p2,
float w = 1 ) {
add( Vector3d( p1 ), Vector3d( p2 ), w ); }
28 void clear() { *
this = {}; }
31 [[nodiscard]] Vector3d centroid1()
const {
return sum1_ / sumW_; }
34 [[nodiscard]] Vector3d centroid2()
const {
return sum2_ / sumW_; }
37 [[nodiscard]]
double totalWeight()
const {
return sumW_; }
42 [[nodiscard]]
MRMESH_API AffineXf3d findBestRigidXf()
const;
45 [[nodiscard]]
MRMESH_API AffineXf3d findBestRigidScaleXf()
const;
48 [[nodiscard]]
MRMESH_API AffineXf3d findBestRigidXfFixedRotationAxis(
const Vector3d& axis )
const;
51 [[nodiscard]]
MRMESH_API AffineXf3d findBestRigidXfOrthogonalRotationAxis(
const Vector3d& ort )
const;
54 [[nodiscard]]
MRMESH_API Vector3d findBestTranslation()
const;
63 BestRotation findPureRotation_()
const;
67 Vector3d sum1_, sum2_;
#define MRMESH_API
Definition MRMeshFwd.h:80
Definition MRCameraOrientationPlugin.h:8
static MR.Matrix3d zero()