@@ -29,7 +29,7 @@ use angle::Rad;
2929use approx;
3030use euler:: Euler ;
3131use matrix:: { Matrix3 , Matrix4 } ;
32- use num:: BaseFloat ;
32+ use num:: { BaseFloat , BaseNum } ;
3333use point:: Point3 ;
3434use quaternion;
3535use rotation:: { Basis3 , Rotation , Rotation3 } ;
@@ -410,7 +410,7 @@ impl<S: BaseFloat> approx::UlpsEq for Quaternion<S> {
410410 }
411411}
412412
413- impl < S : BaseFloat > From < Quaternion < S > > for Matrix3 < S > {
413+ impl < S : BaseNum > From < Quaternion < S > > for Matrix3 < S > {
414414 /// Convert the quaternion to a 3 x 3 rotation matrix.
415415 fn from ( quat : Quaternion < S > ) -> Matrix3 < S > {
416416 let x2 = quat. v . x + quat. v . x ;
@@ -438,7 +438,7 @@ impl<S: BaseFloat> From<Quaternion<S>> for Matrix3<S> {
438438 }
439439}
440440
441- impl < S : BaseFloat > From < Quaternion < S > > for Matrix4 < S > {
441+ impl < S : BaseNum > From < Quaternion < S > > for Matrix4 < S > {
442442 /// Convert the quaternion to a 4 x 4 rotation matrix.
443443 fn from ( quat : Quaternion < S > ) -> Matrix4 < S > {
444444 let x2 = quat. v . x + quat. v . x ;
@@ -534,50 +534,50 @@ impl<S: BaseFloat> Rotation3 for Quaternion<S> {
534534 }
535535}
536536
537- impl < S : BaseFloat > From < Quaternion < S > > for [ S ; 4 ] {
537+ impl < S : BaseNum > From < Quaternion < S > > for [ S ; 4 ] {
538538 #[ inline]
539539 fn from ( v : Quaternion < S > ) -> Self {
540540 let ( xi, yj, zk, w) = v. into ( ) ;
541541 [ xi, yj, zk, w]
542542 }
543543}
544544
545- impl < S : BaseFloat > AsRef < [ S ; 4 ] > for Quaternion < S > {
545+ impl < S : BaseNum > AsRef < [ S ; 4 ] > for Quaternion < S > {
546546 #[ inline]
547547 fn as_ref ( & self ) -> & [ S ; 4 ] {
548548 unsafe { & * ( self as * const quaternion:: Quaternion < S > as * const [ S ; 4 ] ) }
549549 }
550550}
551551
552- impl < S : BaseFloat > AsMut < [ S ; 4 ] > for Quaternion < S > {
552+ impl < S : BaseNum > AsMut < [ S ; 4 ] > for Quaternion < S > {
553553 #[ inline]
554554 fn as_mut ( & mut self ) -> & mut [ S ; 4 ] {
555555 unsafe { & mut * ( self as * mut quaternion:: Quaternion < S > as * mut [ S ; 4 ] ) }
556556 }
557557}
558558
559- impl < S : BaseFloat > From < [ S ; 4 ] > for Quaternion < S > {
559+ impl < S : BaseNum > From < [ S ; 4 ] > for Quaternion < S > {
560560 #[ inline]
561561 fn from ( v : [ S ; 4 ] ) -> Quaternion < S > {
562562 Quaternion :: new ( v[ 3 ] , v[ 0 ] , v[ 1 ] , v[ 2 ] )
563563 }
564564}
565565
566- impl < ' a , S : BaseFloat > From < & ' a [ S ; 4 ] > for & ' a Quaternion < S > {
566+ impl < ' a , S : BaseNum > From < & ' a [ S ; 4 ] > for & ' a Quaternion < S > {
567567 #[ inline]
568568 fn from ( v : & ' a [ S ; 4 ] ) -> & ' a Quaternion < S > {
569569 unsafe { & * ( v as * const [ S ; 4 ] as * const quaternion:: Quaternion < S > ) }
570570 }
571571}
572572
573- impl < ' a , S : BaseFloat > From < & ' a mut [ S ; 4 ] > for & ' a mut Quaternion < S > {
573+ impl < ' a , S : BaseNum > From < & ' a mut [ S ; 4 ] > for & ' a mut Quaternion < S > {
574574 #[ inline]
575575 fn from ( v : & ' a mut [ S ; 4 ] ) -> & ' a mut Quaternion < S > {
576576 unsafe { & mut * ( v as * mut [ S ; 4 ] as * mut quaternion:: Quaternion < S > ) }
577577 }
578578}
579579
580- impl < S : BaseFloat > From < Quaternion < S > > for ( S , S , S , S ) {
580+ impl < S : BaseNum > From < Quaternion < S > > for ( S , S , S , S ) {
581581 #[ inline]
582582 fn from ( v : Quaternion < S > ) -> Self {
583583 let Quaternion {
@@ -588,36 +588,36 @@ impl<S: BaseFloat> From<Quaternion<S>> for (S, S, S, S) {
588588 }
589589}
590590
591- impl < S : BaseFloat > AsRef < ( S , S , S , S ) > for Quaternion < S > {
591+ impl < S : BaseNum > AsRef < ( S , S , S , S ) > for Quaternion < S > {
592592 #[ inline]
593593 fn as_ref ( & self ) -> & ( S , S , S , S ) {
594594 unsafe { & * ( self as * const quaternion:: Quaternion < S > as * const ( S , S , S , S ) ) }
595595 }
596596}
597597
598- impl < S : BaseFloat > AsMut < ( S , S , S , S ) > for Quaternion < S > {
598+ impl < S : BaseNum > AsMut < ( S , S , S , S ) > for Quaternion < S > {
599599 #[ inline]
600600 fn as_mut ( & mut self ) -> & mut ( S , S , S , S ) {
601601 unsafe { & mut * ( self as * mut quaternion:: Quaternion < S > as * mut ( S , S , S , S ) ) }
602602 }
603603}
604604
605- impl < S : BaseFloat > From < ( S , S , S , S ) > for Quaternion < S > {
605+ impl < S : BaseNum > From < ( S , S , S , S ) > for Quaternion < S > {
606606 #[ inline]
607607 fn from ( v : ( S , S , S , S ) ) -> Quaternion < S > {
608608 let ( xi, yj, zk, w) = v;
609609 Quaternion :: new ( w, xi, yj, zk)
610610 }
611611}
612612
613- impl < ' a , S : BaseFloat > From < & ' a ( S , S , S , S ) > for & ' a Quaternion < S > {
613+ impl < ' a , S : BaseNum > From < & ' a ( S , S , S , S ) > for & ' a Quaternion < S > {
614614 #[ inline]
615615 fn from ( v : & ' a ( S , S , S , S ) ) -> & ' a Quaternion < S > {
616616 unsafe { & * ( v as * const ( S , S , S , S ) as * const quaternion:: Quaternion < S > ) }
617617 }
618618}
619619
620- impl < ' a , S : BaseFloat > From < & ' a mut ( S , S , S , S ) > for & ' a mut Quaternion < S > {
620+ impl < ' a , S : BaseNum > From < & ' a mut ( S , S , S , S ) > for & ' a mut Quaternion < S > {
621621 #[ inline]
622622 fn from ( v : & ' a mut ( S , S , S , S ) ) -> & ' a mut Quaternion < S > {
623623 unsafe { & mut * ( v as * mut ( S , S , S , S ) as * mut quaternion:: Quaternion < S > ) }
@@ -626,7 +626,7 @@ impl<'a, S: BaseFloat> From<&'a mut (S, S, S, S)> for &'a mut Quaternion<S> {
626626
627627macro_rules! index_operators {
628628 ( $S: ident, $Output: ty, $I: ty) => {
629- impl <$S: BaseFloat > Index <$I> for Quaternion <$S> {
629+ impl <$S: BaseNum > Index <$I> for Quaternion <$S> {
630630 type Output = $Output;
631631
632632 #[ inline]
@@ -636,7 +636,7 @@ macro_rules! index_operators {
636636 }
637637 }
638638
639- impl <$S: BaseFloat > IndexMut <$I> for Quaternion <$S> {
639+ impl <$S: BaseNum > IndexMut <$I> for Quaternion <$S> {
640640 #[ inline]
641641 fn index_mut<' a>( & ' a mut self , i: $I) -> & ' a mut $Output {
642642 let v: & mut [ $S; 4 ] = self . as_mut( ) ;
@@ -657,7 +657,7 @@ impl<S> Distribution<Quaternion<S>> for Standard
657657where
658658 Standard : Distribution < S > ,
659659 Standard : Distribution < Vector3 < S > > ,
660- S : BaseFloat ,
660+ S : BaseNum ,
661661{
662662 #[ inline]
663663 fn sample < R : Rng + ?Sized > ( & self , rng : & mut R ) -> Quaternion < S > {
0 commit comments