MeshLib Rust Docs
Loading...
Searching...
No Matches
Inheritance diagram for meshlib::ICP:

Public Member Functions

auto assign_from_another (_other:&meshlib::ICP) -> &mut meshlib::ICP
void set_params (prop:&meshlib::ICPProperties)
void set_cosine_limit (cos:f32)
void set_distance_limit (dist:f32)
void set_bad_iter_count (iter:core::ffi::c_int)
void set_far_dist_factor (factor:f32)
void set_flt_samples (fltSamples:&meshlib::VertBitSet)
void sample_flt_points (samplingVoxelSize:f32, nonVertexSamples:Option< bool >)
void set_ref_samples (refSamples:&meshlib::VertBitSet)
void sample_ref_points (samplingVoxelSize:f32, nonVertexSamples:Option< bool >)
void sample_points (samplingVoxelSize:f32, nonVertexSamples:Option< bool >)
void set_xfs (fltXf:&meshlib::AffineXf3f, refXf:&meshlib::AffineXf3f)
void set_float_xf (fltXf:&meshlib::AffineXf3f)
auto auto_select_float_xf () -> meshlib::AffineXf3f
void update_point_pairs ()
auto get_params () const -> &meshlib::ICPProperties
auto get_status_info () const -> meshlib::Owned< meshlib::std_string >
auto get_num_samples () const -> usize
auto get_num_active_pairs () const -> usize
auto get_mean_sq_dist_to_point () const -> f32
auto get_mean_sq_dist_to_plane () const -> f32
auto get_flt2_ref_pairs () const -> &meshlib::PointPairs
auto get_ref2_flt_pairs () const -> &meshlib::PointPairs
auto get_flt_samples_cloud () const -> meshlib::Owned< meshlib::PointCloud >
auto get_ref_samples_cloud () const -> meshlib::Owned< meshlib::PointCloud >
auto calculate_transformation () -> meshlib::AffineXf3f

Static Public Member Functions

static auto construct_from_another (_other:&meshlib::ICP) -> meshlib::Owned< meshlib::ICP >
static auto construct_6_mr_vert_bit_set (flt:&meshlib::MeshOrPoints, ref:&meshlib::MeshOrPoints, fltXf:&meshlib::AffineXf3f, refXf:&meshlib::AffineXf3f, fltSamples:Option<&meshlib::VertBitSet >, refSamples:Option<&meshlib::VertBitSet >) -> meshlib::Owned< meshlib::ICP >
static auto construct_samples (flt:&meshlib::MeshOrPointsXf, ref:&meshlib::MeshOrPointsXf, fltSamples:Option<&meshlib::VertBitSet >, refSamples:Option<&meshlib::VertBitSet >) -> meshlib::Owned< meshlib::ICP >
static auto construct_6_std_vector_mr_weighted_vertex (flt:&meshlib::MeshOrPoints, ref:&meshlib::MeshOrPoints, fltXf:&meshlib::AffineXf3f, refXf:&meshlib::AffineXf3f, fltSamples:&meshlib::std_vector_MR_WeightedVertex, refSamples:&meshlib::std_vector_MR_WeightedVertex) -> meshlib::Owned< meshlib::ICP >
static auto construct_weighted_samples (flt:&meshlib::MeshOrPointsXf, ref:&meshlib::MeshOrPointsXf, fltSamples:&meshlib::std_vector_MR_WeightedVertex, refSamples:&meshlib::std_vector_MR_WeightedVertex) -> meshlib::Owned< meshlib::ICP >
static auto construct_5 (flt:&meshlib::MeshOrPoints, ref:&meshlib::MeshOrPoints, fltXf:&meshlib::AffineXf3f, refXf:&meshlib::AffineXf3f, samplingVoxelSize:f32) -> meshlib::Owned< meshlib::ICP >
static auto construct (flt:&meshlib::MeshOrPointsXf, ref:&meshlib::MeshOrPointsXf, samplingVoxelSize:f32) -> meshlib::Owned< meshlib::ICP >
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

Detailed Description

This class allows you to register two object with similar shape using Iterative Closest Points (ICP) point-to-point or point-to-plane algorithms

Generated from class MR::ICP.

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

Member Function Documentation

◆ assign_from_another()

