[−][src]Struct cam_geom::RayBundle
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]
Coords: CoordinateSystem,
BType: Bundle<R>,
R: RealField,
NPTS: DimName,
StorageMultiple: Storage<R, NPTS, U3>,
DefaultAllocator: Allocator<R, NPTS, U3>,
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]
Coords: CoordinateSystem,
BType: Bundle<R>,
R: RealField,
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]
Coords: CoordinateSystem,
R: RealField,
NPTS: Dim,
StorageMultiple: Storage<R, NPTS, U3>,
pub fn new_shared_zero_origin(
data: Matrix<R, NPTS, U3, StorageMultiple>
) -> Self
[src]
data: Matrix<R, NPTS, U3, StorageMultiple>
) -> Self
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]
Coords: CoordinateSystem,
R: RealField,
NPTS: Dim,
StorageMultiple: Storage<R, NPTS, U3>,
pub fn new_shared_plusz_direction(
data: Matrix<R, NPTS, U3, StorageMultiple>
) -> Self
[src]
data: Matrix<R, NPTS, U3, StorageMultiple>
) -> Self
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]
Coords: CoordinateSystem,
BType: Bundle<R>,
R: RealField,
NPTS: Dim,
StorageMultiple: Storage<R, NPTS, U3>,
pub fn point_on_ray(&self) -> Points<Coords, R, NPTS, Owned<R, NPTS, U3>> where
DefaultAllocator: Allocator<R, NPTS, U3>,
[src]
DefaultAllocator: Allocator<R, NPTS, U3>,
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]
&self,
distance: R
) -> Points<Coords, R, NPTS, Owned<R, NPTS, U3>> where
DefaultAllocator: Allocator<R, NPTS, U3>,
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]
Coords: CoordinateSystem,
BType: Bundle<R>,
R: RealField,
NPTS: Dim,
StorageMultiple: Storage<R, NPTS, U3>,
fn clone(&self) -> RayBundle<Coords, BType, R, NPTS, StorageMultiple>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[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]
Coords: CoordinateSystem,
BType: Bundle<R>,
R: RealField,
NPTS: Dim,
StorageMultiple: Storage<R, NPTS, U3>,
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]
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>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
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]
Coords: CoordinateSystem,
BType: Bundle<R>,
R: RealField,
NPTS: Dim,
StorageMultiple: Storage<R, NPTS, U3>,
fn eq(&self, other: &RayBundle<Coords, BType, R, NPTS, StorageMultiple>) -> bool
[src]
fn ne(&self, other: &RayBundle<Coords, BType, R, NPTS, StorageMultiple>) -> bool
[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]
Coords: CoordinateSystem,
BType: Bundle<R>,
R: RealField,
NPTS: Dim,
StorageMultiple: Storage<R, NPTS, U3>,
BType: Serialize,
R: Serialize,
NPTS: Serialize,
StorageMultiple: Serialize,
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
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]
Coords: CoordinateSystem,
BType: Bundle<R>,
R: RealField,
NPTS: Dim,
StorageMultiple: Storage<R, NPTS, U3>,
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,
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,
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,
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,
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,
BType: UnwindSafe,
Coords: UnwindSafe,
NPTS: UnwindSafe,
R: UnwindSafe,
StorageMultiple: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn is_in_subset(&self) -> bool
unsafe fn to_subset_unchecked(&self) -> SS
fn from_subset(element: &SS) -> SP
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,