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<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<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<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<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<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<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<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<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<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<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<NPTS, U3>,
Convert the input rays by the pose given.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.