[][src]Struct parry3d::transformation::voxelization::VoxelizedVolume

pub struct VoxelizedVolume { /* fields omitted */ }

A cubic volume filled with voxels.

Implementations

impl VoxelizedVolume[src]

pub fn voxelize(
    points: &[Point<Real>],
    indices: &[[u32; 3]],
    resolution: u32,
    fill_mode: FillMode,
    keep_voxel_to_primitives_map: bool
) -> Self
[src]

Voxelizes the given shape described by its boundary: a triangle mesh (in 3D) or polyline (in 2D).

Parameters

  • points - The vertex buffer of the boundary of the shape to voxelize.
  • indices - The index buffer of the boundary of the shape to voxelize.
  • resolution - Controls the number of subdivision done along each axis. This number is the number of subdivisions along the axis where the input shape has the largest extent. The other dimensions will have a different automatically-determined resolution (in order to keep the voxels cubic).
  • fill_mode - Controls what is being voxelized.
  • keep_voxel_to_primitives_map - If set to true a map between the voxels and the primitives (3D triangles or 2D segments) it intersects will be computed.

pub fn resolution(&self) -> [u32; 3][src]

The number of voxel subdivisions along each coordinate axis.

pub fn scale(&self) -> Real[src]

The scale factor that needs to be applied to the voxels of self in order to give them the size matching the original model's size.

pub fn voxel(&self, i: u32, j: u32, k: u32) -> VoxelValue[src]

The value of the given voxel.

In 2D, the k` argument is ignored.

pub fn to_trimesh(&self, value: VoxelValue) -> (Vec<Point<Real>>, Vec<[u32; 3]>)[src]

Naive conversion of all the voxels with the given value to a triangle-mesh.

This conversion is extremely naive: it will simply collect all the 12 triangles forming the faces of each voxel. No actual boundary extraction is done.

Trait Implementations

impl Into<VoxelSet> for VoxelizedVolume[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Downcast for T where
    T: Any
[src]

impl<T> DowncastSync for T where
    T: Send + Sync + Any
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,