SFMatrix34f.h

Go to the documentation of this file.
00001 #ifndef X3DTK_SFMATRIX34F_H
00002 #define X3DTK_SFMATRIX34F_H
00003 
00004 #include "SFVec3f.h"
00005 #include "SFPoint3f.h"
00006 
00007 #include <iostream>
00008 #include <vector>
00009 
00010 namespace X3DTK {
00011 
00012 class SFRotation;
00013 
00024 class SFMatrix34f
00025 {
00026 public:
00028   float _11;
00030   float _21;
00032   float _31;
00033 
00035   float _12;
00037   float _22;
00039   float _32;
00040 
00042   float _13;
00044   float _23;
00046   float _33;
00047 
00049   float _14;
00051   float _24;
00053   float _34;
00054 
00056   SFMatrix34f();
00058   SFMatrix34f(float _11, float _21, float _31, float _12, float _22, float _32, float _13, float _23, float _33, float _14, float _24, float _34);
00060   explicit SFMatrix34f(const float GLMatrix[16]);
00062   SFMatrix34f(const SFVec3f &vx, const SFVec3f &vy, const SFVec3f &vz, const SFPoint3f &p);
00064   SFMatrix34f(const SFVec3f &translation, const SFVec3f &center, const SFRotation &rotation, const SFRotation &scaleOrientation, const SFVec3f &scale);
00066   SFMatrix34f(const SFMatrix34f &m);
00067 
00069   friend SFMatrix34f operator+ (const SFMatrix34f &m1, const SFMatrix34f &m2);
00071   friend SFMatrix34f operator- (const SFMatrix34f &m1, const SFMatrix34f &m2);
00073   friend SFMatrix34f operator* (const SFMatrix34f &m1, const SFMatrix34f &m2);
00075   friend SFMatrix34f operator* (const float a, const SFMatrix34f &m);
00077   friend SFVec3f operator* (const SFMatrix34f &m, const SFVec3f &v);
00079   friend SFPoint3f operator* (const SFMatrix34f &m, const SFPoint3f &v);
00081   friend bool operator== (const SFMatrix34f &A, const SFMatrix34f &B);
00083   friend bool operator!= (const SFMatrix34f &A, const SFMatrix34f &B);
00085   SFMatrix34f i();
00088   SFMatrix34f iu();
00090   float *toFloat16() const;
00091   
00093   static const SFMatrix34f null;
00095   static const SFMatrix34f identity;
00096 
00098   static SFMatrix34f scale34(float sx, float sy, float sz);
00100   static SFMatrix34f rotationX(float angle);
00102   static SFMatrix34f rotationY(float angle);
00104   static SFMatrix34f rotationZ(float angle);
00106   static SFMatrix34f translation(const SFVec3f &t);
00108   static SFMatrix34f rotation(float angle, const SFVec3f &u); 
00109 };
00110 
00111 
00112 }
00113 
00114 #endif
00115 

Generated on Fri Aug 27 13:16:22 2004 for X3DToolKit by doxygen 1.3.6