Static Public Member Functions | |
| static auto | new () -> meshlib::Owned< meshlib::PointToPlaneAligningTransform > |
| static auto | construct_from_another (_other:&meshlib::PointToPlaneAligningTransform) -> meshlib::Owned< meshlib::PointToPlaneAligningTransform > |
| Static Public Member Functions inherited from meshlib::CppClass | |
| static void | destroy (ptr:*mut Self) |
| Static Public Member Functions inherited from meshlib::CppCopy | |
| static auto | copy (ptr:*const Self) -> *mut Self |
This class and its main method can be used to solve the problem of 3D shape alignment. This algorithm uses a point-to-plane error metric in which the object of minimization is the sum of the squared distance between a point and the tangent plane at its correspondence point. To use this technique it's need to have small rotation angles. So there is an approximate solution. The result of this algorithm is the transformation of first points (p1) which aligns it to the second ones (p2). Generated from class MR::PointToPlaneAligningTransform.
Generated from class MR::PointToPlaneAligningTransform. Heap-allocated instances are held in Owned<PointToPlaneAligningTransform>.
| void meshlib::PointToPlaneAligningTransform::add_mr_vector3d | ( | p1:&meshlib::Vector3d | , |
| p2:&meshlib::Vector3d | , | ||
| normal2:&meshlib::Vector3d | , | ||
| w:Option< f64 > | ) |
Add a pair of corresponding points and the normal of the tangent plane at the second point Generated from method MR::PointToPlaneAligningTransform::add.
Calls MR_PointToPlaneAligningTransform_add_MR_Vector3d().
| void meshlib::PointToPlaneAligningTransform::add_mr_vector3f | ( | p1:&meshlib::Vector3f | , |
| p2:&meshlib::Vector3f | , | ||
| normal2:&meshlib::Vector3f | , | ||
| w:Option< f32 > | ) |
Add a pair of corresponding points and the normal of the tangent plane at the second point Generated from method MR::PointToPlaneAligningTransform::add.
Calls MR_PointToPlaneAligningTransform_add_MR_Vector3f().
| auto meshlib::PointToPlaneAligningTransform::assign_from_another | ( | _other:&meshlib::PointToPlaneAligningTransform | ) | -> &mut meshlib::PointToPlaneAligningTransform |
Generated from method MR::PointToPlaneAligningTransform::operator=.
Calls MR_PointToPlaneAligningTransform_AssignFromAnother(). The reference to things referred to by the parameter _other (if any) might be preserved in this object.
| auto meshlib::PointToPlaneAligningTransform::calculate_amendment | ( | ) | const -> meshlib::Owned< meshlib::RigidScaleXf3d > |
Compute transformation relative to given approximation and return it as angles and shift (scale = 1) Generated from method MR::PointToPlaneAligningTransform::calculateAmendment.
Calls MR_PointToPlaneAligningTransform_calculateAmendment().
| auto meshlib::PointToPlaneAligningTransform::calculate_amendment_with_scale | ( | ) | const -> meshlib::Owned< meshlib::RigidScaleXf3d > |
Compute transformation relative to given approximation and return it as scale, angles and shift Generated from method MR::PointToPlaneAligningTransform::calculateAmendmentWithScale.
Calls MR_PointToPlaneAligningTransform_calculateAmendmentWithScale().
| auto meshlib::PointToPlaneAligningTransform::calculate_fixed_axis_amendment | ( | axis:&meshlib::Vector3d | ) | const -> meshlib::Owned< meshlib::RigidScaleXf3d > |
this version searches for best transformation where rotation is allowed only around given axis and with arbitrary translation Generated from method MR::PointToPlaneAligningTransform::calculateFixedAxisAmendment.
Calls MR_PointToPlaneAligningTransform_calculateFixedAxisAmendment().
| auto meshlib::PointToPlaneAligningTransform::calculate_orthogonal_axis_amendment | ( | ort:&meshlib::Vector3d | ) | const -> meshlib::Owned< meshlib::RigidScaleXf3d > |
this version searches for best transformation where rotation is allowed only around axes orthogonal to given one Generated from method MR::PointToPlaneAligningTransform::calculateOrthogonalAxisAmendment.
Calls MR_PointToPlaneAligningTransform_calculateOrthogonalAxisAmendment().
| void meshlib::PointToPlaneAligningTransform::clear | ( | ) |
Clear points and normals data Generated from method MR::PointToPlaneAligningTransform::clear.
Calls MR_PointToPlaneAligningTransform_clear().
|
static |
Generated from constructor MR::PointToPlaneAligningTransform::PointToPlaneAligningTransform.
Calls MR_PointToPlaneAligningTransform_ConstructFromAnother(). The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object.
| auto meshlib::PointToPlaneAligningTransform::find_best_rigid_scale_xf | ( | ) | const -> meshlib::AffineXf3d |
this version searches for best rigid body transformation with uniform scaling Generated from method MR::PointToPlaneAligningTransform::findBestRigidScaleXf.
Calls MR_PointToPlaneAligningTransform_findBestRigidScaleXf().
| auto meshlib::PointToPlaneAligningTransform::find_best_rigid_xf | ( | ) | const -> meshlib::AffineXf3d |
Compute transformation as the solution to a least squares optimization problem: xf( p1_i ) = p2_i this version searches for best rigid body transformation Generated from method MR::PointToPlaneAligningTransform::findBestRigidXf.
Calls MR_PointToPlaneAligningTransform_findBestRigidXf().
| auto meshlib::PointToPlaneAligningTransform::find_best_rigid_xf_fixed_rotation_axis | ( | axis:&meshlib::Vector3d | ) | const -> meshlib::AffineXf3d |
this version searches for best transformation where rotation is allowed only around given axis and with arbitrary translation Generated from method MR::PointToPlaneAligningTransform::findBestRigidXfFixedRotationAxis.
Calls MR_PointToPlaneAligningTransform_findBestRigidXfFixedRotationAxis().
| auto meshlib::PointToPlaneAligningTransform::find_best_rigid_xf_orthogonal_rotation_axis | ( | ort:&meshlib::Vector3d | ) | const -> meshlib::AffineXf3d |
this version searches for best transformation where rotation is allowed only around axes orthogonal to given one Generated from method MR::PointToPlaneAligningTransform::findBestRigidXfOrthogonalRotationAxis.
Calls MR_PointToPlaneAligningTransform_findBestRigidXfOrthogonalRotationAxis().
| auto meshlib::PointToPlaneAligningTransform::find_best_translation | ( | rotAngles:Option<&meshlib::Vector3d > | , |
| scale:Option< f64 > | ) const -> meshlib::Vector3d |
this version searches for best translational part of affine transformation with given linear part Generated from method MR::PointToPlaneAligningTransform::findBestTranslation.
Calls MR_PointToPlaneAligningTransform_findBestTranslation().
| auto meshlib::PointToPlaneAligningTransform::get_stabilizer | ( | ) | const -> f64 |
Generated from method MR::PointToPlaneAligningTransform::getStabilizer.
Calls MR_PointToPlaneAligningTransform_getStabilizer().
|
static |
Constructs an empty (default-constructed) instance.
Calls MR_PointToPlaneAligningTransform_DefaultConstruct().
| void meshlib::PointToPlaneAligningTransform::prepare | ( | ) |
this method must be called after add() and before constant find...()/calculate...() to make the matrix symmetric Generated from method MR::PointToPlaneAligningTransform::prepare.
Calls MR_PointToPlaneAligningTransform_prepare().
| void meshlib::PointToPlaneAligningTransform::set_stabilizer | ( | stabilizer:f64 | ) |
sets relative regularization: this fraction of the mean diagonal element of the rotation block and of the translation block of the linear system is added to the diagonal of the same block; it suppresses huge motions along the directions poorly constrained by the planes (e.g. sliding along parallel planes) Generated from method MR::PointToPlaneAligningTransform::setStabilizer.
Calls MR_PointToPlaneAligningTransform_setStabilizer().