pub struct Particle<P> { /* private fields */ }Expand description
Represents a particle in space.
Only have implementations of intersection tests for movement,
using (Particle, Range<P>) where P is the positional Point of the particle at the start
and end of movement.
These intersection tests can be used with any primitive that has Ray intersection tests
implemented.
Implementations§
Trait Implementations§
Source§impl<P> Continuous<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>> for Particle<P>
impl<P> Continuous<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>> for Particle<P>
Source§impl<P> Discrete<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>> for Particle<P>
impl<P> Discrete<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>> for Particle<P>
Source§impl<S> From<Particle<Point2<S>>> for Primitive2<S>
impl<S> From<Particle<Point2<S>>> for Primitive2<S>
Source§fn from(particle: Particle2<S>) -> Primitive2<S>
fn from(particle: Particle2<S>) -> Primitive2<S>
Converts to this type from the input type.
Source§impl<S> From<Particle<Point3<S>>> for Primitive3<S>where
S: BaseFloat,
impl<S> From<Particle<Point3<S>>> for Primitive3<S>where
S: BaseFloat,
Source§fn from(particle: Particle3<S>) -> Primitive3<S>
fn from(particle: Particle3<S>) -> Primitive3<S>
Converts to this type from the input type.
impl<P: PartialEq> StructuralPartialEq for Particle<P>
Auto Trait Implementations§
impl<P> Freeze for Particle<P>where
PhantomData<P>: Freeze,
impl<P> RefUnwindSafe for Particle<P>where
PhantomData<P>: RefUnwindSafe,
impl<P> Send for Particle<P>where
PhantomData<P>: Send,
impl<P> Sync for Particle<P>where
PhantomData<P>: Sync,
impl<P> Unpin for Particle<P>where
PhantomData<P>: Unpin,
impl<P> UnsafeUnpin for Particle<P>where
PhantomData<P>: UnsafeUnpin,
impl<P> UnwindSafe for Particle<P>where
PhantomData<P>: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<P, C> Continuous<(Particle<P>, Range<P>)> for Cwhere
C: Continuous<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>, Result = P>,
P: EuclideanSpace,
<P as EuclideanSpace>::Diff: InnerSpace,
<P as EuclideanSpace>::Scalar: BaseFloat,
impl<P, C> Continuous<(Particle<P>, Range<P>)> for Cwhere
C: Continuous<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>, Result = P>,
P: EuclideanSpace,
<P as EuclideanSpace>::Diff: InnerSpace,
<P as EuclideanSpace>::Scalar: BaseFloat,
Source§impl<P, C> ContinuousTransformed<(Particle<P>, Range<P>)> for Cwhere
C: ContinuousTransformed<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>, Result = P, Point = P>,
P: EuclideanSpace,
<P as EuclideanSpace>::Diff: InnerSpace,
<P as EuclideanSpace>::Scalar: BaseFloat,
impl<P, C> ContinuousTransformed<(Particle<P>, Range<P>)> for Cwhere
C: ContinuousTransformed<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>, Result = P, Point = P>,
P: EuclideanSpace,
<P as EuclideanSpace>::Diff: InnerSpace,
<P as EuclideanSpace>::Scalar: BaseFloat,
Source§impl<P, C> ContinuousTransformed<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>> for Cwhere
C: Continuous<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>, Result = P>,
P: EuclideanSpace,
<P as EuclideanSpace>::Scalar: BaseFloat,
impl<P, C> ContinuousTransformed<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>> for Cwhere
C: Continuous<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>, Result = P>,
P: EuclideanSpace,
<P as EuclideanSpace>::Scalar: BaseFloat,
Source§fn intersection_transformed<T>(
&self,
ray: &Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>,
transform: &T,
) -> Option<P>where
T: Transform<P>,
fn intersection_transformed<T>(
&self,
ray: &Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>,
transform: &T,
) -> Option<P>where
T: Transform<P>,
Intersection test for transformed self
Source§impl<P, C> Discrete<(Particle<P>, Range<P>)> for Cwhere
C: Continuous<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>, Result = P>,
P: EuclideanSpace,
<P as EuclideanSpace>::Diff: InnerSpace,
<P as EuclideanSpace>::Scalar: BaseFloat,
impl<P, C> Discrete<(Particle<P>, Range<P>)> for Cwhere
C: Continuous<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>, Result = P>,
P: EuclideanSpace,
<P as EuclideanSpace>::Diff: InnerSpace,
<P as EuclideanSpace>::Scalar: BaseFloat,
Source§impl<P, C> DiscreteTransformed<(Particle<P>, Range<P>)> for Cwhere
C: ContinuousTransformed<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>, Result = P, Point = P>,
P: EuclideanSpace,
<P as EuclideanSpace>::Diff: InnerSpace,
<P as EuclideanSpace>::Scalar: BaseFloat,
impl<P, C> DiscreteTransformed<(Particle<P>, Range<P>)> for Cwhere
C: ContinuousTransformed<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>, Result = P, Point = P>,
P: EuclideanSpace,
<P as EuclideanSpace>::Diff: InnerSpace,
<P as EuclideanSpace>::Scalar: BaseFloat,
Source§impl<P, C> DiscreteTransformed<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>> for Cwhere
C: Discrete<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>>,
P: EuclideanSpace,
<P as EuclideanSpace>::Scalar: BaseFloat,
impl<P, C> DiscreteTransformed<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>> for Cwhere
C: Discrete<Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>>,
P: EuclideanSpace,
<P as EuclideanSpace>::Scalar: BaseFloat,
Source§fn intersects_transformed<T>(
&self,
ray: &Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>,
transform: &T,
) -> boolwhere
T: Transform<P>,
fn intersects_transformed<T>(
&self,
ray: &Ray<<P as EuclideanSpace>::Scalar, P, <P as EuclideanSpace>::Diff>,
transform: &T,
) -> boolwhere
T: Transform<P>,
Intersection test for transformed self