Public Member Functions | |
None | __init__ (self) |
None | __init__ (self, PointToPlaneAligningTransform arg0) |
None | add (self, Vector3d p1, Vector3d p2, Vector3d normal2, float w=1) |
None | add (self, Vector3f p1, Vector3f p2, Vector3f normal2, float w=1) |
RigidScaleXf3d | calculateAmendment (self) |
RigidScaleXf3d | calculateAmendmentWithScale (self) |
RigidScaleXf3d | calculateFixedAxisAmendment (self, Vector3d axis) |
RigidScaleXf3d | calculateOrthogonalAxisAmendment (self, Vector3d ort) |
None | clear (self) |
AffineXf3d | findBestRigidScaleXf (self) |
AffineXf3d | findBestRigidXf (self) |
AffineXf3d | findBestRigidXfFixedRotationAxis (self, Vector3d axis) |
AffineXf3d | findBestRigidXfOrthogonalRotationAxis (self, Vector3d ort) |
Vector3d | findBestTranslation (self, Vector3d rotAngles='{}', float scale=1) |
None | prepare (self) |
Static Protected Member Functions | |
_pybind11_conduit_v1_ (*args, **kwargs) | |
Generated from: MR::PointToPlaneAligningTransform 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).
None mrmeshpy.PointToPlaneAligningTransform.__init__ | ( | self | ) |
Implicit default constructor.
None mrmeshpy.PointToPlaneAligningTransform.__init__ | ( | self, | |
PointToPlaneAligningTransform | arg0 ) |
Implicit copy constructor.
|
staticprotected |
None mrmeshpy.PointToPlaneAligningTransform.add | ( | self, | |
Vector3d | p1, | ||
Vector3d | p2, | ||
Vector3d | normal2, | ||
float | w = 1 ) |
Add a pair of corresponding points and the normal of the tangent plane at the second point
None mrmeshpy.PointToPlaneAligningTransform.add | ( | self, | |
Vector3f | p1, | ||
Vector3f | p2, | ||
Vector3f | normal2, | ||
float | w = 1 ) |
Add a pair of corresponding points and the normal of the tangent plane at the second point
RigidScaleXf3d mrmeshpy.PointToPlaneAligningTransform.calculateAmendment | ( | self | ) |
Compute transformation relative to given approximation and return it as angles and shift (scale = 1)
RigidScaleXf3d mrmeshpy.PointToPlaneAligningTransform.calculateAmendmentWithScale | ( | self | ) |
Compute transformation relative to given approximation and return it as scale, angles and shift
RigidScaleXf3d mrmeshpy.PointToPlaneAligningTransform.calculateFixedAxisAmendment | ( | self, | |
Vector3d | axis ) |
this version searches for best transformation where rotation is allowed only around given axis and with arbitrary translation
RigidScaleXf3d mrmeshpy.PointToPlaneAligningTransform.calculateOrthogonalAxisAmendment | ( | self, | |
Vector3d | ort ) |
this version searches for best transformation where rotation is allowed only around axes orthogonal to given one
None mrmeshpy.PointToPlaneAligningTransform.clear | ( | self | ) |
Clear points and normals data
AffineXf3d mrmeshpy.PointToPlaneAligningTransform.findBestRigidScaleXf | ( | self | ) |
this version searches for best rigid body transformation with uniform scaling
AffineXf3d mrmeshpy.PointToPlaneAligningTransform.findBestRigidXf | ( | self | ) |
Compute transformation as the solution to a least squares optimization problem: xf( p1_i ) = p2_i this version searches for best rigid body transformation
AffineXf3d mrmeshpy.PointToPlaneAligningTransform.findBestRigidXfFixedRotationAxis | ( | self, | |
Vector3d | axis ) |
this version searches for best transformation where rotation is allowed only around given axis and with arbitrary translation
AffineXf3d mrmeshpy.PointToPlaneAligningTransform.findBestRigidXfOrthogonalRotationAxis | ( | self, | |
Vector3d | ort ) |
this version searches for best transformation where rotation is allowed only around axes orthogonal to given one
Vector3d mrmeshpy.PointToPlaneAligningTransform.findBestTranslation | ( | self, | |
Vector3d | rotAngles = '{}', | ||
float | scale = 1 ) |
this version searches for best translational part of affine transformation with given linear part
None mrmeshpy.PointToPlaneAligningTransform.prepare | ( | self | ) |
this method must be called after add() and before constant find...()/calculate...() to make the matrix symmetric