auto meshlib::ICP::assign_from_another ( _other:&meshlib::ICP ) -> &mut meshlib::ICP

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

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

◆ auto_select_float_xf()

auto meshlib::ICP::auto_select_float_xf ( ) -> meshlib::AffineXf3f

automatically selects initial transformation for the floating object based on covariance matrices of both floating and reference objects; applies the transformation to the floating object and returns it Generated from method MR::ICP::autoSelectFloatXf.

Calls MR_ICP_autoSelectFloatXf().

◆ calculate_transformation()

auto meshlib::ICP::calculate_transformation ( ) -> meshlib::AffineXf3f

runs ICP algorithm given input objects, transformations, and parameters;

Returns
adjusted transformation of the floating object to match reference object Generated from method MR::ICP::calculateTransformation.

Calls MR_ICP_calculateTransformation().

◆ construct()

auto meshlib::ICP::construct ( flt:&meshlib::MeshOrPointsXf ,
ref:&meshlib::MeshOrPointsXf ,
samplingVoxelSize:f32  ) -> meshlib::Owned< meshlib::ICP >
static

Generated from constructor MR::ICP::ICP.

Calls MR_ICP_Construct(). The reference to the parameter flt might be preserved in the constructed object. The reference to the parameter ref might be preserved in the constructed object.

◆ construct_5()

auto meshlib::ICP::construct_5 ( flt:&meshlib::MeshOrPoints ,
ref:&meshlib::MeshOrPoints ,
fltXf:&meshlib::AffineXf3f ,
refXf:&meshlib::AffineXf3f ,
samplingVoxelSize:f32  ) -> meshlib::Owned< meshlib::ICP >
static

Constructs ICP framework with automatic points sampling on both objects

Parameters
fltfloating object
refreference object
fltXftransformation from floating object space to global space
refXftransformation from reference object space to global space
samplingVoxelSizeapproximate distance between samples on each of two objects all pairs get equal weights, and a mesh with big triangles gets samples inside them as in samplePoints( samplingVoxelSize, true ) Generated from constructor MR::ICP::ICP.

Calls MR_ICP_Construct_5(). The reference to the parameter flt might be preserved in the constructed object. The reference to the parameter ref might be preserved in the constructed object. The reference to the parameter fltXf might be preserved in the constructed object. The reference to the parameter refXf might be preserved in the constructed object.

◆ construct_6_mr_vert_bit_set()

auto meshlib::ICP::construct_6_mr_vert_bit_set ( flt:&meshlib::MeshOrPoints ,
ref:&meshlib::MeshOrPoints ,
fltXf:&meshlib::AffineXf3f ,
refXf:&meshlib::AffineXf3f ,
fltSamples:Option<&meshlib::VertBitSet > ,
refSamples:Option<&meshlib::VertBitSet >  ) -> meshlib::Owned< meshlib::ICP >
static

Constructs ICP framework with given sample points on both objects

Parameters
fltfloating object
refreference object
fltXftransformation from floating object space to global space
refXftransformation from reference object space to global space
fltSamplessamples on floating object to find projections on the reference object during the algorithm
refSamplessamples on reference object to find projections on the floating object during the algorithm the weight of each pair is the double area of mesh triangles around its sample vertex (1 for point clouds) Generated from constructor MR::ICP::ICP.

Calls MR_ICP_Construct_6_MR_VertBitSet(). The reference to the parameter flt might be preserved in the constructed object. The reference to the parameter ref might be preserved in the constructed object. The reference to the parameter fltXf might be preserved in the constructed object. The reference to the parameter refXf might be preserved in the constructed object. The reference to the parameter fltSamples might be preserved in the constructed object. The reference to the parameter refSamples might be preserved in the constructed object.

◆ construct_6_std_vector_mr_weighted_vertex()

auto meshlib::ICP::construct_6_std_vector_mr_weighted_vertex ( flt:&meshlib::MeshOrPoints ,
ref:&meshlib::MeshOrPoints ,
fltXf:&meshlib::AffineXf3f ,
refXf:&meshlib::AffineXf3f ,
fltSamples:&meshlib::std_vector_MR_WeightedVertex ,
refSamples:&meshlib::std_vector_MR_WeightedVertex  ) -> meshlib::Owned< meshlib::ICP >
static

Constructs ICP framework with given sample points on both objects and the weights of their pairs, the weights stay fixed during the algorithm Generated from constructor MR::ICP::ICP.

Calls MR_ICP_Construct_6_std_vector_MR_WeightedVertex(). The reference to the parameter flt might be preserved in the constructed object. The reference to the parameter ref might be preserved in the constructed object. The reference to the parameter fltXf might be preserved in the constructed object. The reference to the parameter refXf might be preserved in the constructed object. The reference to the parameter fltSamples might be preserved in the constructed object. The reference to the parameter refSamples might be preserved in the constructed object.

◆ construct_from_another()

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

Generated from constructor MR::ICP::ICP.

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

◆ construct_samples()

auto meshlib::ICP::construct_samples ( flt:&meshlib::MeshOrPointsXf ,
ref:&meshlib::MeshOrPointsXf ,
fltSamples:Option<&meshlib::VertBitSet > ,
refSamples:Option<&meshlib::VertBitSet >  ) -> meshlib::Owned< meshlib::ICP >
static

Generated from constructor MR::ICP::ICP.

Calls MR_ICP_Construct_samples(). The reference to the parameter flt might be preserved in the constructed object. The reference to the parameter ref might be preserved in the constructed object. The reference to the parameter fltSamples might be preserved in the constructed object. The reference to the parameter refSamples might be preserved in the constructed object.

◆ construct_weighted_samples()

auto meshlib::ICP::construct_weighted_samples ( flt:&meshlib::MeshOrPointsXf ,
ref:&meshlib::MeshOrPointsXf ,
fltSamples:&meshlib::std_vector_MR_WeightedVertex ,
refSamples:&meshlib::std_vector_MR_WeightedVertex  ) -> meshlib::Owned< meshlib::ICP >
static

Generated from constructor MR::ICP::ICP.

Calls MR_ICP_Construct_weightedSamples(). The reference to the parameter flt might be preserved in the constructed object. The reference to the parameter ref might be preserved in the constructed object. The reference to the parameter fltSamples might be preserved in the constructed object. The reference to the parameter refSamples might be preserved in the constructed object.

◆ get_flt2_ref_pairs()

auto meshlib::ICP::get_flt2_ref_pairs ( ) const -> &meshlib::PointPairs

returns current pairs formed from samples on floating object and projections on reference object Generated from method MR::ICP::getFlt2RefPairs.

Calls MR_ICP_getFlt2RefPairs().

◆ get_flt_samples_cloud()

auto meshlib::ICP::get_flt_samples_cloud ( ) const -> meshlib::Owned< meshlib::PointCloud >

returns the samples on floating object in its local space, with normals if the object has them; i-th point of the cloud is the source of i-th pair in getFlt2RefPairs() Generated from method MR::ICP::getFltSamplesCloud.

Calls MR_ICP_getFltSamplesCloud().

◆ get_mean_sq_dist_to_plane()

auto meshlib::ICP::get_mean_sq_dist_to_plane ( ) const -> f32

computes root-mean-square deviation from points to target planes Generated from method MR::ICP::getMeanSqDistToPlane.

Calls MR_ICP_getMeanSqDistToPlane().

◆ get_mean_sq_dist_to_point()

auto meshlib::ICP::get_mean_sq_dist_to_point ( ) const -> f32

computes root-mean-square deviation between points Generated from method MR::ICP::getMeanSqDistToPoint.

Calls MR_ICP_getMeanSqDistToPoint().

◆ get_num_active_pairs()

auto meshlib::ICP::get_num_active_pairs ( ) const -> usize

computes the number of active point pairs Generated from method MR::ICP::getNumActivePairs.

Calls MR_ICP_getNumActivePairs().

◆ get_num_samples()

auto meshlib::ICP::get_num_samples ( ) const -> usize

computes the number of samples able to form pairs Generated from method MR::ICP::getNumSamples.

Calls MR_ICP_getNumSamples().

◆ get_params()

auto meshlib::ICP::get_params ( ) const -> &meshlib::ICPProperties

Generated from method MR::ICP::getParams.

Calls MR_ICP_getParams().

◆ get_ref2_flt_pairs()

auto meshlib::ICP::get_ref2_flt_pairs ( ) const -> &meshlib::PointPairs

returns current pairs formed from samples on reference object and projections on floating object Generated from method MR::ICP::getRef2FltPairs.

