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§
sourcefn to_single_ray<Coords>(&self, self_data: &SMatrix<R, 1, 3>) -> Ray<Coords, R>where
Coords: CoordinateSystem,
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.
sourcefn directions<NPTS, StorageIn>(
&self,
self_data: &Matrix<R, NPTS, U3, StorageIn>
) -> Matrix<R, NPTS, U3, Owned<R, NPTS, U3>>
fn directions<NPTS, StorageIn>( &self, self_data: &Matrix<R, NPTS, U3, StorageIn> ) -> Matrix<R, NPTS, U3, Owned<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.
sourcefn centers<NPTS, StorageIn>(
&self,
self_data: &Matrix<R, NPTS, U3, StorageIn>
) -> Matrix<R, NPTS, U3, Owned<R, NPTS, U3>>
fn centers<NPTS, StorageIn>( &self, self_data: &Matrix<R, NPTS, U3, StorageIn> ) -> Matrix<R, NPTS, U3, Owned<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.
sourcefn 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<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.
sourcefn 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 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).
sourcefn 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>,
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.