From 385c3d7de838d11c8d48aafcc5a2b3e2651edd85 Mon Sep 17 00:00:00 2001 From: ozkriff Date: Mon, 17 Mar 2014 15:13:54 +0400 Subject: [PATCH] Udated to latest Rust: TotalOrd/min/max changes --- src/cgmath/aabb.rs | 16 +++++++++------- src/cgmath/vector.rs | 5 ++--- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/cgmath/aabb.rs b/src/cgmath/aabb.rs index 5aa6fdf..2a3f5d3 100644 --- a/src/cgmath/aabb.rs +++ b/src/cgmath/aabb.rs @@ -21,7 +21,9 @@ use array::build; use std::fmt; use std::num::{zero, one}; use std::iter::Iterator; -use std::cmp::{max, min}; + +fn _min(a: S, b: S) -> S { if a < b { a } else { b }} +fn _max(a: S, b: S) -> S { if a > b { a } else { b }} pub trait Aabb < @@ -49,8 +51,8 @@ pub trait Aabb // Returns a new AABB that is grown to include the given point. fn grow(&self, p: &P) -> Self { - let min : P = build(|i| min(self.min().i(i).clone(), p.i(i).clone())); - let max : P = build(|i| max(self.max().i(i).clone(), p.i(i).clone())); + let min : P = build(|i| _min(*self.min().i(i), *p.i(i))); + let max : P = build(|i| _max(*self.max().i(i), *p.i(i))); Aabb::new(min, max) } @@ -81,8 +83,8 @@ impl Aabb2 { #[inline] pub fn new(p1: Point2, p2: Point2) -> Aabb2 { Aabb2 { - min: Point2::new(min(p1.x.clone(), p2.x.clone()), min(p1.y.clone(), p2.y.clone())), - max: Point2::new(max(p1.x.clone(), p2.x.clone()), max(p1.y.clone(), p2.y.clone())), + min: Point2::new(_min(p1.x.clone(), p2.x.clone()), _min(p1.y.clone(), p2.y.clone())), + max: Point2::new(_max(p1.x.clone(), p2.x.clone()), _max(p1.y.clone(), p2.y.clone())), } } } @@ -110,8 +112,8 @@ impl Aabb3 { #[inline] pub fn new(p1: Point3, p2: Point3) -> Aabb3 { Aabb3 { - min: Point3::new(min(p1.x.clone(), p2.x.clone()), min(p1.y.clone(), p2.y.clone()), min(p1.z.clone(), p2.z.clone())), - max: Point3::new(max(p1.x.clone(), p2.x.clone()), max(p1.y.clone(), p2.y.clone()), max(p1.z.clone(), p2.z.clone())), + min: Point3::new(_min(p1.x.clone(), p2.x.clone()), _min(p1.y.clone(), p2.y.clone()), _min(p1.z.clone(), p2.z.clone())), + max: Point3::new(_max(p1.x.clone(), p2.x.clone()), _max(p1.y.clone(), p2.y.clone()), _max(p1.z.clone(), p2.z.clone())), } } } diff --git a/src/cgmath/vector.rs b/src/cgmath/vector.rs index d5d4f76..9b82f09 100644 --- a/src/cgmath/vector.rs +++ b/src/cgmath/vector.rs @@ -15,7 +15,6 @@ use std::fmt; use std::num::{Zero, zero, One, one, sqrt}; -use std::cmp::{max, min}; use angle::{Rad, atan2, acos}; use approx::ApproxEq; @@ -69,10 +68,10 @@ pub trait Vector #[inline] fn dot(&self, other: &Self) -> S { self.mul_v(other).comp_add() } /// The minimum component of the vector. - #[inline] fn comp_min(&self) -> S { self.fold(|a, b| min(a.clone(), b.clone())) } + #[inline] fn comp_min(&self) -> S { self.fold(|a, b| if *a < *b { *a } else {*b }) } /// The maximum component of the vector. - #[inline] fn comp_max(&self) -> S { self.fold(|a, b| max(a.clone(), b.clone())) } + #[inline] fn comp_max(&self) -> S { self.fold(|a, b| if *a > *b { *a } else {*b }) } } #[inline] pub fn dot>(a: V, b: V) -> S { a.dot(&b) }