Go to the source code of this file.
|
| MRC_API MR_PointToPlaneAligningTransform * | MR_PointToPlaneAligningTransform_DefaultConstruct (void) |
| |
| MRC_API MR_PointToPlaneAligningTransform * | MR_PointToPlaneAligningTransform_DefaultConstructArray (size_t num_elems) |
| |
| MRC_API const MR_PointToPlaneAligningTransform * | MR_PointToPlaneAligningTransform_OffsetPtr (const MR_PointToPlaneAligningTransform *ptr, ptrdiff_t i) |
| | Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
|
| |
| MRC_API MR_PointToPlaneAligningTransform * | MR_PointToPlaneAligningTransform_OffsetMutablePtr (MR_PointToPlaneAligningTransform *ptr, ptrdiff_t i) |
| | Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
|
| |
| MRC_API MR_PointToPlaneAligningTransform * | MR_PointToPlaneAligningTransform_ConstructFromAnother (MR_PassBy _other_pass_by, MR_PointToPlaneAligningTransform *_other) |
| |
| MRC_API void | MR_PointToPlaneAligningTransform_Destroy (const MR_PointToPlaneAligningTransform *_this) |
| | Destroys a heap-allocated instance of MR_PointToPlaneAligningTransform. Does nothing if the pointer is null.
|
| |
| MRC_API void | MR_PointToPlaneAligningTransform_DestroyArray (const MR_PointToPlaneAligningTransform *_this) |
| | Destroys a heap-allocated array of MR_PointToPlaneAligningTransform. Does nothing if the pointer is null.
|
| |
| MRC_API MR_PointToPlaneAligningTransform * | MR_PointToPlaneAligningTransform_AssignFromAnother (MR_PointToPlaneAligningTransform *_this, MR_PassBy _other_pass_by, MR_PointToPlaneAligningTransform *_other) |
| |
| MRC_API void | MR_PointToPlaneAligningTransform_add_MR_Vector3d (MR_PointToPlaneAligningTransform *_this, const MR_Vector3d *p1, const MR_Vector3d *p2, const MR_Vector3d *normal2, const double *w) |
| |
| MRC_API void | MR_PointToPlaneAligningTransform_add_MR_Vector3f (MR_PointToPlaneAligningTransform *_this, const MR_Vector3f *p1, const MR_Vector3f *p2, const MR_Vector3f *normal2, const float *w) |
| |
| MRC_API void | MR_PointToPlaneAligningTransform_prepare (MR_PointToPlaneAligningTransform *_this) |
| |
| MRC_API void | MR_PointToPlaneAligningTransform_clear (MR_PointToPlaneAligningTransform *_this) |
| |
| MRC_API MR_AffineXf3d | MR_PointToPlaneAligningTransform_findBestRigidXf (const MR_PointToPlaneAligningTransform *_this) |
| |
| MRC_API MR_AffineXf3d | MR_PointToPlaneAligningTransform_findBestRigidScaleXf (const MR_PointToPlaneAligningTransform *_this) |
| |
| MRC_API MR_AffineXf3d | MR_PointToPlaneAligningTransform_findBestRigidXfFixedRotationAxis (const MR_PointToPlaneAligningTransform *_this, const MR_Vector3d *axis) |
| |
| MRC_API MR_AffineXf3d | MR_PointToPlaneAligningTransform_findBestRigidXfOrthogonalRotationAxis (const MR_PointToPlaneAligningTransform *_this, const MR_Vector3d *ort) |
| |
| MRC_API MR_Vector3d | MR_PointToPlaneAligningTransform_findBestTranslation (const MR_PointToPlaneAligningTransform *_this, const MR_Vector3d *rotAngles, const double *scale) |
| |
| MRC_API MR_RigidScaleXf3d * | MR_PointToPlaneAligningTransform_calculateAmendment (const MR_PointToPlaneAligningTransform *_this) |
| |
| MRC_API MR_RigidScaleXf3d * | MR_PointToPlaneAligningTransform_calculateAmendmentWithScale (const MR_PointToPlaneAligningTransform *_this) |
| |
| MRC_API MR_RigidScaleXf3d * | MR_PointToPlaneAligningTransform_calculateFixedAxisAmendment (const MR_PointToPlaneAligningTransform *_this, const MR_Vector3d *axis) |
| |
| MRC_API MR_RigidScaleXf3d * | MR_PointToPlaneAligningTransform_calculateOrthogonalAxisAmendment (const MR_PointToPlaneAligningTransform *_this, const MR_Vector3d *ort) |
| |
◆ 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). Generated from class MR::PointToPlaneAligningTransform. Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).
◆ MR_RigidScaleXf3d
◆ MR_Vector3f
| typedef struct MR_Vector3f MR_Vector3f |
◆ MR_PointToPlaneAligningTransform_add_MR_Vector3d()
Add a pair of corresponding points and the normal of the tangent plane at the second point Generated from method MR::PointToPlaneAligningTransform::add. Parameter _this can not be null. It is a single object. Parameter p1 can not be null. It is a single object. Parameter p2 can not be null. It is a single object. Parameter normal2 can not be null. It is a single object. Parameter w has a default argument: 1, pass a null pointer to use it.
◆ MR_PointToPlaneAligningTransform_add_MR_Vector3f()
Add a pair of corresponding points and the normal of the tangent plane at the second point Generated from method MR::PointToPlaneAligningTransform::add. Parameter _this can not be null. It is a single object. Parameter p1 can not be null. It is a single object. Parameter p2 can not be null. It is a single object. Parameter normal2 can not be null. It is a single object. Parameter w has a default argument: 1, pass a null pointer to use it.
◆ MR_PointToPlaneAligningTransform_AssignFromAnother()
Generated from method MR::PointToPlaneAligningTransform::operator=. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.
◆ MR_PointToPlaneAligningTransform_calculateAmendment()
◆ MR_PointToPlaneAligningTransform_calculateAmendmentWithScale()
◆ MR_PointToPlaneAligningTransform_calculateFixedAxisAmendment()
this version searches for best transformation where rotation is allowed only around given axis and with arbitrary translation Generated from method MR::PointToPlaneAligningTransform::calculateFixedAxisAmendment. Parameter _this can not be null. It is a single object. Parameter axis can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_RigidScaleXf3d_Destroy() to free it when you're done using it.
◆ MR_PointToPlaneAligningTransform_calculateOrthogonalAxisAmendment()
◆ MR_PointToPlaneAligningTransform_clear()
◆ MR_PointToPlaneAligningTransform_ConstructFromAnother()
Generated from constructor MR::PointToPlaneAligningTransform::PointToPlaneAligningTransform. Never returns null. Returns an instance allocated on the heap! Must call MR_PointToPlaneAligningTransform_Destroy() to free it when you're done using it.
◆ MR_PointToPlaneAligningTransform_DefaultConstruct()
◆ MR_PointToPlaneAligningTransform_DefaultConstructArray()
◆ MR_PointToPlaneAligningTransform_Destroy()
Destroys a heap-allocated instance of MR_PointToPlaneAligningTransform. Does nothing if the pointer is null.
◆ MR_PointToPlaneAligningTransform_DestroyArray()
Destroys a heap-allocated array of MR_PointToPlaneAligningTransform. Does nothing if the pointer is null.
◆ MR_PointToPlaneAligningTransform_findBestRigidScaleXf()
◆ MR_PointToPlaneAligningTransform_findBestRigidXf()
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. Parameter _this can not be null. It is a single object.
◆ MR_PointToPlaneAligningTransform_findBestRigidXfFixedRotationAxis()
◆ MR_PointToPlaneAligningTransform_findBestRigidXfOrthogonalRotationAxis()
◆ MR_PointToPlaneAligningTransform_findBestTranslation()
this version searches for best translational part of affine transformation with given linear part Generated from method MR::PointToPlaneAligningTransform::findBestTranslation. Parameter _this can not be null. It is a single object. Parameter rotAngles has a default argument: {}, pass a null pointer to use it. Parameter scale has a default argument: 1, pass a null pointer to use it.
◆ MR_PointToPlaneAligningTransform_OffsetMutablePtr()
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
◆ MR_PointToPlaneAligningTransform_OffsetPtr()
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
◆ MR_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. Parameter _this can not be null. It is a single object.