[][src]Struct cam_geom::RayBundle

pub struct RayBundle<Coords, BType, R, NPTS, StorageMultiple> where
    Coords: CoordinateSystem,
    BType: Bundle<R>,
    R: RealField,
    NPTS: Dim,
    StorageMultiple: Storage<R, NPTS, U3>, 
{ pub data: Matrix<R, NPTS, U3, StorageMultiple>, // some fields omitted }

3D rays. Can be in any CoordinateSystem.

Any given RayBundle will have a particular bundle type, which implements the Bundle trait.

Fields

data: Matrix<R, NPTS, U3, StorageMultiple>

The matrix storing the ray data.

Methods

impl<Coords, BType, R, NPTS, StorageMultiple> RayBundle<Coords, BType, R, NPTS, StorageMultiple> where
    Coords: CoordinateSystem,
    BType: Bundle<R>,
    R: RealField,
    NPTS: DimName,
    StorageMultiple: Storage<R, NPTS, U3>,
    DefaultAllocator: Allocator<R, NPTS, U3>, 
[src]

pub fn directions(&self) -> Matrix<R, NPTS, U3, Owned<R, NPTS, U3>>[src]

get directions of each ray in bundle

pub fn centers(&self) -> Matrix<R, NPTS, U3, Owned<R, NPTS, U3>>[src]

get centers (origins) of each ray in bundle

impl<Coords, BType, R> RayBundle<Coords, BType, R, U1, Owned<R, U1, U3>> where
    Coords: CoordinateSystem,
    BType: Bundle<R>,
    R: RealField, 
[src]

pub fn to_single_ray(&self) -> Ray<Coords, R>[src]

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

impl<Coords, R, NPTS, StorageMultiple> RayBundle<Coords, SharedOriginRayBundle<R>, R, NPTS, StorageMultiple> where
    Coords: CoordinateSystem,
    R: RealField,
    NPTS: Dim,
    StorageMultiple: Storage<R, NPTS, U3>, 
[src]

pub fn new_shared_zero_origin(
    data: Matrix<R, NPTS, U3, StorageMultiple>
) -> Self
[src]

Create a new RayBundle instance in which all rays share origin at zero.

The number of points allocated is given by the npts parameter, which should agree with the NPTS type. The coordinate system is given by the Coords type.

impl<Coords, R, NPTS, StorageMultiple> RayBundle<Coords, SharedDirectionRayBundle<R>, R, NPTS, StorageMultiple> where
    Coords: CoordinateSystem,
    R: RealField,
    NPTS: Dim,
    StorageMultiple: Storage<R, NPTS, U3>, 
[src]

pub fn new_shared_plusz_direction(
    data: Matrix<R, NPTS, U3, StorageMultiple>
) -> Self
[src]

Create a new RayBundle instance in which all rays share +z direction.

The number of points allocated is given by the npts parameter, which should agree with the NPTS type. The coordinate system is given by the Coords type.

impl<Coords, BType, R, NPTS, StorageMultiple> RayBundle<Coords, BType, R, NPTS, StorageMultiple> where
    Coords: CoordinateSystem,
    BType: Bundle<R>,
    R: RealField,
    NPTS: Dim,
    StorageMultiple: Storage<R, NPTS, U3>, 
[src]

pub fn point_on_ray(&self) -> Points<Coords, R, NPTS, Owned<R, NPTS, U3>> where
    DefaultAllocator: Allocator<R, NPTS, U3>, 
[src]

get a 3D point on the ray, obtained by adding the direction(s) to the origin(s)

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

pub fn point_on_ray_at_distance(
    &self,
    distance: R
) -> Points<Coords, R, NPTS, Owned<R, NPTS, U3>> where
    DefaultAllocator: Allocator<R, NPTS, U3>, 
[src]

get a 3D point on the ray at a defined distance from the origin(s)

Trait Implementations

impl<Coords: Clone, BType: Clone, R: Clone, NPTS: Clone, StorageMultiple: Clone> Clone for RayBundle<Coords, BType, R, NPTS, StorageMultiple> where
    Coords: CoordinateSystem,
    BType: Bundle<R>,
    R: RealField,
    NPTS: Dim,
    StorageMultiple: Storage<R, NPTS, U3>, 
[src]

impl<Coords: Debug, BType: Debug, R: Debug, NPTS: Debug, StorageMultiple: Debug> Debug for RayBundle<Coords, BType, R, NPTS, StorageMultiple> where
    Coords: CoordinateSystem,
    BType: Bundle<R>,
    R: RealField,
    NPTS: Dim,
    StorageMultiple: Storage<R, NPTS, U3>, 
[src]

impl<'de, Coords, BType, R, NPTS, StorageMultiple> Deserialize<'de> for RayBundle<Coords, BType, R, NPTS, StorageMultiple> where
    Coords: CoordinateSystem,
    BType: Bundle<R>,
    R: RealField,
    NPTS: Dim,
    StorageMultiple: Storage<R, NPTS, U3>,
    BType: Deserialize<'de>,
    R: Deserialize<'de>,
    NPTS: Deserialize<'de>,
    StorageMultiple: Deserialize<'de>, 
[src]

impl<Coords: PartialEq, BType: PartialEq, R: PartialEq, NPTS: PartialEq, StorageMultiple: PartialEq> PartialEq<RayBundle<Coords, BType, R, NPTS, StorageMultiple>> for RayBundle<Coords, BType, R, NPTS, StorageMultiple> where
    Coords: CoordinateSystem,
    BType: Bundle<R>,
    R: RealField,
    NPTS: Dim,
    StorageMultiple: Storage<R, NPTS, U3>, 
[src]

impl<Coords, BType, R, NPTS, StorageMultiple> Serialize for RayBundle<Coords, BType, R, NPTS, StorageMultiple> where
    Coords: CoordinateSystem,
    BType: Bundle<R>,
    R: RealField,
    NPTS: Dim,
    StorageMultiple: Storage<R, NPTS, U3>,
    BType: Serialize,
    R: Serialize,
    NPTS: Serialize,
    StorageMultiple: Serialize
[src]

impl<Coords, BType, R, NPTS, StorageMultiple> StructuralPartialEq for RayBundle<Coords, BType, R, NPTS, StorageMultiple> where
    Coords: CoordinateSystem,
    BType: Bundle<R>,
    R: RealField,
    NPTS: Dim,
    StorageMultiple: Storage<R, NPTS, U3>, 
[src]

Auto Trait Implementations

impl<Coords, BType, R, NPTS, StorageMultiple> RefUnwindSafe for RayBundle<Coords, BType, R, NPTS, StorageMultiple> where
    BType: RefUnwindSafe,
    Coords: RefUnwindSafe,
    NPTS: RefUnwindSafe,
    R: RefUnwindSafe,
    StorageMultiple: RefUnwindSafe

impl<Coords, BType, R, NPTS, StorageMultiple> Send for RayBundle<Coords, BType, R, NPTS, StorageMultiple> where
    BType: Send,
    Coords: Send,
    StorageMultiple: Send

impl<Coords, BType, R, NPTS, StorageMultiple> Sync for RayBundle<Coords, BType, R, NPTS, StorageMultiple> where
    BType: Sync,
    Coords: Sync,
    StorageMultiple: Sync

impl<Coords, BType, R, NPTS, StorageMultiple> Unpin for RayBundle<Coords, BType, R, NPTS, StorageMultiple> where
    BType: Unpin,
    Coords: Unpin,
    NPTS: Unpin,
    R: Unpin,
    StorageMultiple: Unpin

impl<Coords, BType, R, NPTS, StorageMultiple> UnwindSafe for RayBundle<Coords, BType, R, NPTS, StorageMultiple> where
    BType: UnwindSafe,
    Coords: UnwindSafe,
    NPTS: UnwindSafe,
    R: UnwindSafe,
    StorageMultiple: UnwindSafe

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> DeserializeOwned for T where
    T: Deserialize<'de>, 
[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>, 

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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>,