MeshLib Rust Docs
Loading...
Searching...
No Matches
meshlib::MultiwayAligningTransform Struct Reference
Inheritance diagram for meshlib::MultiwayAligningTransform:

Public Member Functions

auto assign_from_another (_other:meshlib::Owned< meshlib::MultiwayAligningTransform >) -> &mut meshlib::MultiwayAligningTransform
void reset (numObjs:core::ffi::c_int)
void add_5_mr_vector3d (objA:core::ffi::c_int, pA:&meshlib::Vector3d, objB:core::ffi::c_int, pB:&meshlib::Vector3d, w:Option< f64 >)
void add_5_mr_vector3f (objA:core::ffi::c_int, pA:&meshlib::Vector3f, objB:core::ffi::c_int, pB:&meshlib::Vector3f, w:Option< f32 >)
void add_6_mr_vector3d (objA:core::ffi::c_int, pA:&meshlib::Vector3d, objB:core::ffi::c_int, pB:&meshlib::Vector3d, n:&meshlib::Vector3d, w:Option< f64 >)
void add_6_mr_vector3f (objA:core::ffi::c_int, pA:&meshlib::Vector3f, objB:core::ffi::c_int, pB:&meshlib::Vector3f, n:&meshlib::Vector3f, w:Option< f32 >)
void add_1 (r:&meshlib::MultiwayAligningTransform)
auto solve_1 (stab:&meshlib::MultiwayAligningTransform_Stabilizer) const -> meshlib::Owned< meshlib::std_vector_MR_RigidXf3d >
auto solve_0 () const -> meshlib::Owned< meshlib::std_vector_MR_RigidXf3d >

Static Public Member Functions

static auto new () -> meshlib::Owned< meshlib::MultiwayAligningTransform >
static auto construct_from_another (_other:meshlib::Owned< meshlib::MultiwayAligningTransform >) -> meshlib::Owned< meshlib::MultiwayAligningTransform >
static auto construct (numObjs:core::ffi::c_int) -> meshlib::Owned< meshlib::MultiwayAligningTransform >
Static Public Member Functions inherited from meshlib::CppClass
static void destroy (ptr:*mut Self)

Detailed Description

This class can be used to solve the problem of multiple 3D objects alignment, by first collecting weighted links between pairs of points from different objects, and then solving for transformations minimizing weighted average of link penalties Generated from class MR::MultiwayAligningTransform.

Generated from class MR::MultiwayAligningTransform. Heap-allocated instances are held in Owned<MultiwayAligningTransform>.

Member Function Documentation

◆ add_1()

void meshlib::MultiwayAligningTransform::add_1 ( r:&meshlib::MultiwayAligningTransform )

appends links accumulated in (r) into this Generated from method MR::MultiwayAligningTransform::add.

Calls MR_MultiwayAligningTransform_add_1().

◆ add_5_mr_vector3d()

void meshlib::MultiwayAligningTransform::add_5_mr_vector3d ( objA:core::ffi::c_int ,
pA:&meshlib::Vector3d ,
objB:core::ffi::c_int ,
pB:&meshlib::Vector3d ,
w:Option< f64 >  )

appends a 3D link into consideration: one point (pA) from (objA), and the other point (pB) from (objB) with link penalty equal to weight (w) times squared distance between two points Generated from method MR::MultiwayAligningTransform::add.

Calls MR_MultiwayAligningTransform_add_5_MR_Vector3d().

◆ add_5_mr_vector3f()

void meshlib::MultiwayAligningTransform::add_5_mr_vector3f ( objA:core::ffi::c_int ,
pA:&meshlib::Vector3f ,
objB:core::ffi::c_int ,
pB:&meshlib::Vector3f ,
w:Option< f32 >  )

appends a 3D link into consideration: one point (pA) from (objA), and the other point (pB) from (objB) with link penalty equal to weight (w) times squared distance between two points Generated from method MR::MultiwayAligningTransform::add.

Calls MR_MultiwayAligningTransform_add_5_MR_Vector3f().

◆ add_6_mr_vector3d()

