Trait cam_geom::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<R, 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<R, 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<R, 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<R, 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<R, 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<R, 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<R, 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<R, 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<R, 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<R, NPTS, U3>,

Convert the input rays by the pose given.

Object Safety§

This trait is not object safe.

Implementors§