[][src]Trait cam_geom::Bundle

pub trait Bundle<R> where
    R: RealField, 
{ fn to_single_ray<Coords>(
        &self,
        self_data: &MatrixMN<R, U1, U3>
    ) -> Ray<Coords, R>
    where
        Coords: CoordinateSystem
;
fn directions<'a, NPTS, StorageIn>(
        &self,
        self_data: &'a 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<'a, NPTS, StorageIn>(
        &self,
        self_data: &'a 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>
; }

Specifies operations which any RayBundle must implement.

Required methods

fn to_single_ray<Coords>(
    &self,
    self_data: &MatrixMN<R, U1, U3>
) -> Ray<Coords, R> where
    Coords: CoordinateSystem

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

fn directions<'a, NPTS, StorageIn>(
    &self,
    self_data: &'a 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.

fn centers<'a, NPTS, StorageIn>(
    &self,
    self_data: &'a 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.

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.

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).

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.

Loading content...

Implementors

impl<R> Bundle<R> for SharedOriginRayBundle<R> where
    R: RealField, 
[src]

impl<R: RealField> Bundle<R> for SharedDirectionRayBundle<R>[src]

Loading content...