Struct nalgebra::geometry::Point
[−]
[src]
#[repr(C)]pub struct Point<N: Scalar, D: DimName> where
DefaultAllocator: Allocator<N, D>, { pub coords: VectorN<N, D>, }
A point in a n-dimensional euclidean space.
Fields
coords: VectorN<N, D>
The coordinates of this point, i.e., the shift from the origin.
Methods
impl<N: Scalar, D: DimName> Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
pub fn clone(&self) -> Point<N, D>
[src]
Clones this point into one that owns its data.
pub fn to_homogeneous(&self) -> VectorN<N, DimNameSum<D, U1>> where
N: One,
D: DimNameAdd<U1>,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>>,
[src]
N: One,
D: DimNameAdd<U1>,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>>,
Converts this point into a vector in homogeneous coordinates, i.e., appends a 1
at the
end of it.
pub fn from_coordinates(coords: VectorN<N, D>) -> Point<N, D>
[src]
Creates a new point with the given coordinates.
pub fn len(&self) -> usize
[src]
The dimension of this point.
pub fn stride(&self) -> usize
[src]
The stride of this point. This is the number of buffer element separating each component of this point.
ⓘImportant traits for MatrixIter<'a, N, R, C, S>pub fn iter(
&self
) -> MatrixIter<N, D, U1, <DefaultAllocator as Allocator<N, D>>::Buffer>
[src]
&self
) -> MatrixIter<N, D, U1, <DefaultAllocator as Allocator<N, D>>::Buffer>
Iterates through this point coordinates.
ⓘImportant traits for &'a mut Ipub unsafe fn get_unchecked(&self, i: usize) -> &N
[src]
Gets a reference to i-th element of this point without bound-checking.
ⓘImportant traits for MatrixIterMut<'a, N, R, C, S>pub fn iter_mut(
&mut self
) -> MatrixIterMut<N, D, U1, <DefaultAllocator as Allocator<N, D>>::Buffer>
[src]
&mut self
) -> MatrixIterMut<N, D, U1, <DefaultAllocator as Allocator<N, D>>::Buffer>
Mutably iterates through this point coordinates.
ⓘImportant traits for &'a mut Ipub unsafe fn get_unchecked_mut(&mut self, i: usize) -> &mut N
[src]
Gets a mutable reference to i-th element of this point without bound-checking.
pub unsafe fn swap_unchecked(&mut self, i1: usize, i2: usize)
[src]
Swaps two entries without bound-checking.
impl<N: Scalar, D: DimName> Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
pub unsafe fn new_uninitialized() -> Self
[src]
Creates a new point with uninitialized coordinates.
pub fn origin() -> Self where
N: Zero,
[src]
N: Zero,
Creates a new point with all coordinates equal to zero.
pub fn from_homogeneous(v: VectorN<N, DimNameSum<D, U1>>) -> Option<Self> where
N: Scalar + Zero + One + ClosedDiv,
D: DimNameAdd<U1>,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>>,
[src]
N: Scalar + Zero + One + ClosedDiv,
D: DimNameAdd<U1>,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>>,
Creates a new point from its homogeneous vector representation.
In practice, this builds a D-dimensional points with the same first D component as v
divided by the last component of v
. Returns None
if this divisor is zero.
impl<N: Scalar> Point<N, U1> where
DefaultAllocator: Allocator<N, U1>,
[src]
DefaultAllocator: Allocator<N, U1>,
impl<N: Scalar> Point<N, U2> where
DefaultAllocator: Allocator<N, U2>,
[src]
DefaultAllocator: Allocator<N, U2>,
impl<N: Scalar> Point<N, U3> where
DefaultAllocator: Allocator<N, U3>,
[src]
DefaultAllocator: Allocator<N, U3>,
impl<N: Scalar> Point<N, U4> where
DefaultAllocator: Allocator<N, U4>,
[src]
DefaultAllocator: Allocator<N, U4>,
pub fn new(x: N, y: N, z: N, w: N) -> Point<N, U4>
[src]
Initializes this matrix from its components.
impl<N: Scalar> Point<N, U5> where
DefaultAllocator: Allocator<N, U5>,
[src]
DefaultAllocator: Allocator<N, U5>,
pub fn new(x: N, y: N, z: N, w: N, a: N) -> Point<N, U5>
[src]
Initializes this matrix from its components.
impl<N: Scalar> Point<N, U6> where
DefaultAllocator: Allocator<N, U6>,
[src]
DefaultAllocator: Allocator<N, U6>,
pub fn new(x: N, y: N, z: N, w: N, a: N, b: N) -> Point<N, U6>
[src]
Initializes this matrix from its components.
Trait Implementations
impl<N: Real, D: DimNameSub<U1>> Transformation<Point<N, DimNameDiff<D, U1>>> for MatrixN<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameDiff<D, U1>> + Allocator<N, DimNameDiff<D, U1>, DimNameDiff<D, U1>>,
[src]
DefaultAllocator: Allocator<N, D, D> + Allocator<N, DimNameDiff<D, U1>> + Allocator<N, DimNameDiff<D, U1>, DimNameDiff<D, U1>>,
fn transform_vector(
&self,
v: &VectorN<N, DimNameDiff<D, U1>>
) -> VectorN<N, DimNameDiff<D, U1>>
[src]
&self,
v: &VectorN<N, DimNameDiff<D, U1>>
) -> VectorN<N, DimNameDiff<D, U1>>
Applies this group's action on a vector from the euclidean space. Read more
fn transform_point(
&self,
pt: &Point<N, DimNameDiff<D, U1>>
) -> Point<N, DimNameDiff<D, U1>>
[src]
&self,
pt: &Point<N, DimNameDiff<D, U1>>
) -> Point<N, DimNameDiff<D, U1>>
Applies this group's action on a point from the euclidean space.
impl<N: Debug + Scalar, D: Debug + DimName> Debug for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
fn fmt(&self, __arg_0: &mut Formatter) -> Result
[src]
Formats the value using the given formatter. Read more
impl<N: Scalar + Hash, D: DimName + Hash> Hash for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
<DefaultAllocator as Allocator<N, D>>::Buffer: Hash,
[src]
DefaultAllocator: Allocator<N, D>,
<DefaultAllocator as Allocator<N, D>>::Buffer: Hash,
fn hash<H: Hasher>(&self, state: &mut H)
[src]
Feeds this value into the given [Hasher
]. Read more
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl<N: Scalar, D: DimName> Copy for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
<DefaultAllocator as Allocator<N, D>>::Buffer: Copy,
[src]
DefaultAllocator: Allocator<N, D>,
<DefaultAllocator as Allocator<N, D>>::Buffer: Copy,
impl<N: Scalar, D: DimName> Clone for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
<DefaultAllocator as Allocator<N, D>>::Buffer: Clone,
[src]
DefaultAllocator: Allocator<N, D>,
<DefaultAllocator as Allocator<N, D>>::Buffer: Clone,
fn clone(&self) -> Self
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<N: Scalar + ApproxEq, D: DimName> ApproxEq for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
N::Epsilon: Copy,
[src]
DefaultAllocator: Allocator<N, D>,
N::Epsilon: Copy,
type Epsilon = N::Epsilon
Used for specifying relative comparisons.
fn default_epsilon() -> Self::Epsilon
[src]
The default tolerance to use when testing values that are close together. Read more
fn default_max_relative() -> Self::Epsilon
[src]
The default relative tolerance for testing values that are far-apart. Read more
fn default_max_ulps() -> u32
[src]
The default ULPs to tolerate when testing values that are far-apart. Read more
fn relative_eq(
&self,
other: &Self,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
[src]
&self,
other: &Self,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
A test for equality that uses a relative comparison if the values are far apart.
fn ulps_eq(&self, other: &Self, epsilon: Self::Epsilon, max_ulps: u32) -> bool
[src]
A test for equality that uses units in the last place (ULP) if the values are far apart.
fn relative_ne(
&self,
other: &Self,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
[src]
&self,
other: &Self,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon
) -> bool
The inverse of ApproxEq::relative_eq
.
fn ulps_ne(&self, other: &Self, epsilon: Self::Epsilon, max_ulps: u32) -> bool
[src]
The inverse of ApproxEq::ulps_eq
.
impl<N: Scalar + Eq, D: DimName> Eq for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
impl<N: Scalar, D: DimName> PartialEq for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
fn eq(&self, right: &Self) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl<N: Scalar + PartialOrd, D: DimName> PartialOrd for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
fn partial_cmp(&self, other: &Self) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, right: &Self) -> bool
[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, right: &Self) -> bool
[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, right: &Self) -> bool
[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, right: &Self) -> bool
[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl<N: Scalar + Display, D: DimName> Display for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
fn fmt(&self, f: &mut Formatter) -> Result
[src]
Formats the value using the given formatter. Read more
impl<N: Scalar + Bounded, D: DimName> Bounded for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
fn max_value() -> Self
[src]
returns the largest finite number this type can represent
fn min_value() -> Self
[src]
returns the smallest finite number this type can represent
impl<N: Scalar + Rand, D: DimName> Rand for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
fn rand<G: Rng>(rng: &mut G) -> Self
[src]
Generates a random instance of this type using the specified source of randomness. Read more
impl<N: Scalar, D: DimName> Index<usize> for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
type Output = N
The returned type after indexing.
fn index(&self, i: usize) -> &Self::Output
[src]
Performs the indexing (container[index]
) operation.
impl<N: Scalar, D: DimName> IndexMut<usize> for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
fn index_mut(&mut self, i: usize) -> &mut Self::Output
[src]
Performs the mutable indexing (container[index]
) operation.
impl<N: Scalar + ClosedNeg, D: DimName> Neg for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
type Output = Point<N, D>
The resulting type after applying the -
operator.
fn neg(self) -> Self::Output
[src]
Performs the unary -
operation.
impl<'a, N: Scalar + ClosedNeg, D: DimName> Neg for &'a Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
type Output = Point<N, D>
The resulting type after applying the -
operator.
fn neg(self) -> Self::Output
[src]
Performs the unary -
operation.
impl<'a, 'b, N, D: DimName> Sub<&'b Point<N, D>> for &'a Point<N, D> where
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D> + SameNumberOfColumns<U1, U1>,
type Output = VectorSum<N, D, D>
The resulting type after applying the -
operator.
fn sub(self, right: &'b Point<N, D>) -> Self::Output
[src]
Performs the -
operation.
impl<'a, N, D: DimName> Sub<Point<N, D>> for &'a Point<N, D> where
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D> + SameNumberOfColumns<U1, U1>,
type Output = VectorSum<N, D, D>
The resulting type after applying the -
operator.
fn sub(self, right: Point<N, D>) -> Self::Output
[src]
Performs the -
operation.
impl<'b, N, D: DimName> Sub<&'b Point<N, D>> for Point<N, D> where
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D> + SameNumberOfColumns<U1, U1>,
type Output = VectorSum<N, D, D>
The resulting type after applying the -
operator.
fn sub(self, right: &'b Point<N, D>) -> Self::Output
[src]
Performs the -
operation.
impl<N, D: DimName> Sub<Point<N, D>> for Point<N, D> where
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D> + SameNumberOfColumns<U1, U1>,
type Output = VectorSum<N, D, D>
The resulting type after applying the -
operator.
fn sub(self, right: Point<N, D>) -> Self::Output
[src]
Performs the -
operation.
impl<'a, 'b, N, D1: DimName, D2: Dim, SB: Storage<N, D2>> Sub<&'b Vector<N, D2, SB>> for &'a Point<N, D1> where
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
type Output = Point<N, D1>
The resulting type after applying the -
operator.
fn sub(self, right: &'b Vector<N, D2, SB>) -> Self::Output
[src]
Performs the -
operation.
impl<'a, N, D1: DimName, D2: Dim, SB: Storage<N, D2>> Sub<Vector<N, D2, SB>> for &'a Point<N, D1> where
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
type Output = Point<N, D1>
The resulting type after applying the -
operator.
fn sub(self, right: Vector<N, D2, SB>) -> Self::Output
[src]
Performs the -
operation.
impl<'b, N, D1: DimName, D2: Dim, SB: Storage<N, D2>> Sub<&'b Vector<N, D2, SB>> for Point<N, D1> where
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
type Output = Point<N, D1>
The resulting type after applying the -
operator.
fn sub(self, right: &'b Vector<N, D2, SB>) -> Self::Output
[src]
Performs the -
operation.
impl<N, D1: DimName, D2: Dim, SB: Storage<N, D2>> Sub<Vector<N, D2, SB>> for Point<N, D1> where
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedSub,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
type Output = Point<N, D1>
The resulting type after applying the -
operator.
fn sub(self, right: Vector<N, D2, SB>) -> Self::Output
[src]
Performs the -
operation.
impl<'a, 'b, N, D1: DimName, D2: Dim, SB: Storage<N, D2>> Add<&'b Vector<N, D2, SB>> for &'a Point<N, D1> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
type Output = Point<N, D1>
The resulting type after applying the +
operator.
fn add(self, right: &'b Vector<N, D2, SB>) -> Self::Output
[src]
Performs the +
operation.
impl<'a, N, D1: DimName, D2: Dim, SB: Storage<N, D2>> Add<Vector<N, D2, SB>> for &'a Point<N, D1> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
type Output = Point<N, D1>
The resulting type after applying the +
operator.
fn add(self, right: Vector<N, D2, SB>) -> Self::Output
[src]
Performs the +
operation.
impl<'b, N, D1: DimName, D2: Dim, SB: Storage<N, D2>> Add<&'b Vector<N, D2, SB>> for Point<N, D1> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
type Output = Point<N, D1>
The resulting type after applying the +
operator.
fn add(self, right: &'b Vector<N, D2, SB>) -> Self::Output
[src]
Performs the +
operation.
impl<N, D1: DimName, D2: Dim, SB: Storage<N, D2>> Add<Vector<N, D2, SB>> for Point<N, D1> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D1, U1> + Allocator<N, D2, U1> + SameShapeAllocator<N, D1, U1, D2, U1>,
ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<U1, U1>,
type Output = Point<N, D1>
The resulting type after applying the +
operator.
fn add(self, right: Vector<N, D2, SB>) -> Self::Output
[src]
Performs the +
operation.
impl<'b, N, D1: DimName, D2: Dim, SB> AddAssign<&'b Vector<N, D2, SB>> for Point<N, D1> where
N: Scalar + ClosedAdd,
SB: Storage<N, D2>,
DefaultAllocator: Allocator<N, D1>,
ShapeConstraint: SameNumberOfRows<D1, D2>,
[src]
N: Scalar + ClosedAdd,
SB: Storage<N, D2>,
DefaultAllocator: Allocator<N, D1>,
ShapeConstraint: SameNumberOfRows<D1, D2>,
fn add_assign(&mut self, right: &'b Vector<N, D2, SB>)
[src]
Performs the +=
operation.
impl<N, D1: DimName, D2: Dim, SB> AddAssign<Vector<N, D2, SB>> for Point<N, D1> where
N: Scalar + ClosedAdd,
SB: Storage<N, D2>,
DefaultAllocator: Allocator<N, D1>,
ShapeConstraint: SameNumberOfRows<D1, D2>,
[src]
N: Scalar + ClosedAdd,
SB: Storage<N, D2>,
DefaultAllocator: Allocator<N, D1>,
ShapeConstraint: SameNumberOfRows<D1, D2>,
fn add_assign(&mut self, right: Vector<N, D2, SB>)
[src]
Performs the +=
operation.
impl<'b, N, D1: DimName, D2: Dim, SB> SubAssign<&'b Vector<N, D2, SB>> for Point<N, D1> where
N: Scalar + ClosedSub,
SB: Storage<N, D2>,
DefaultAllocator: Allocator<N, D1>,
ShapeConstraint: SameNumberOfRows<D1, D2>,
[src]
N: Scalar + ClosedSub,
SB: Storage<N, D2>,
DefaultAllocator: Allocator<N, D1>,
ShapeConstraint: SameNumberOfRows<D1, D2>,
fn sub_assign(&mut self, right: &'b Vector<N, D2, SB>)
[src]
Performs the -=
operation.
impl<N, D1: DimName, D2: Dim, SB> SubAssign<Vector<N, D2, SB>> for Point<N, D1> where
N: Scalar + ClosedSub,
SB: Storage<N, D2>,
DefaultAllocator: Allocator<N, D1>,
ShapeConstraint: SameNumberOfRows<D1, D2>,
[src]
N: Scalar + ClosedSub,
SB: Storage<N, D2>,
DefaultAllocator: Allocator<N, D1>,
ShapeConstraint: SameNumberOfRows<D1, D2>,
fn sub_assign(&mut self, right: Vector<N, D2, SB>)
[src]
Performs the -=
operation.
impl<N, R1: DimName, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Mul<Point<N, D2>> for Matrix<N, R1, C1, SA> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, U1> + Allocator<N, R1, U1>,
ShapeConstraint: AreMultipliable<R1, C1, D2, U1>,
[src]
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, U1> + Allocator<N, R1, U1>,
ShapeConstraint: AreMultipliable<R1, C1, D2, U1>,
type Output = Point<N, R1>
The resulting type after applying the *
operator.
fn mul(self, right: Point<N, D2>) -> Self::Output
[src]
Performs the *
operation.
impl<'a, N, R1: DimName, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Mul<Point<N, D2>> for &'a Matrix<N, R1, C1, SA> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, U1> + Allocator<N, R1, U1>,
ShapeConstraint: AreMultipliable<R1, C1, D2, U1>,
[src]
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, U1> + Allocator<N, R1, U1>,
ShapeConstraint: AreMultipliable<R1, C1, D2, U1>,
type Output = Point<N, R1>
The resulting type after applying the *
operator.
fn mul(self, right: Point<N, D2>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, N, R1: DimName, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Mul<&'b Point<N, D2>> for Matrix<N, R1, C1, SA> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, U1> + Allocator<N, R1, U1>,
ShapeConstraint: AreMultipliable<R1, C1, D2, U1>,
[src]
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, U1> + Allocator<N, R1, U1>,
ShapeConstraint: AreMultipliable<R1, C1, D2, U1>,
type Output = Point<N, R1>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<N, D2>) -> Self::Output
[src]
Performs the *
operation.
impl<'a, 'b, N, R1: DimName, C1: Dim, D2: DimName, SA: Storage<N, R1, C1>> Mul<&'b Point<N, D2>> for &'a Matrix<N, R1, C1, SA> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, U1> + Allocator<N, R1, U1>,
ShapeConstraint: AreMultipliable<R1, C1, D2, U1>,
[src]
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, R1, C1> + Allocator<N, D2, U1> + Allocator<N, R1, U1>,
ShapeConstraint: AreMultipliable<R1, C1, D2, U1>,
type Output = Point<N, R1>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<N, D2>) -> Self::Output
[src]
Performs the *
operation.
impl<N: Scalar + ClosedMul, D: DimName> Mul<N> for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: N) -> Self::Output
[src]
Performs the *
operation.
impl<'a, N: Scalar + ClosedMul, D: DimName> Mul<N> for &'a Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: N) -> Self::Output
[src]
Performs the *
operation.
impl<N: Scalar + ClosedMul, D: DimName> MulAssign<N> for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
fn mul_assign(&mut self, right: N)
[src]
Performs the *=
operation.
impl<N: Scalar + ClosedDiv, D: DimName> Div<N> for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
type Output = Point<N, D>
The resulting type after applying the /
operator.
fn div(self, right: N) -> Self::Output
[src]
Performs the /
operation.
impl<'a, N: Scalar + ClosedDiv, D: DimName> Div<N> for &'a Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
type Output = Point<N, D>
The resulting type after applying the /
operator.
fn div(self, right: N) -> Self::Output
[src]
Performs the /
operation.
impl<N: Scalar + ClosedDiv, D: DimName> DivAssign<N> for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
fn div_assign(&mut self, right: N)
[src]
Performs the /=
operation.
impl<D: DimName> Mul<Point<u8, D>> for u8 where
DefaultAllocator: Allocator<u8, D>,
[src]
DefaultAllocator: Allocator<u8, D>,
type Output = Point<u8, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<u8, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, D: DimName> Mul<&'b Point<u8, D>> for u8 where
DefaultAllocator: Allocator<u8, D>,
[src]
DefaultAllocator: Allocator<u8, D>,
type Output = Point<u8, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<u8, D>) -> Self::Output
[src]
Performs the *
operation.
impl<D: DimName> Mul<Point<u16, D>> for u16 where
DefaultAllocator: Allocator<u16, D>,
[src]
DefaultAllocator: Allocator<u16, D>,
type Output = Point<u16, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<u16, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, D: DimName> Mul<&'b Point<u16, D>> for u16 where
DefaultAllocator: Allocator<u16, D>,
[src]
DefaultAllocator: Allocator<u16, D>,
type Output = Point<u16, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<u16, D>) -> Self::Output
[src]
Performs the *
operation.
impl<D: DimName> Mul<Point<u32, D>> for u32 where
DefaultAllocator: Allocator<u32, D>,
[src]
DefaultAllocator: Allocator<u32, D>,
type Output = Point<u32, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<u32, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, D: DimName> Mul<&'b Point<u32, D>> for u32 where
DefaultAllocator: Allocator<u32, D>,
[src]
DefaultAllocator: Allocator<u32, D>,
type Output = Point<u32, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<u32, D>) -> Self::Output
[src]
Performs the *
operation.
impl<D: DimName> Mul<Point<u64, D>> for u64 where
DefaultAllocator: Allocator<u64, D>,
[src]
DefaultAllocator: Allocator<u64, D>,
type Output = Point<u64, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<u64, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, D: DimName> Mul<&'b Point<u64, D>> for u64 where
DefaultAllocator: Allocator<u64, D>,
[src]
DefaultAllocator: Allocator<u64, D>,
type Output = Point<u64, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<u64, D>) -> Self::Output
[src]
Performs the *
operation.
impl<D: DimName> Mul<Point<usize, D>> for usize where
DefaultAllocator: Allocator<usize, D>,
[src]
DefaultAllocator: Allocator<usize, D>,
type Output = Point<usize, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<usize, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, D: DimName> Mul<&'b Point<usize, D>> for usize where
DefaultAllocator: Allocator<usize, D>,
[src]
DefaultAllocator: Allocator<usize, D>,
type Output = Point<usize, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<usize, D>) -> Self::Output
[src]
Performs the *
operation.
impl<D: DimName> Mul<Point<i8, D>> for i8 where
DefaultAllocator: Allocator<i8, D>,
[src]
DefaultAllocator: Allocator<i8, D>,
type Output = Point<i8, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<i8, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, D: DimName> Mul<&'b Point<i8, D>> for i8 where
DefaultAllocator: Allocator<i8, D>,
[src]
DefaultAllocator: Allocator<i8, D>,
type Output = Point<i8, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<i8, D>) -> Self::Output
[src]
Performs the *
operation.
impl<D: DimName> Mul<Point<i16, D>> for i16 where
DefaultAllocator: Allocator<i16, D>,
[src]
DefaultAllocator: Allocator<i16, D>,
type Output = Point<i16, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<i16, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, D: DimName> Mul<&'b Point<i16, D>> for i16 where
DefaultAllocator: Allocator<i16, D>,
[src]
DefaultAllocator: Allocator<i16, D>,
type Output = Point<i16, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<i16, D>) -> Self::Output
[src]
Performs the *
operation.
impl<D: DimName> Mul<Point<i32, D>> for i32 where
DefaultAllocator: Allocator<i32, D>,
[src]
DefaultAllocator: Allocator<i32, D>,
type Output = Point<i32, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<i32, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, D: DimName> Mul<&'b Point<i32, D>> for i32 where
DefaultAllocator: Allocator<i32, D>,
[src]
DefaultAllocator: Allocator<i32, D>,
type Output = Point<i32, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<i32, D>) -> Self::Output
[src]
Performs the *
operation.
impl<D: DimName> Mul<Point<i64, D>> for i64 where
DefaultAllocator: Allocator<i64, D>,
[src]
DefaultAllocator: Allocator<i64, D>,
type Output = Point<i64, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<i64, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, D: DimName> Mul<&'b Point<i64, D>> for i64 where
DefaultAllocator: Allocator<i64, D>,
[src]
DefaultAllocator: Allocator<i64, D>,
type Output = Point<i64, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<i64, D>) -> Self::Output
[src]
Performs the *
operation.
impl<D: DimName> Mul<Point<isize, D>> for isize where
DefaultAllocator: Allocator<isize, D>,
[src]
DefaultAllocator: Allocator<isize, D>,
type Output = Point<isize, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<isize, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, D: DimName> Mul<&'b Point<isize, D>> for isize where
DefaultAllocator: Allocator<isize, D>,
[src]
DefaultAllocator: Allocator<isize, D>,
type Output = Point<isize, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<isize, D>) -> Self::Output
[src]
Performs the *
operation.
impl<D: DimName> Mul<Point<f32, D>> for f32 where
DefaultAllocator: Allocator<f32, D>,
[src]
DefaultAllocator: Allocator<f32, D>,
type Output = Point<f32, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<f32, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, D: DimName> Mul<&'b Point<f32, D>> for f32 where
DefaultAllocator: Allocator<f32, D>,
[src]
DefaultAllocator: Allocator<f32, D>,
type Output = Point<f32, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<f32, D>) -> Self::Output
[src]
Performs the *
operation.
impl<D: DimName> Mul<Point<f64, D>> for f64 where
DefaultAllocator: Allocator<f64, D>,
[src]
DefaultAllocator: Allocator<f64, D>,
type Output = Point<f64, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<f64, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, D: DimName> Mul<&'b Point<f64, D>> for f64 where
DefaultAllocator: Allocator<f64, D>,
[src]
DefaultAllocator: Allocator<f64, D>,
type Output = Point<f64, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<f64, D>) -> Self::Output
[src]
Performs the *
operation.
impl<N: Scalar + Field, D: DimName> AffineSpace for Point<N, D> where
N: Scalar + Field,
DefaultAllocator: Allocator<N, D>,
[src]
N: Scalar + Field,
DefaultAllocator: Allocator<N, D>,
type Translation = VectorN<N, D>
The associated vector space.
fn translate_by(&self, t: &Self::Translation) -> Self
[src]
Same as *self + *t
. Applies the additive group action of this affine space's associated vector space on self
. Read more
fn subtract(&self, right: &Self) -> Self::Translation
[src]
Same as *self - *other
. Returns the unique element v
of the associated vector space such that self = right + v
. Read more
impl<N: Real, D: DimName> EuclideanSpace for Point<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
type Coordinates = VectorN<N, D>
The underlying finite vector space.
type Real = N
The underlying reals.
fn origin() -> Self
[src]
The preferred origin of this euclidean space. Read more
fn coordinates(&self) -> Self::Coordinates
[src]
The coordinates of this point, i.e., the translation from the origin.
fn from_coordinates(coords: Self::Coordinates) -> Self
[src]
Builds a point from its coordinates relative to the origin.
fn scale_by(&self, n: N) -> Self
[src]
Multiplies the distance of this point to Self::origin()
by s
. Read more
fn distance_squared(&self, b: &Self) -> Self::Real
[src]
The distance between two points.
fn distance(&self, b: &Self) -> Self::Real
[src]
The distance between two points.
impl<N, D: DimName> MeetSemilattice for Point<N, D> where
N: Scalar + MeetSemilattice,
DefaultAllocator: Allocator<N, D>,
[src]
N: Scalar + MeetSemilattice,
DefaultAllocator: Allocator<N, D>,
impl<N, D: DimName> JoinSemilattice for Point<N, D> where
N: Scalar + JoinSemilattice,
DefaultAllocator: Allocator<N, D>,
[src]
N: Scalar + JoinSemilattice,
DefaultAllocator: Allocator<N, D>,
impl<N, D: DimName> Lattice for Point<N, D> where
N: Scalar + Lattice,
DefaultAllocator: Allocator<N, D>,
[src]
N: Scalar + Lattice,
DefaultAllocator: Allocator<N, D>,
fn meet_join(&self, other: &Self) -> (Self, Self)
[src]
Returns the infimum and the supremum simultaneously.
fn partial_min(&'a self, other: &'a Self) -> Option<&'a Self>
[src]
Return the minimum of self
and other
if they are comparable.
fn partial_max(&'a self, other: &'a Self) -> Option<&'a Self>
[src]
Return the maximum of self
and other
if they are comparable.
fn partial_sort2(&'a self, other: &'a Self) -> Option<(&'a Self, &'a Self)>
[src]
Sorts two values in increasing order using a partial ordering.
fn partial_clamp(&'a self, min: &'a Self, max: &'a Self) -> Option<&'a Self>
[src]
Clamp value
between min
and max
. Returns None
if value
is not comparable to min
or max
. Read more
impl<N1, N2, D> SubsetOf<Point<N2, D>> for Point<N1, D> where
D: DimName,
N1: Scalar,
N2: Scalar + SupersetOf<N1>,
DefaultAllocator: Allocator<N2, D> + Allocator<N1, D>,
[src]
D: DimName,
N1: Scalar,
N2: Scalar + SupersetOf<N1>,
DefaultAllocator: Allocator<N2, D> + Allocator<N1, D>,
fn to_superset(&self) -> Point<N2, D>
[src]
The inclusion map: converts self
to the equivalent element of its superset.
fn is_in_subset(m: &Point<N2, D>) -> bool
[src]
Checks if element
is actually part of the subset Self
(and can be converted to it).
unsafe fn from_superset_unchecked(m: &Point<N2, D>) -> Self
[src]
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
[src]
The inverse inclusion map: attempts to construct self
from the equivalent element of its superset. Read more
impl<N1, N2, D> SubsetOf<VectorN<N2, DimNameSum<D, U1>>> for Point<N1, D> where
D: DimNameAdd<U1>,
N1: Scalar,
N2: Scalar + Zero + One + ClosedDiv + SupersetOf<N1>,
DefaultAllocator: Allocator<N1, D> + Allocator<N1, DimNameSum<D, U1>> + Allocator<N2, DimNameSum<D, U1>> + Allocator<N2, D>,
[src]
D: DimNameAdd<U1>,
N1: Scalar,
N2: Scalar + Zero + One + ClosedDiv + SupersetOf<N1>,
DefaultAllocator: Allocator<N1, D> + Allocator<N1, DimNameSum<D, U1>> + Allocator<N2, DimNameSum<D, U1>> + Allocator<N2, D>,
fn to_superset(&self) -> VectorN<N2, DimNameSum<D, U1>>
[src]
The inclusion map: converts self
to the equivalent element of its superset.
fn is_in_subset(v: &VectorN<N2, DimNameSum<D, U1>>) -> bool
[src]
Checks if element
is actually part of the subset Self
(and can be converted to it).
unsafe fn from_superset_unchecked(v: &VectorN<N2, DimNameSum<D, U1>>) -> Self
[src]
Use with care! Same as self.to_superset
but without any property checks. Always succeeds.
fn from_superset(element: &T) -> Option<Self>
[src]
The inverse inclusion map: attempts to construct self
from the equivalent element of its superset. Read more
impl<N: Scalar> Deref for Point<N, U1> where
DefaultAllocator: Allocator<N, U1>,
[src]
DefaultAllocator: Allocator<N, U1>,
type Target = X<N>
The resulting type after dereferencing.
fn deref(&self) -> &Self::Target
[src]
Dereferences the value.
impl<N: Scalar> DerefMut for Point<N, U1> where
DefaultAllocator: Allocator<N, U1>,
[src]
DefaultAllocator: Allocator<N, U1>,
impl<N: Scalar> Deref for Point<N, U2> where
DefaultAllocator: Allocator<N, U2>,
[src]
DefaultAllocator: Allocator<N, U2>,
type Target = XY<N>
The resulting type after dereferencing.
fn deref(&self) -> &Self::Target
[src]
Dereferences the value.
impl<N: Scalar> DerefMut for Point<N, U2> where
DefaultAllocator: Allocator<N, U2>,
[src]
DefaultAllocator: Allocator<N, U2>,
impl<N: Scalar> Deref for Point<N, U3> where
DefaultAllocator: Allocator<N, U3>,
[src]
DefaultAllocator: Allocator<N, U3>,
type Target = XYZ<N>
The resulting type after dereferencing.
fn deref(&self) -> &Self::Target
[src]
Dereferences the value.
impl<N: Scalar> DerefMut for Point<N, U3> where
DefaultAllocator: Allocator<N, U3>,
[src]
DefaultAllocator: Allocator<N, U3>,
impl<N: Scalar> Deref for Point<N, U4> where
DefaultAllocator: Allocator<N, U4>,
[src]
DefaultAllocator: Allocator<N, U4>,
type Target = XYZW<N>
The resulting type after dereferencing.
fn deref(&self) -> &Self::Target
[src]
Dereferences the value.
impl<N: Scalar> DerefMut for Point<N, U4> where
DefaultAllocator: Allocator<N, U4>,
[src]
DefaultAllocator: Allocator<N, U4>,
impl<N: Scalar> Deref for Point<N, U5> where
DefaultAllocator: Allocator<N, U5>,
[src]
DefaultAllocator: Allocator<N, U5>,
type Target = XYZWA<N>
The resulting type after dereferencing.
fn deref(&self) -> &Self::Target
[src]
Dereferences the value.
impl<N: Scalar> DerefMut for Point<N, U5> where
DefaultAllocator: Allocator<N, U5>,
[src]
DefaultAllocator: Allocator<N, U5>,
impl<N: Scalar> Deref for Point<N, U6> where
DefaultAllocator: Allocator<N, U6>,
[src]
DefaultAllocator: Allocator<N, U6>,
type Target = XYZWAB<N>
The resulting type after dereferencing.
fn deref(&self) -> &Self::Target
[src]
Dereferences the value.
impl<N: Scalar> DerefMut for Point<N, U6> where
DefaultAllocator: Allocator<N, U6>,
[src]
DefaultAllocator: Allocator<N, U6>,
impl<N, D: DimName> Mul<Point<N, D>> for Rotation<N, D> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
[src]
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'a, N, D: DimName> Mul<Point<N, D>> for &'a Rotation<N, D> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
[src]
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, N, D: DimName> Mul<&'b Point<N, D>> for Rotation<N, D> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
[src]
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'a, 'b, N, D: DimName> Mul<&'b Point<N, D>> for &'a Rotation<N, D> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
[src]
N: Scalar + Zero + One + ClosedAdd + ClosedMul,
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D, U1> + Allocator<N, D, U1>,
DefaultAllocator: Allocator<N, D>,
ShapeConstraint: AreMultipliable<D, D, D, U1>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<N: Real, D: DimName> Transformation<Point<N, D>> for Rotation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
fn transform_point(&self, pt: &Point<N, D>) -> Point<N, D>
[src]
Applies this group's action on a point from the euclidean space.
fn transform_vector(&self, v: &VectorN<N, D>) -> VectorN<N, D>
[src]
Applies this group's action on a vector from the euclidean space. Read more
impl<N: Real, D: DimName> ProjectiveTransformation<Point<N, D>> for Rotation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
fn inverse_transform_point(&self, pt: &Point<N, D>) -> Point<N, D>
[src]
Applies this group's inverse action on a point from the euclidean space.
fn inverse_transform_vector(&self, v: &VectorN<N, D>) -> VectorN<N, D>
[src]
Applies this group's inverse action on a vector from the euclidean space. Read more
impl<N: Real, D: DimName> AffineTransformation<Point<N, D>> for Rotation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
type Rotation = Self
Type of the first rotation to be applied.
type NonUniformScaling = Id
Type of the non-uniform scaling to be applied.
type Translation = Id
The type of the pure translation part of this affine transformation.
fn decompose(&self) -> (Id, Self, Id, Self)
[src]
Decomposes this affine transformation into a rotation followed by a non-uniform scaling, followed by a rotation, followed by a translation. Read more
fn append_translation(&self, _: &Self::Translation) -> Self
[src]
Appends a translation to this similarity.
fn prepend_translation(&self, _: &Self::Translation) -> Self
[src]
Prepends a translation to this similarity.
fn append_rotation(&self, r: &Self::Rotation) -> Self
[src]
Appends a rotation to this similarity.
fn prepend_rotation(&self, r: &Self::Rotation) -> Self
[src]
Prepends a rotation to this similarity.
fn append_scaling(&self, _: &Self::NonUniformScaling) -> Self
[src]
Appends a scaling factor to this similarity.
fn prepend_scaling(&self, _: &Self::NonUniformScaling) -> Self
[src]
Prepends a scaling factor to this similarity.
fn append_rotation_wrt_point(&self, r: &Self::Rotation, p: &E) -> Option<Self>
[src]
Appends to this similarity a rotation centered at the point p
, i.e., this point is left invariant. Read more
impl<N: Real, D: DimName> Similarity<Point<N, D>> for Rotation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
type Scaling = Id
The type of the pure (uniform) scaling part of this similarity transformation.
fn translation(&self) -> Id
[src]
The pure translational component of this similarity transformation.
fn rotation(&self) -> Self
[src]
The pure rotational component of this similarity transformation.
fn scaling(&self) -> Id
[src]
The pure scaling component of this similarity transformation.
fn translate_point(&self, pt: &E) -> E
[src]
Applies this transformation's pure translational part to a point.
fn rotate_point(&self, pt: &E) -> E
[src]
Applies this transformation's pure rotational part to a point.
fn scale_point(&self, pt: &E) -> E
[src]
Applies this transformation's pure scaling part to a point.
fn rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation's pure rotational part to a vector.
fn scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation's pure scaling part to a vector.
fn inverse_translate_point(&self, pt: &E) -> E
[src]
Applies this transformation inverse's pure translational part to a point.
fn inverse_rotate_point(&self, pt: &E) -> E
[src]
Applies this transformation inverse's pure rotational part to a point.
fn inverse_scale_point(&self, pt: &E) -> E
[src]
Applies this transformation inverse's pure scaling part to a point.
fn inverse_rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation inverse's pure rotational part to a vector.
fn inverse_scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation inverse's pure scaling part to a vector.
impl<N: Real, D: DimName> Isometry<Point<N, D>> for Rotation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
impl<N: Real, D: DimName> DirectIsometry<Point<N, D>> for Rotation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
impl<N: Real, D: DimName> OrthogonalTransformation<Point<N, D>> for Rotation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
impl<N: Real, D: DimName> Rotation<Point<N, D>> for Rotation<N, D> where
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D, D> + Allocator<N, D>,
Subgroups of the n-dimensional rotation group SO(n)
.
fn powf(&self, _: N) -> Option<Self>
[src]
Raises this rotation to a power. If this is a simple rotation, the result must be equivalent to multiplying the rotation angle by n
. Read more
fn rotation_between(_: &VectorN<N, D>, _: &VectorN<N, D>) -> Option<Self>
[src]
Computes a simple rotation that makes the angle between a
and b
equal to zero, i.e., b.angle(a * delta_rotation(a, b)) = 0
. If a
and b
are collinear, the computed rotation may not be unique. Returns None
if no such simple rotation exists in the subgroup represented by Self
. Read more
fn scaled_rotation_between(
_: &VectorN<N, D>,
_: &VectorN<N, D>,
_: N
) -> Option<Self>
[src]
_: &VectorN<N, D>,
_: &VectorN<N, D>,
_: N
) -> Option<Self>
Computes the rotation between a
and b
and raises it to the power n
. Read more
impl<'a, 'b, N, D: DimName> Mul<&'b Point<N, D>> for &'a Translation<N, D> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'a, N, D: DimName> Mul<Point<N, D>> for &'a Translation<N, D> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, N, D: DimName> Mul<&'b Point<N, D>> for Translation<N, D> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<N, D: DimName> Mul<Point<N, D>> for Translation<N, D> where
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,
[src]
N: Scalar + ClosedAdd,
DefaultAllocator: Allocator<N, D, U1> + Allocator<N, D, U1> + SameShapeAllocator<N, D, U1, D, U1>,
ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<U1, U1>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<N: Real, D: DimName> Transformation<Point<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
fn transform_point(&self, pt: &Point<N, D>) -> Point<N, D>
[src]
Applies this group's action on a point from the euclidean space.
fn transform_vector(&self, v: &VectorN<N, D>) -> VectorN<N, D>
[src]
Applies this group's action on a vector from the euclidean space. Read more
impl<N: Real, D: DimName> ProjectiveTransformation<Point<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
fn inverse_transform_point(&self, pt: &Point<N, D>) -> Point<N, D>
[src]
Applies this group's inverse action on a point from the euclidean space.
fn inverse_transform_vector(&self, v: &VectorN<N, D>) -> VectorN<N, D>
[src]
Applies this group's inverse action on a vector from the euclidean space. Read more
impl<N: Real, D: DimName> AffineTransformation<Point<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
type Rotation = Id
Type of the first rotation to be applied.
type NonUniformScaling = Id
Type of the non-uniform scaling to be applied.
type Translation = Self
The type of the pure translation part of this affine transformation.
fn decompose(&self) -> (Self, Id, Id, Id)
[src]
Decomposes this affine transformation into a rotation followed by a non-uniform scaling, followed by a rotation, followed by a translation. Read more
fn append_translation(&self, t: &Self::Translation) -> Self
[src]
Appends a translation to this similarity.
fn prepend_translation(&self, t: &Self::Translation) -> Self
[src]
Prepends a translation to this similarity.
fn append_rotation(&self, _: &Self::Rotation) -> Self
[src]
Appends a rotation to this similarity.
fn prepend_rotation(&self, _: &Self::Rotation) -> Self
[src]
Prepends a rotation to this similarity.
fn append_scaling(&self, _: &Self::NonUniformScaling) -> Self
[src]
Appends a scaling factor to this similarity.
fn prepend_scaling(&self, _: &Self::NonUniformScaling) -> Self
[src]
Prepends a scaling factor to this similarity.
fn append_rotation_wrt_point(&self, r: &Self::Rotation, p: &E) -> Option<Self>
[src]
Appends to this similarity a rotation centered at the point p
, i.e., this point is left invariant. Read more
impl<N: Real, D: DimName> Similarity<Point<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
type Scaling = Id
The type of the pure (uniform) scaling part of this similarity transformation.
fn translation(&self) -> Self
[src]
The pure translational component of this similarity transformation.
fn rotation(&self) -> Id
[src]
The pure rotational component of this similarity transformation.
fn scaling(&self) -> Id
[src]
The pure scaling component of this similarity transformation.
fn translate_point(&self, pt: &E) -> E
[src]
Applies this transformation's pure translational part to a point.
fn rotate_point(&self, pt: &E) -> E
[src]
Applies this transformation's pure rotational part to a point.
fn scale_point(&self, pt: &E) -> E
[src]
Applies this transformation's pure scaling part to a point.
fn rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation's pure rotational part to a vector.
fn scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation's pure scaling part to a vector.
fn inverse_translate_point(&self, pt: &E) -> E
[src]
Applies this transformation inverse's pure translational part to a point.
fn inverse_rotate_point(&self, pt: &E) -> E
[src]
Applies this transformation inverse's pure rotational part to a point.
fn inverse_scale_point(&self, pt: &E) -> E
[src]
Applies this transformation inverse's pure scaling part to a point.
fn inverse_rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation inverse's pure rotational part to a vector.
fn inverse_scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation inverse's pure scaling part to a vector.
impl<N: Real, D: DimName> Isometry<Point<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
impl<N: Real, D: DimName> DirectIsometry<Point<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
impl<N: Real, D: DimName> AlgaTranslation<Point<N, D>> for Translation<N, D> where
DefaultAllocator: Allocator<N, D>,
[src]
DefaultAllocator: Allocator<N, D>,
Subgroups of the n-dimensional translation group T(n)
.
fn to_vector(&self) -> VectorN<N, D>
[src]
Converts this translation to a vector.
fn from_vector(v: VectorN<N, D>) -> Option<Self>
[src]
Attempts to convert a vector to this translation. Returns None
if the translation represented by v
is not part of the translation subgroup represented by Self
. Read more
fn powf(&self, n: N) -> Option<Self>
[src]
Raises the translation to a power. The result must be equivalent to self.to_superset() * n
. Returns None
if the result is not representable by Self
. Read more
fn translation_between(a: &Point<N, D>, b: &Point<N, D>) -> Option<Self>
[src]
The translation needed to make a
coincide with b
, i.e., b = a * translation_to(a, b)
.
impl<N: Real, D: DimName, R> Mul<Point<N, D>> for Isometry<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'a, N: Real, D: DimName, R> Mul<Point<N, D>> for &'a Isometry<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, N: Real, D: DimName, R> Mul<&'b Point<N, D>> for Isometry<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'a, 'b, N: Real, D: DimName, R> Mul<&'b Point<N, D>> for &'a Isometry<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<N: Real, D: DimName, R> Transformation<Point<N, D>> for Isometry<N, D, R> where
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
fn transform_point(&self, pt: &Point<N, D>) -> Point<N, D>
[src]
Applies this group's action on a point from the euclidean space.
fn transform_vector(&self, v: &VectorN<N, D>) -> VectorN<N, D>
[src]
Applies this group's action on a vector from the euclidean space. Read more
impl<N: Real, D: DimName, R> ProjectiveTransformation<Point<N, D>> for Isometry<N, D, R> where
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
fn inverse_transform_point(&self, pt: &Point<N, D>) -> Point<N, D>
[src]
Applies this group's inverse action on a point from the euclidean space.
fn inverse_transform_vector(&self, v: &VectorN<N, D>) -> VectorN<N, D>
[src]
Applies this group's inverse action on a vector from the euclidean space. Read more
impl<N: Real, D: DimName, R> AffineTransformation<Point<N, D>> for Isometry<N, D, R> where
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
type Rotation = R
Type of the first rotation to be applied.
type NonUniformScaling = Id
Type of the non-uniform scaling to be applied.
type Translation = Translation<N, D>
The type of the pure translation part of this affine transformation.
fn decompose(&self) -> (Translation<N, D>, R, Id, R)
[src]
Decomposes this affine transformation into a rotation followed by a non-uniform scaling, followed by a rotation, followed by a translation. Read more
fn append_translation(&self, t: &Self::Translation) -> Self
[src]
Appends a translation to this similarity.
fn prepend_translation(&self, t: &Self::Translation) -> Self
[src]
Prepends a translation to this similarity.
fn append_rotation(&self, r: &Self::Rotation) -> Self
[src]
Appends a rotation to this similarity.
fn prepend_rotation(&self, r: &Self::Rotation) -> Self
[src]
Prepends a rotation to this similarity.
fn append_scaling(&self, _: &Self::NonUniformScaling) -> Self
[src]
Appends a scaling factor to this similarity.
fn prepend_scaling(&self, _: &Self::NonUniformScaling) -> Self
[src]
Prepends a scaling factor to this similarity.
fn append_rotation_wrt_point(
&self,
r: &Self::Rotation,
p: &Point<N, D>
) -> Option<Self>
[src]
&self,
r: &Self::Rotation,
p: &Point<N, D>
) -> Option<Self>
Appends to this similarity a rotation centered at the point p
, i.e., this point is left invariant. Read more
impl<N: Real, D: DimName, R> Similarity<Point<N, D>> for Isometry<N, D, R> where
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
type Scaling = Id
The type of the pure (uniform) scaling part of this similarity transformation.
fn translation(&self) -> Translation<N, D>
[src]
The pure translational component of this similarity transformation.
fn rotation(&self) -> R
[src]
The pure rotational component of this similarity transformation.
fn scaling(&self) -> Id
[src]
The pure scaling component of this similarity transformation.
fn translate_point(&self, pt: &E) -> E
[src]
Applies this transformation's pure translational part to a point.
fn rotate_point(&self, pt: &E) -> E
[src]
Applies this transformation's pure rotational part to a point.
fn scale_point(&self, pt: &E) -> E
[src]
Applies this transformation's pure scaling part to a point.
fn rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation's pure rotational part to a vector.
fn scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation's pure scaling part to a vector.
fn inverse_translate_point(&self, pt: &E) -> E
[src]
Applies this transformation inverse's pure translational part to a point.
fn inverse_rotate_point(&self, pt: &E) -> E
[src]
Applies this transformation inverse's pure rotational part to a point.
fn inverse_scale_point(&self, pt: &E) -> E
[src]
Applies this transformation inverse's pure scaling part to a point.
fn inverse_rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation inverse's pure rotational part to a vector.
fn inverse_scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation inverse's pure scaling part to a vector.
impl<N: Real, D: DimName, R> AlgaIsometry<Point<N, D>> for Isometry<N, D, R> where
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
impl<N: Real, D: DimName, R> DirectIsometry<Point<N, D>> for Isometry<N, D, R> where
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
impl<N: Real, D: DimName, R> Mul<Point<N, D>> for Similarity<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'a, N: Real, D: DimName, R> Mul<Point<N, D>> for &'a Similarity<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, N: Real, D: DimName, R> Mul<&'b Point<N, D>> for Similarity<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'a, 'b, N: Real, D: DimName, R> Mul<&'b Point<N, D>> for &'a Similarity<N, D, R> where
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: AlgaRotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, right: &'b Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<N: Real, D: DimName, R> Transformation<Point<N, D>> for Similarity<N, D, R> where
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
fn transform_point(&self, pt: &Point<N, D>) -> Point<N, D>
[src]
Applies this group's action on a point from the euclidean space.
fn transform_vector(&self, v: &VectorN<N, D>) -> VectorN<N, D>
[src]
Applies this group's action on a vector from the euclidean space. Read more
impl<N: Real, D: DimName, R> ProjectiveTransformation<Point<N, D>> for Similarity<N, D, R> where
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
fn inverse_transform_point(&self, pt: &Point<N, D>) -> Point<N, D>
[src]
Applies this group's inverse action on a point from the euclidean space.
fn inverse_transform_vector(&self, v: &VectorN<N, D>) -> VectorN<N, D>
[src]
Applies this group's inverse action on a vector from the euclidean space. Read more
impl<N: Real, D: DimName, R> AffineTransformation<Point<N, D>> for Similarity<N, D, R> where
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
type NonUniformScaling = N
Type of the non-uniform scaling to be applied.
type Rotation = R
Type of the first rotation to be applied.
type Translation = Translation<N, D>
The type of the pure translation part of this affine transformation.
fn decompose(&self) -> (Translation<N, D>, R, N, R)
[src]
Decomposes this affine transformation into a rotation followed by a non-uniform scaling, followed by a rotation, followed by a translation. Read more
fn append_translation(&self, t: &Self::Translation) -> Self
[src]
Appends a translation to this similarity.
fn prepend_translation(&self, t: &Self::Translation) -> Self
[src]
Prepends a translation to this similarity.
fn append_rotation(&self, r: &Self::Rotation) -> Self
[src]
Appends a rotation to this similarity.
fn prepend_rotation(&self, r: &Self::Rotation) -> Self
[src]
Prepends a rotation to this similarity.
fn append_scaling(&self, s: &Self::NonUniformScaling) -> Self
[src]
Appends a scaling factor to this similarity.
fn prepend_scaling(&self, s: &Self::NonUniformScaling) -> Self
[src]
Prepends a scaling factor to this similarity.
fn append_rotation_wrt_point(
&self,
r: &Self::Rotation,
p: &Point<N, D>
) -> Option<Self>
[src]
&self,
r: &Self::Rotation,
p: &Point<N, D>
) -> Option<Self>
Appends to this similarity a rotation centered at the point p
, i.e., this point is left invariant. Read more
impl<N: Real, D: DimName, R> AlgaSimilarity<Point<N, D>> for Similarity<N, D, R> where
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
[src]
R: Rotation<Point<N, D>>,
DefaultAllocator: Allocator<N, D>,
type Scaling = N
The type of the pure (uniform) scaling part of this similarity transformation.
fn translation(&self) -> Translation<N, D>
[src]
The pure translational component of this similarity transformation.
fn rotation(&self) -> R
[src]
The pure rotational component of this similarity transformation.
fn scaling(&self) -> N
[src]
The pure scaling component of this similarity transformation.
fn translate_point(&self, pt: &E) -> E
[src]
Applies this transformation's pure translational part to a point.
fn rotate_point(&self, pt: &E) -> E
[src]
Applies this transformation's pure rotational part to a point.
fn scale_point(&self, pt: &E) -> E
[src]
Applies this transformation's pure scaling part to a point.
fn rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation's pure rotational part to a vector.
fn scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation's pure scaling part to a vector.
fn inverse_translate_point(&self, pt: &E) -> E
[src]
Applies this transformation inverse's pure translational part to a point.
fn inverse_rotate_point(&self, pt: &E) -> E
[src]
Applies this transformation inverse's pure rotational part to a point.
fn inverse_scale_point(&self, pt: &E) -> E
[src]
Applies this transformation inverse's pure scaling part to a point.
fn inverse_rotate_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation inverse's pure rotational part to a vector.
fn inverse_scale_vector(
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
[src]
&self,
pt: &<E as EuclideanSpace>::Coordinates
) -> <E as EuclideanSpace>::Coordinates
Applies this transformation inverse's pure scaling part to a vector.
impl<N, D: DimNameAdd<U1>, C: TCategory> Mul<Point<N, D>> for Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,
DefaultAllocator: Allocator<N, D, D>,
[src]
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,
DefaultAllocator: Allocator<N, D, D>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, rhs: Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'a, N, D: DimNameAdd<U1>, C: TCategory> Mul<Point<N, D>> for &'a Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,
DefaultAllocator: Allocator<N, D, D>,
[src]
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,
DefaultAllocator: Allocator<N, D, D>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, rhs: Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'b, N, D: DimNameAdd<U1>, C: TCategory> Mul<&'b Point<N, D>> for Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,
DefaultAllocator: Allocator<N, D, D>,
[src]
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,
DefaultAllocator: Allocator<N, D, D>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<'a, 'b, N, D: DimNameAdd<U1>, C: TCategory> Mul<&'b Point<N, D>> for &'a Transform<N, D, C> where
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,
DefaultAllocator: Allocator<N, D, D>,
[src]
N: Scalar + Zero + One + ClosedAdd + ClosedMul + Real,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, D, U1> + Allocator<N, DimNameSum<D, U1>, U1>,
DefaultAllocator: Allocator<N, D, D>,
type Output = Point<N, D>
The resulting type after applying the *
operator.
fn mul(self, rhs: &'b Point<N, D>) -> Self::Output
[src]
Performs the *
operation.
impl<N, D: DimNameAdd<U1>, C> Transformation<Point<N, D>> for Transform<N, D, C> where
N: Real,
C: TCategory,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, D>,
[src]
N: Real,
C: TCategory,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, D>,
fn transform_point(&self, pt: &Point<N, D>) -> Point<N, D>
[src]
Applies this group's action on a point from the euclidean space.
fn transform_vector(&self, v: &VectorN<N, D>) -> VectorN<N, D>
[src]
Applies this group's action on a vector from the euclidean space. Read more
impl<N, D: DimNameAdd<U1>, C> ProjectiveTransformation<Point<N, D>> for Transform<N, D, C> where
N: Real,
C: SubTCategoryOf<TProjective>,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, D>,
[src]
N: Real,
C: SubTCategoryOf<TProjective>,
DefaultAllocator: Allocator<N, DimNameSum<D, U1>, DimNameSum<D, U1>> + Allocator<N, DimNameSum<D, U1>> + Allocator<N, D, D> + Allocator<N, D>,
fn inverse_transform_point(&self, pt: &Point<N, D>) -> Point<N, D>
[src]
Applies this group's inverse action on a point from the euclidean space.
fn inverse_transform_vector(&self, v: &VectorN<N, D>) -> VectorN<N, D>
[src]
Applies this group's inverse action on a vector from the euclidean space. Read more