f3l_features

Crates.iof3l_features
lib.rsf3l_features
version0.2.2
sourcesrc
created_at2024-05-17 00:15:01.973423
updated_at2024-10-23 01:04:59.716999
description3D Point Cloud Library
homepage
repositoryhttps://github.com/Donvlouss/f3l
max_upload_size
id1242667
size79,527
(Donvlouss)

documentation

README

F3l Features

Data Features.

Bounding

  • AABB
  • OBB
let obb = OBB::compute(&vertices);
// Get OBB 8 corners
let p0 = obb.center
    - obb.primary * obb.length[0]
    - obb.secondary * obb.length[1]
    - obb.tertiary * obb.length[2];
let p1 = p0 + obb.primary * obb.length[0] * 2.;
let p2 = p0 + obb.secondary * obb.length[1] * 2.;
let p3 = p0 + obb.tertiary * obb.length[2] * 2.;
let p4 = p2 + obb.primary * obb.length[0] * 2.;
let p5 = p1 + obb.tertiary * obb.length[2] * 2.;
let p6 = p2 + obb.tertiary * obb.length[2] * 2.;
let p7 = p4 + obb.tertiary * obb.length[2] * 2.;

Normal Estimate

  1. For each point search neighbors.
  2. Compute eigenvector of neighbors.
  3. The smallest eigenvalue one is which normal.

Normal Search Method [KDTree]

// Radius
let mut estimator = NormalEstimation::new(SearchBy::Radius(0.08f32));
// KNN
let mut estimator = NormalEstimation::new(SearchBy::Count(10));
// Compute!
if !estimator.compute(&vertices) {
    println!("Compute Normal Failed. Exit...");
    return;
}
let normals = estimator.normals();
Commit count: 117

cargo fmt