AAngle.h

00001 /****************************************************************************
00002  * Copyright 2005 Evan Drumwright
00003  * This library is distributed under the terms of the GNU General Public 
00004  * License (found in COPYING).
00005  ****************************************************************************/
00006 
00007 #ifndef _AXIS_ANGLE_H
00008 #define _AXIS_ANGLE_H
00009 
00010 #include <string>
00011 #include <boost/shared_array.hpp>
00012 #include <Physsim/Base.h>
00013 
00014 namespace Physsim {
00015 
00016 class Quat;
00017 class Matrix3;
00018 class Matrix4;
00019 class Vector3;
00020 class Vector4;
00021 
00023 class AAngle : public Base
00024 {
00025         public:
00026                 AAngle();
00027                 AAngle(const AAngle& source);
00028                 AAngle(boost::shared_array<const Real> array);
00029                 AAngle(const Quat* q);
00030                 AAngle(Real x, Real y, Real z, Real angle);
00031                 AAngle(const Vector3*  v, Real angle);
00032                 AAngle(const VectorN* v);
00033                 AAngle(const Matrix3* m);
00034                 AAngle(const Matrix3* m, const Vector3* axis);
00035                 AAngle(const Matrix4* m);
00036                 bool epsilon_equals(const AAngle& a, Real epsilon) const;
00037                 static bool epsilon_equals(const AAngle& a1, const AAngle& a2, Real epsilon);
00038                 void set(boost::shared_array<const Real>  array);
00039                 void set(Real x, Real y, Real z, Real angle);
00040                 void set(const VectorN* v);
00041                 void set(const Vector3* v, Real angle);
00042                 void set(const Matrix3* m);
00043                 void set(const Matrix3* m, const Vector3* axis);
00044                 void set(const Matrix4* m);
00045                 void set(const Quat* q);
00046                 void operator=(const AAngle& source);
00047                 AAngle operator*(const AAngle& a) const;
00048                 void operator*=(const AAngle& a);
00049 
00050                 Real _angle;
00051                 Real _x;
00052                 Real _y;
00053                 Real _z;
00054 };
00055 
00056 std::ostream& operator<<(std::ostream& out, const AAngle& a);
00057 
00058 }
00059 
00060 #endif
00061 

Generated on Wed Oct 24 14:54:21 2007 for Physsim by  doxygen 1.5.1