Trait Bundle

Source
pub trait Bundle<R>
where R: RealField,
{ // Required methods fn to_single_ray<Coords>( &self, self_data: &SMatrix<R, 1, 3>, ) -> Ray<Coords, R> where Coords: CoordinateSystem; fn directions<NPTS, StorageIn>( &self, self_data: &Matrix<R, NPTS, U3, StorageIn>, ) -> Matrix<R, NPTS, U3, Owned<R, NPTS, U3>> where NPTS: DimName, StorageIn: Storage<R, NPTS, U3>, DefaultAllocator: Allocator<NPTS, U3>; fn centers<NPTS, StorageIn>( &self, self_data: &Matrix<R, NPTS, U3, StorageIn>, ) -> Matrix<R, NPTS, U3, Owned<R, NPTS, U3>> where NPTS: DimName, StorageIn: Storage<R, NPTS, U3>, DefaultAllocator: Allocator<NPTS, U3>; fn point_on_ray<NPTS, StorageIn, OutFrame>( &self, self_data: &Matrix<R, NPTS, U3, StorageIn>, ) -> Points<OutFrame, R, NPTS, Owned<R, NPTS, U3>> where Self: Sized, NPTS: Dim, StorageIn: Storage<R, NPTS, U3>, OutFrame: CoordinateSystem, DefaultAllocator: Allocator<NPTS, U3>; fn point_on_ray_at_distance<NPTS, StorageIn, OutFrame>( &self, self_data: &Matrix<R, NPTS, U3, StorageIn>, distance: R, ) -> Points<OutFrame, R, NPTS, Owned<R, NPTS, U3>> where Self: Sized, NPTS: Dim, StorageIn: Storage<R, NPTS, U3>, OutFrame: CoordinateSystem, DefaultAllocator: Allocator<NPTS, U3>; fn to_pose<NPTS, StorageIn, OutFrame>( &self, pose: Isometry3<R>, self_data: &Matrix<R, NPTS, U3, StorageIn>, ) -> RayBundle<OutFrame, Self, R, NPTS, Owned<R, NPTS, U3>> where Self: Sized, R: RealField, NPTS: Dim, StorageIn: Storage<R, NPTS, U3>, OutFrame: CoordinateSystem, DefaultAllocator: Allocator<NPTS, U3>; }
Expand description

Specifies operations which any RayBundle must implement.

Required Methods§

Source

fn to_single_ray<Coords>(&self, self_data: &SMatrix<R, 1, 3>) -> Ray<Coords, R>
where Coords: CoordinateSystem,

Return a single ray from a RayBundle with exactly one ray.

Source

fn directions<NPTS, StorageIn>( &self, self_data: &Matrix<R, NPTS, U3, StorageIn>, ) -> Matrix<R, NPTS, U3, Owned<R, NPTS, U3>>
where NPTS: DimName, StorageIn: Storage<R, NPTS, U3>, DefaultAllocator: Allocator<NPTS, U3>,

Get directions of each ray in bundle.

This can be inefficient, because when not every ray has a different direction (which is the case for the SharedDirectionRayBundle type), this will nevertheless copy the single direction NPTS times.

Source

fn centers<NPTS, StorageIn>( &self, self_data: &Matrix<R, NPTS, U3, StorageIn>, ) -> Matrix<R, NPTS, U3, Owned<R, NPTS, U3>>
where NPTS: DimName, StorageIn: Storage<R, NPTS, U3>, DefaultAllocator: Allocator<NPTS, U3>,

Get centers of each ray in bundle.

This can be inefficient, because when not every ray has a different center (which is the case for the SharedOriginRayBundle type), this will nevertheless copy the single center NPTS times.

Source

fn point_on_ray<NPTS, StorageIn, OutFrame>( &self, self_data: &Matrix<R, NPTS, U3, StorageIn>, ) -> Points<OutFrame, R, NPTS, Owned<R, NPTS, U3>>
where Self: Sized, NPTS: Dim, StorageIn: Storage<R, NPTS, U3>, OutFrame: CoordinateSystem, DefaultAllocator: Allocator<NPTS, U3>,

Return points on on the input rays.

The distance of the point from the ray bundle center is not definted and can be arbitrary.

Source

fn point_on_ray_at_distance<NPTS, StorageIn, OutFrame>( &self, self_data: &Matrix<R, NPTS, U3, StorageIn>, distance: R, ) -> Points<OutFrame, R, NPTS, Owned<R, NPTS, U3>>
where Self: Sized, NPTS: Dim, StorageIn: Storage<R, NPTS, U3>, OutFrame: CoordinateSystem, DefaultAllocator: Allocator<NPTS, U3>,

Return points on on the input rays at a defined distance from the origin(s).

Source

fn to_pose<NPTS, StorageIn, OutFrame>( &self, pose: Isometry3<R>, self_data: &Matrix<R, NPTS, U3, StorageIn>, ) -> RayBundle<OutFrame, Self, R, NPTS, Owned<R, NPTS, U3>>
where Self: Sized, R: RealField, NPTS: Dim, StorageIn: Storage<R, NPTS, U3>, OutFrame: CoordinateSystem, DefaultAllocator: Allocator<NPTS, U3>,

Convert the input rays by the pose given.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§