Calls MR_ICP_getRef2FltPairs().

◆ get_ref_samples_cloud()

auto meshlib::ICP::get_ref_samples_cloud ( ) const -> meshlib::Owned< meshlib::PointCloud >

returns the samples on reference object in its local space, with normals if the object has them; i-th point of the cloud is the source of i-th pair in getRef2FltPairs() Generated from method MR::ICP::getRefSamplesCloud.

Calls MR_ICP_getRefSamplesCloud().

◆ get_status_info()

auto meshlib::ICP::get_status_info ( ) const -> meshlib::Owned< meshlib::std_string >

Generated from method MR::ICP::getStatusInfo.

Calls MR_ICP_getStatusInfo().

◆ sample_flt_points()

void meshlib::ICP::sample_flt_points ( samplingVoxelSize:f32 ,
nonVertexSamples:Option< bool >  )

Generated from method MR::ICP::sampleFltPoints.

Calls MR_ICP_sampleFltPoints().

◆ sample_points()

void meshlib::ICP::sample_points ( samplingVoxelSize:f32 ,
nonVertexSamples:Option< bool >  )

select pairs with origin samples on both objects Generated from method MR::ICP::samplePoints.

Calls MR_ICP_samplePoints().

◆ sample_ref_points()

void meshlib::ICP::sample_ref_points ( samplingVoxelSize:f32 ,
nonVertexSamples:Option< bool >  )

Generated from method MR::ICP::sampleRefPoints.

Calls MR_ICP_sampleRefPoints().

◆ set_bad_iter_count()

void meshlib::ICP::set_bad_iter_count ( iter:core::ffi::c_int )

Generated from method MR::ICP::setBadIterCount.

Calls MR_ICP_setBadIterCount().

◆ set_cosine_limit()

void meshlib::ICP::set_cosine_limit ( cos:f32 )

Generated from method MR::ICP::setCosineLimit.

Calls MR_ICP_setCosineLimit().

◆ set_distance_limit()

void meshlib::ICP::set_distance_limit ( dist:f32 )

Generated from method MR::ICP::setDistanceLimit.

Calls MR_ICP_setDistanceLimit().

◆ set_far_dist_factor()

void meshlib::ICP::set_far_dist_factor ( factor:f32 )

Generated from method MR::ICP::setFarDistFactor.

Calls MR_ICP_setFarDistFactor().

◆ set_float_xf()

void meshlib::ICP::set_float_xf ( fltXf:&meshlib::AffineXf3f )

sets to-world transformation for the floating object Generated from method MR::ICP::setFloatXf.

Calls MR_ICP_setFloatXf().

◆ set_flt_samples()

void meshlib::ICP::set_flt_samples ( fltSamples:&meshlib::VertBitSet )

select pairs with origin samples on floating object; setFltSamples weights each pair by the double area of mesh triangles around its sample vertex, sampleFltPoints performs grid sampling and gives all pairs equal weights; nonVertexSamples if true, a mesh with triangles too big for the sampling is sampled from its dense point cloud (see meshToDensePointCloud) to get the samples inside the triangles and on the edges as well; otherwise only its vertices are sampled Generated from method MR::ICP::setFltSamples.

Calls MR_ICP_setFltSamples().

◆ set_params()

void meshlib::ICP::set_params ( prop:&meshlib::ICPProperties )

tune algorithm params before run calculateTransformation() Generated from method MR::ICP::setParams.

Calls MR_ICP_setParams().

◆ set_ref_samples()

void meshlib::ICP::set_ref_samples ( refSamples:&meshlib::VertBitSet )

select pairs with origin samples on reference object, weighted and sampled the same way as for floating object Generated from method MR::ICP::setRefSamples.

Calls MR_ICP_setRefSamples().

◆ set_xfs()

void meshlib::ICP::set_xfs ( fltXf:&meshlib::AffineXf3f ,
refXf:&meshlib::AffineXf3f  )

sets to-world transformations both for floating and reference objects Generated from method MR::ICP::setXfs.

Calls MR_ICP_setXfs().

◆ update_point_pairs()

void meshlib::ICP::update_point_pairs ( )

recompute point pairs after manual change of transformations or parameters Generated from method MR::ICP::updatePointPairs.

Calls MR_ICP_updatePointPairs().


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