Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

VoxelOctree 使用例

VoxelOctree の実運用向けサンプルは、このページに集約します。

線分経路による除去(カプセル)

use geo_algorithms::octree::voxel::VoxelOctree;
use geo_algorithms::LineSegment3D;
use geo_core::{Aabb3D, Point3D};

let work_bounds = Aabb3D::new(
    Point3D::new(0.0, 0.0, 0.0),
    Point3D::new(100.0, 100.0, 100.0),
);
let mut voxel_tree = VoxelOctree::new(work_bounds, 6);

let segment = LineSegment3D::new(
    Point3D::new(0.0, 0.0, 0.0),
    Point3D::new(50.0, 50.0, 50.0),
)
.unwrap();

voxel_tree.remove_material_capsule(&segment, 5.0);

円弧経路による除去(線分近似)

use geo_algorithms::octree::voxel::VoxelOctree;
use geo_algorithms::{Angle, Arc3D};
use geo_core::{Aabb3D, Point3D};

let work_bounds = Aabb3D::new(
    Point3D::new(0.0, 0.0, 0.0),
    Point3D::new(100.0, 100.0, 100.0),
);
let mut voxel_tree = VoxelOctree::new(work_bounds, 6);

let arc = Arc3D::xy_arc(
    Point3D::new(50.0, 50.0, 0.0),
    20.0,
    Angle::from_degrees(0.0),
    Angle::from_degrees(90.0),
)
.unwrap();

voxel_tree.remove_material_arc_polyline(&arc, 5.0, 16);