parent
c80cf75bb4
commit
98b0b842e9
|
@ -19,7 +19,7 @@ use base::{DefaultAllocator, Scalar, VectorN};
|
||||||
|
|
||||||
/// A point in a n-dimensional euclidean space.
|
/// A point in a n-dimensional euclidean space.
|
||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Point<N: Scalar, D: DimName>
|
pub struct Point<N: Scalar, D: DimName>
|
||||||
where DefaultAllocator: Allocator<N, D>
|
where DefaultAllocator: Allocator<N, D>
|
||||||
{
|
{
|
||||||
|
@ -41,17 +41,7 @@ impl<N: Scalar, D: DimName> Copy for Point<N, D>
|
||||||
where
|
where
|
||||||
DefaultAllocator: Allocator<N, D>,
|
DefaultAllocator: Allocator<N, D>,
|
||||||
<DefaultAllocator as Allocator<N, D>>::Buffer: Copy,
|
<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,
|
|
||||||
{
|
{
|
||||||
#[inline]
|
|
||||||
fn clone(&self) -> Self {
|
|
||||||
Point::from(self.coords.clone())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "serde-serialize")]
|
#[cfg(feature = "serde-serialize")]
|
||||||
|
@ -104,13 +94,6 @@ where
|
||||||
impl<N: Scalar, D: DimName> Point<N, D>
|
impl<N: Scalar, D: DimName> Point<N, D>
|
||||||
where DefaultAllocator: Allocator<N, D>
|
where DefaultAllocator: Allocator<N, D>
|
||||||
{
|
{
|
||||||
/// Clones this point into one that owns its data.
|
|
||||||
#[inline]
|
|
||||||
#[deprecated(note = "This will be removed. Use the `.clone()` method from the `Clone` trait instead.")]
|
|
||||||
pub fn clone(&self) -> Point<N, D> {
|
|
||||||
Point::from(self.coords.clone_owned())
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Converts this point into a vector in homogeneous coordinates, i.e., appends a `1` at the
|
/// Converts this point into a vector in homogeneous coordinates, i.e., appends a `1` at the
|
||||||
/// end of it.
|
/// end of it.
|
||||||
///
|
///
|
||||||
|
|
|
@ -1,7 +1,13 @@
|
||||||
#![cfg(feature = "arbitrary")]
|
|
||||||
use na::{Point3, Vector3, Vector4};
|
use na::{Point3, Vector3, Vector4};
|
||||||
use num::Zero;
|
use num::Zero;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn point_clone() {
|
||||||
|
let p = Point3::new(1.0, 2.0, 3.0);
|
||||||
|
let p2 = p.clone();
|
||||||
|
assert_eq!(p, p2);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn point_ops() {
|
fn point_ops() {
|
||||||
let a = Point3::new(1.0, 2.0, 3.0);
|
let a = Point3::new(1.0, 2.0, 3.0);
|
||||||
|
@ -87,7 +93,10 @@ fn to_homogeneous() {
|
||||||
assert_eq!(a.to_homogeneous(), expected);
|
assert_eq!(a.to_homogeneous(), expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
quickcheck!(fn point_sub(pt1: Point3<f64>, pt2: Point3<f64>) -> bool {
|
#[cfg(feature = "arbitrary")]
|
||||||
|
quickcheck!(
|
||||||
|
fn point_sub(pt1: Point3<f64>, pt2: Point3<f64>) -> bool {
|
||||||
let dpt = &pt2 - &pt1;
|
let dpt = &pt2 - &pt1;
|
||||||
relative_eq!(pt2, pt1 + dpt, epsilon = 1.0e-7)
|
relative_eq!(pt2, pt1 + dpt, epsilon = 1.0e-7)
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
Loading…
Reference in New Issue