void meshlib::MultiwayAligningTransform::add_6_mr_vector3d ( objA:core::ffi::c_int ,
pA:&meshlib::Vector3d ,
objB:core::ffi::c_int ,
pB:&meshlib::Vector3d ,
n:&meshlib::Vector3d ,
w:Option< f64 >  )

appends a 1D link into consideration: one point (pA) from (objA), and the other point (pB) from (objB) with link penalty equal to weight (w) times squared distance between their projections on given direction (n); for a point on last fixed object, it is equivalent to point-to-plane link with the plane through that fixed point with normal (n) Generated from method MR::MultiwayAligningTransform::add.

Calls MR_MultiwayAligningTransform_add_6_MR_Vector3d().

◆ add_6_mr_vector3f()

void meshlib::MultiwayAligningTransform::add_6_mr_vector3f ( objA:core::ffi::c_int ,
pA:&meshlib::Vector3f ,
objB:core::ffi::c_int ,
pB:&meshlib::Vector3f ,
n:&meshlib::Vector3f ,
w:Option< f32 >  )

appends a 1D link into consideration: one point (pA) from (objA), and the other point (pB) from (objB) with link penalty equal to weight (w) times squared distance between their projections on given direction (n); for a point on last fixed object, it is equivalent to point-to-plane link with the plane through that fixed point with normal (n) Generated from method MR::MultiwayAligningTransform::add.

Calls MR_MultiwayAligningTransform_add_6_MR_Vector3f().

◆ assign_from_another()

auto meshlib::MultiwayAligningTransform::assign_from_another ( _other:meshlib::Owned< meshlib::MultiwayAligningTransform > ) -> &mut meshlib::MultiwayAligningTransform

Generated from method MR::MultiwayAligningTransform::operator=.

Calls MR_MultiwayAligningTransform_AssignFromAnother(). The reference to things referred to by the parameter _other (if any) might be preserved in this object. The reference to this object might be preserved in the return value.

◆ construct()

auto meshlib::MultiwayAligningTransform::construct ( numObjs:core::ffi::c_int ) -> meshlib::Owned< meshlib::MultiwayAligningTransform >
static

initializes internal data to start registering given number of objects Generated from constructor MR::MultiwayAligningTransform::MultiwayAligningTransform.

Calls MR_MultiwayAligningTransform_Construct().

◆ construct_from_another()

auto meshlib::MultiwayAligningTransform::construct_from_another ( _other:meshlib::Owned< meshlib::MultiwayAligningTransform > ) -> meshlib::Owned< meshlib::MultiwayAligningTransform >
static

Generated from constructor MR::MultiwayAligningTransform::MultiwayAligningTransform.

Calls MR_MultiwayAligningTransform_ConstructFromAnother(). The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object.

◆ new()

auto meshlib::MultiwayAligningTransform::new ( ) -> meshlib::Owned< meshlib::MultiwayAligningTransform >
static

Constructs an empty (default-constructed) instance.

Calls MR_MultiwayAligningTransform_DefaultConstruct().

◆ reset()

void meshlib::MultiwayAligningTransform::reset ( numObjs:core::ffi::c_int )

reinitializes internal data to start registering given number of objects Generated from method MR::MultiwayAligningTransform::reset.

Calls MR_MultiwayAligningTransform_reset().

◆ solve_0()

auto meshlib::MultiwayAligningTransform::solve_0 ( ) const -> meshlib::Owned< meshlib::std_vector_MR_RigidXf3d >

Generated from method MR::MultiwayAligningTransform::solve.

Calls MR_MultiwayAligningTransform_solve_0().

◆ solve_1()

auto meshlib::MultiwayAligningTransform::solve_1 ( stab:&meshlib::MultiwayAligningTransform_Stabilizer ) const -> meshlib::Owned< meshlib::std_vector_MR_RigidXf3d >

finds the solution consisting of all objects transformations (numObj), that minimizes the summed weighted squared distance among accumulated links; the transform of the last object is always identity (it is fixed) Generated from method MR::MultiwayAligningTransform::solve.

Calls MR_MultiwayAligningTransform_solve_1().


The documentation for this struct was generated from the following file: