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.

Implementors§

source§

impl<R> Bundle<R> for SharedOriginRayBundle<R>where R: RealField,

source§

impl<R: RealField> Bundle<R> for SharedDirectionRayBundle<R>