Struct oxygengine_physics_2d::prelude::algebra::Velocity2 [−][src]
#[repr(C)]pub struct Velocity2<N> where
N: RealField, { pub linear: Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>, pub angular: N, }
A velocity structure combining both the linear angular velocities of a point.
Fields
linear: Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>
The linear velocity.
angular: N
The angular velocity.
Implementations
impl<N> Velocity2<N> where
N: RealField,
[src]
impl<N> Velocity2<N> where
N: RealField,
[src]pub fn new(
linear: Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
angular: N
) -> Velocity2<N>
[src]
linear: Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
angular: N
) -> Velocity2<N>
Create velocity from its linear and angular parts.
pub fn from_vectors(
linear: Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
angular: Matrix<N, U1, U1, <DefaultAllocator as Allocator<N, U1, U1>>::Buffer>
) -> Velocity2<N>
[src]
linear: Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
angular: Matrix<N, U1, U1, <DefaultAllocator as Allocator<N, U1, U1>>::Buffer>
) -> Velocity2<N>
Create velocity from its linear and angular parts.
pub fn angular(w: N) -> Velocity2<N>
[src]
Create a purely angular velocity.
pub fn linear(vx: N, vy: N) -> Velocity2<N>
[src]
Create a purely linear velocity.
pub fn zero() -> Velocity2<N>
[src]
Create a zero velocity.
pub fn between_positions(
start: &Isometry<N, U2, Unit<Complex<N>>>,
end: &Isometry<N, U2, Unit<Complex<N>>>,
time: N
) -> Velocity2<N>
[src]
start: &Isometry<N, U2, Unit<Complex<N>>>,
end: &Isometry<N, U2, Unit<Complex<N>>>,
time: N
) -> Velocity2<N>
Computes the velocity required to move from start
to end
in the given time
.
pub fn angular_vector(
&self
) -> Matrix<N, U1, U1, <DefaultAllocator as Allocator<N, U1, U1>>::Buffer>
[src]
&self
) -> Matrix<N, U1, U1, <DefaultAllocator as Allocator<N, U1, U1>>::Buffer>
The angular part of the velocity.
pub fn integrate(&self, dt: N) -> Isometry<N, U2, Unit<Complex<N>>>
[src]
Compute the displacement due to this velocity integrated during the time dt
.
pub fn to_transform(&self) -> Isometry<N, U2, Unit<Complex<N>>>
[src]
Compute the displacement due to this velocity integrated during a time equal to 1.0
.
This is equivalent to self.integrate(1.0)
.
pub fn as_slice(&self) -> &[N]ⓘ
[src]
This velocity seen as a slice.
The linear part is stored first.
pub fn as_mut_slice(&mut self) -> &mut [N]ⓘ
[src]
This velocity seen as a mutable slice.
The linear part is stored first.
pub fn as_vector(
&self
) -> &Matrix<N, U3, U1, <DefaultAllocator as Allocator<N, U3, U1>>::Buffer>
[src]
&self
) -> &Matrix<N, U3, U1, <DefaultAllocator as Allocator<N, U3, U1>>::Buffer>
This velocity seen as a vector.
The linear part is stored first.
pub fn as_vector_mut(
&mut self
) -> &mut Matrix<N, U3, U1, <DefaultAllocator as Allocator<N, U3, U1>>::Buffer>
[src]
&mut self
) -> &mut Matrix<N, U3, U1, <DefaultAllocator as Allocator<N, U3, U1>>::Buffer>
This velocity seen as a mutable vector.
The linear part is stored first.
pub fn from_vector<S>(data: &Matrix<N, U3, U1, S>) -> Velocity2<N> where
S: Storage<N, U3, U1>,
[src]
S: Storage<N, U3, U1>,
Create a velocity from a vector.
The linear part of the velocity is expected to be first inside of the input vector.
pub fn from_slice(data: &[N]) -> Velocity2<N>
[src]
Create a velocity from a slice.
The linear part of the velocity is expected to be first inside of the input slice.
pub fn shift(
&self,
shift: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>
) -> Velocity2<N>
[src]
&self,
shift: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>
) -> Velocity2<N>
Compute the velocity of a point that is located at the coordinates shift
relative to the point having self
as velocity.
pub fn rotated(&self, rot: &Rotation<N, U2>) -> Velocity2<N>
[src]
Rotate each component of self
by rot
.
pub fn transformed(
&self,
iso: &Isometry<N, U2, Unit<Complex<N>>>
) -> Velocity2<N>
[src]
&self,
iso: &Isometry<N, U2, Unit<Complex<N>>>
) -> Velocity2<N>
Transform each component of self
by iso
.
Trait Implementations
impl<N> AddAssign<Velocity2<N>> for Velocity2<N> where
N: RealField,
[src]
impl<N> AddAssign<Velocity2<N>> for Velocity2<N> where
N: RealField,
[src]pub fn add_assign(&mut self, rhs: Velocity2<N>)
[src]
Auto Trait Implementations
impl<N> RefUnwindSafe for Velocity2<N> where
N: RefUnwindSafe,
impl<N> RefUnwindSafe for Velocity2<N> where
N: RefUnwindSafe,
impl<N> UnwindSafe for Velocity2<N> where
N: UnwindSafe,
impl<N> UnwindSafe for Velocity2<N> where
N: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: Any,
impl<T> Any for T where
T: Any,
pub fn get_type_id(&self) -> TypeId
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
impl<T> Same<T> for 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>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
pub fn is_in_subset(&self) -> bool
pub fn to_subset_unchecked(&self) -> SS
pub fn from_subset(element: &SS) -> SP
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,