Indentation fixes.
This commit is contained in:
parent
53a5dbb6e3
commit
a810bf6008
|
@ -168,9 +168,7 @@ Translatable<V, Transform<M, V>> for Transform<M, V>
|
||||||
{ Transform::new(self.submat.clone(), self.subtrans.translated(t)) }
|
{ Transform::new(self.submat.clone(), self.subtrans.translated(t)) }
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<M: Rotation<AV> + RMul<V> + One,
|
impl<M: Rotation<AV> + RMul<V> + One, V, AV>
|
||||||
V,
|
|
||||||
AV>
|
|
||||||
Rotation<AV> for Transform<M, V>
|
Rotation<AV> for Transform<M, V>
|
||||||
{
|
{
|
||||||
#[inline]
|
#[inline]
|
||||||
|
@ -204,10 +202,7 @@ impl<M: Rotate<V>, V, _0> Rotate<V> for Transform<M, _0>
|
||||||
{ self.submat.inv_rotate(v) }
|
{ self.submat.inv_rotate(v) }
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<M: Rotatable<AV, Res> + One,
|
impl<M: Rotatable<AV, Res> + One, Res: Rotation<AV> + RMul<V> + One, V, AV>
|
||||||
Res: Rotation<AV> + RMul<V> + One,
|
|
||||||
V,
|
|
||||||
AV>
|
|
||||||
Rotatable<AV, Transform<Res, V>> for Transform<M, V>
|
Rotatable<AV, Transform<Res, V>> for Transform<M, V>
|
||||||
{
|
{
|
||||||
#[inline]
|
#[inline]
|
||||||
|
|
22
src/dvec.rs
22
src/dvec.rs
|
@ -61,8 +61,8 @@ impl<N, Iter: Iterator<N>> FromIterator<N, Iter> for DVec<N>
|
||||||
impl<N: Clone + DivisionRing + Algebraic + ApproxEq<N>> DVec<N>
|
impl<N: Clone + DivisionRing + Algebraic + ApproxEq<N>> DVec<N>
|
||||||
{
|
{
|
||||||
/// Computes the canonical basis for the given dimension. A canonical basis is a set of
|
/// Computes the canonical basis for the given dimension. A canonical basis is a set of
|
||||||
/// vectors, mutually orthogonal, with all its component equal to 0.0 exept one which is equal to
|
/// vectors, mutually orthogonal, with all its component equal to 0.0 exept one which is equal
|
||||||
/// 1.0.
|
/// to 1.0.
|
||||||
pub fn canonical_basis_with_dim(dim: uint) -> ~[DVec<N>]
|
pub fn canonical_basis_with_dim(dim: uint) -> ~[DVec<N>]
|
||||||
{
|
{
|
||||||
let mut res : ~[DVec<N>] = ~[];
|
let mut res : ~[DVec<N>] = ~[];
|
||||||
|
@ -145,8 +145,7 @@ impl<N: Neg<N>> Neg<DVec<N>> for DVec<N>
|
||||||
{ DVec { at: self.at.iter().transform(|a| -a).collect() } }
|
{ DVec { at: self.at.iter().transform(|a| -a).collect() } }
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<N: Ring>
|
impl<N: Ring> Dot<N> for DVec<N>
|
||||||
Dot<N> for DVec<N>
|
|
||||||
{
|
{
|
||||||
#[inline]
|
#[inline]
|
||||||
fn dot(&self, other: &DVec<N>) -> N
|
fn dot(&self, other: &DVec<N>) -> N
|
||||||
|
@ -176,8 +175,7 @@ impl<N: Ring> SubDot<N> for DVec<N>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<N: Mul<N, N>>
|
impl<N: Mul<N, N>> ScalarMul<N> for DVec<N>
|
||||||
ScalarMul<N> for DVec<N>
|
|
||||||
{
|
{
|
||||||
#[inline]
|
#[inline]
|
||||||
fn scalar_mul(&self, s: &N) -> DVec<N>
|
fn scalar_mul(&self, s: &N) -> DVec<N>
|
||||||
|
@ -192,8 +190,7 @@ ScalarMul<N> for DVec<N>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
impl<N: Div<N, N>>
|
impl<N: Div<N, N>> ScalarDiv<N> for DVec<N>
|
||||||
ScalarDiv<N> for DVec<N>
|
|
||||||
{
|
{
|
||||||
#[inline]
|
#[inline]
|
||||||
fn scalar_div(&self, s: &N) -> DVec<N>
|
fn scalar_div(&self, s: &N) -> DVec<N>
|
||||||
|
@ -207,8 +204,7 @@ ScalarDiv<N> for DVec<N>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<N: Add<N, N>>
|
impl<N: Add<N, N>> ScalarAdd<N> for DVec<N>
|
||||||
ScalarAdd<N> for DVec<N>
|
|
||||||
{
|
{
|
||||||
#[inline]
|
#[inline]
|
||||||
fn scalar_add(&self, s: &N) -> DVec<N>
|
fn scalar_add(&self, s: &N) -> DVec<N>
|
||||||
|
@ -222,8 +218,7 @@ ScalarAdd<N> for DVec<N>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<N: Sub<N, N>>
|
impl<N: Sub<N, N>> ScalarSub<N> for DVec<N>
|
||||||
ScalarSub<N> for DVec<N>
|
|
||||||
{
|
{
|
||||||
#[inline]
|
#[inline]
|
||||||
fn scalar_sub(&self, s: &N) -> DVec<N>
|
fn scalar_sub(&self, s: &N) -> DVec<N>
|
||||||
|
@ -259,8 +254,7 @@ impl<N: Add<N, N> + Neg<N> + Clone> Translatable<DVec<N>, DVec<N>> for DVec<N>
|
||||||
{ self + *t }
|
{ self + *t }
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<N: DivisionRing + Algebraic + Clone>
|
impl<N: DivisionRing + Algebraic + Clone> Norm<N> for DVec<N>
|
||||||
Norm<N> for DVec<N>
|
|
||||||
{
|
{
|
||||||
#[inline]
|
#[inline]
|
||||||
fn sqnorm(&self) -> N
|
fn sqnorm(&self) -> N
|
||||||
|
|
|
@ -131,8 +131,7 @@ macro_rules! column_impl(
|
||||||
|
|
||||||
macro_rules! mul_impl(
|
macro_rules! mul_impl(
|
||||||
($t: ident, $dim: expr) => (
|
($t: ident, $dim: expr) => (
|
||||||
impl<N: Clone + Ring>
|
impl<N: Clone + Ring> Mul<$t<N>, $t<N>> for $t<N>
|
||||||
Mul<$t<N>, $t<N>> for $t<N>
|
|
||||||
{
|
{
|
||||||
fn mul(&self, other: &$t<N>) -> $t<N>
|
fn mul(&self, other: &$t<N>) -> $t<N>
|
||||||
{
|
{
|
||||||
|
@ -159,8 +158,7 @@ macro_rules! mul_impl(
|
||||||
|
|
||||||
macro_rules! rmul_impl(
|
macro_rules! rmul_impl(
|
||||||
($t: ident, $v: ident, $dim: expr) => (
|
($t: ident, $v: ident, $dim: expr) => (
|
||||||
impl<N: Clone + Ring>
|
impl<N: Clone + Ring> RMul<$v<N>> for $t<N>
|
||||||
RMul<$v<N>> for $t<N>
|
|
||||||
{
|
{
|
||||||
fn rmul(&self, other: &$v<N>) -> $v<N>
|
fn rmul(&self, other: &$v<N>) -> $v<N>
|
||||||
{
|
{
|
||||||
|
@ -183,12 +181,10 @@ macro_rules! rmul_impl(
|
||||||
|
|
||||||
macro_rules! lmul_impl(
|
macro_rules! lmul_impl(
|
||||||
($t: ident, $v: ident, $dim: expr) => (
|
($t: ident, $v: ident, $dim: expr) => (
|
||||||
impl<N: Clone + Ring>
|
impl<N: Clone + Ring> LMul<$v<N>> for $t<N>
|
||||||
LMul<$v<N>> for $t<N>
|
|
||||||
{
|
{
|
||||||
fn lmul(&self, other: &$v<N>) -> $v<N>
|
fn lmul(&self, other: &$v<N>) -> $v<N>
|
||||||
{
|
{
|
||||||
|
|
||||||
let mut res : $v<N> = Zero::zero();
|
let mut res : $v<N> = Zero::zero();
|
||||||
|
|
||||||
for i in range(0u, $dim)
|
for i in range(0u, $dim)
|
||||||
|
|
|
@ -5,62 +5,3 @@ pub trait Dim {
|
||||||
/// The dimension of the object.
|
/// The dimension of the object.
|
||||||
fn dim() -> uint;
|
fn dim() -> uint;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Some dimension token. Useful to restrict the dimension of n-dimensional
|
|
||||||
// object at the type-level.
|
|
||||||
|
|
||||||
/// Dimensional token for 0-dimensions. Dimensional tokens are the preferred
|
|
||||||
/// way to specify at the type level the dimension of n-dimensional objects.
|
|
||||||
#[deriving(Eq, Ord, ToStr)]
|
|
||||||
pub struct D0;
|
|
||||||
|
|
||||||
/// Dimensional token for 1-dimension. Dimensional tokens are the preferred
|
|
||||||
/// way to specify at the type level the dimension of n-dimensional objects.
|
|
||||||
#[deriving(Eq, Ord, ToStr)]
|
|
||||||
pub struct D1;
|
|
||||||
|
|
||||||
/// Dimensional token for 2-dimensions. Dimensional tokens are the preferred
|
|
||||||
/// way to specify at the type level the dimension of n-dimensional objects.
|
|
||||||
#[deriving(Eq, Ord, ToStr)]
|
|
||||||
pub struct D2;
|
|
||||||
|
|
||||||
/// Dimensional token for 3-dimensions. Dimensional tokens are the preferred
|
|
||||||
/// way to specify at the type level the dimension of n-dimensional objects.
|
|
||||||
#[deriving(Eq, Ord, ToStr)]
|
|
||||||
pub struct D3;
|
|
||||||
|
|
||||||
/// Dimensional token for 4-dimensions. Dimensional tokens are the preferred
|
|
||||||
/// way to specify at the type level the dimension of n-dimensional objects.
|
|
||||||
#[deriving(Eq, Ord, ToStr)]
|
|
||||||
pub struct D4;
|
|
||||||
|
|
||||||
/// Dimensional token for 5-dimensions. Dimensional tokens are the preferred
|
|
||||||
/// way to specify at the type level the dimension of n-dimensional objects.
|
|
||||||
#[deriving(Eq, Ord, ToStr)]
|
|
||||||
pub struct D5;
|
|
||||||
|
|
||||||
/// Dimensional token for 6-dimensions. Dimensional tokens are the preferred
|
|
||||||
/// way to specify at the type level the dimension of n-dimensional objects.
|
|
||||||
#[deriving(Eq, Ord, ToStr)]
|
|
||||||
pub struct D6;
|
|
||||||
|
|
||||||
impl Dim for D0
|
|
||||||
{ fn dim() -> uint { 0 } }
|
|
||||||
|
|
||||||
impl Dim for D1
|
|
||||||
{ fn dim() -> uint { 1 } }
|
|
||||||
|
|
||||||
impl Dim for D2
|
|
||||||
{ fn dim() -> uint { 2 } }
|
|
||||||
|
|
||||||
impl Dim for D3
|
|
||||||
{ fn dim() -> uint { 3 } }
|
|
||||||
|
|
||||||
impl Dim for D4
|
|
||||||
{ fn dim() -> uint { 4 } }
|
|
||||||
|
|
||||||
impl Dim for D5
|
|
||||||
{ fn dim() -> uint { 5 } }
|
|
||||||
|
|
||||||
impl Dim for D6
|
|
||||||
{ fn dim() -> uint { 6 } }
|
|
||||||
|
|
|
@ -46,8 +46,11 @@ pub trait Rotate<V>
|
||||||
pub fn rotated_wrt_point<M: Translatable<LV, M2>,
|
pub fn rotated_wrt_point<M: Translatable<LV, M2>,
|
||||||
M2: Rotation<AV> + Translation<LV>,
|
M2: Rotation<AV> + Translation<LV>,
|
||||||
LV: Neg<LV>,
|
LV: Neg<LV>,
|
||||||
AV>
|
AV>(
|
||||||
(m: &M, ammount: &AV, center: &LV) -> M2
|
m: &M,
|
||||||
|
ammount: &AV,
|
||||||
|
center: &LV)
|
||||||
|
-> M2
|
||||||
{
|
{
|
||||||
let mut res = m.translated(&-center);
|
let mut res = m.translated(&-center);
|
||||||
|
|
||||||
|
@ -66,8 +69,10 @@ pub fn rotated_wrt_point<M: Translatable<LV, M2>,
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn rotate_wrt_point<M: Rotation<AV> + Translation<LV>,
|
pub fn rotate_wrt_point<M: Rotation<AV> + Translation<LV>,
|
||||||
LV: Neg<LV>,
|
LV: Neg<LV>,
|
||||||
AV>
|
AV>(
|
||||||
(m: &mut M, ammount: &AV, center: &LV)
|
m: &mut M,
|
||||||
|
ammount: &AV,
|
||||||
|
center: &LV)
|
||||||
{
|
{
|
||||||
m.translate_by(&-center);
|
m.translate_by(&-center);
|
||||||
m.rotate_by(ammount);
|
m.rotate_by(ammount);
|
||||||
|
@ -85,8 +90,10 @@ pub fn rotate_wrt_point<M: Rotation<AV> + Translation<LV>,
|
||||||
pub fn rotated_wrt_center<M: Translatable<LV, M2> + Translation<LV>,
|
pub fn rotated_wrt_center<M: Translatable<LV, M2> + Translation<LV>,
|
||||||
M2: Rotation<AV> + Translation<LV>,
|
M2: Rotation<AV> + Translation<LV>,
|
||||||
LV: Neg<LV>,
|
LV: Neg<LV>,
|
||||||
AV>
|
AV>(
|
||||||
(m: &M, ammount: &AV) -> M2
|
m: &M,
|
||||||
|
ammount: &AV)
|
||||||
|
-> M2
|
||||||
{ rotated_wrt_point(m, ammount, &m.translation()) }
|
{ rotated_wrt_point(m, ammount, &m.translation()) }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -99,8 +106,9 @@ pub fn rotated_wrt_center<M: Translatable<LV, M2> + Translation<LV>,
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn rotate_wrt_center<M: Translatable<LV, M> + Translation<LV> + Rotation<AV>,
|
pub fn rotate_wrt_center<M: Translatable<LV, M> + Translation<LV> + Rotation<AV>,
|
||||||
LV: Neg<LV>,
|
LV: Neg<LV>,
|
||||||
AV>
|
AV>(
|
||||||
(m: &mut M, ammount: &AV)
|
m: &mut M,
|
||||||
|
ammount: &AV)
|
||||||
{
|
{
|
||||||
let t = m.translation();
|
let t = m.translation();
|
||||||
|
|
||||||
|
|
|
@ -111,7 +111,6 @@ from_homogeneous_impl!(Vec2, Vec3, z, x, y)
|
||||||
/// Vector of dimension 3.
|
/// Vector of dimension 3.
|
||||||
#[deriving(Eq, Encodable, Decodable, Clone, DeepClone, IterBytes, Rand, Zero, ToStr)]
|
#[deriving(Eq, Encodable, Decodable, Clone, DeepClone, IterBytes, Rand, Zero, ToStr)]
|
||||||
pub struct Vec3<N>
|
pub struct Vec3<N>
|
||||||
|
|
||||||
{
|
{
|
||||||
/// First component of the vector.
|
/// First component of the vector.
|
||||||
x: N,
|
x: N,
|
||||||
|
|
|
@ -18,7 +18,8 @@ impl<N: Mul<N, N> + Sub<N, N>> Cross<Vec3<N>> for Vec3<N>
|
||||||
#[inline]
|
#[inline]
|
||||||
fn cross(&self, other : &Vec3<N>) -> Vec3<N>
|
fn cross(&self, other : &Vec3<N>) -> Vec3<N>
|
||||||
{
|
{
|
||||||
Vec3::new(self.y * other.z - self.z * other.y,
|
Vec3::new(
|
||||||
|
self.y * other.z - self.z * other.y,
|
||||||
self.z * other.x - self.x * other.z,
|
self.z * other.x - self.x * other.z,
|
||||||
self.x * other.y - self.y * other.x
|
self.x * other.y - self.y * other.x
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue