rotate3d.h

Go to the documentation of this file.
00001 #ifndef rotation3d_h
00002 #define rotation3d_h
00003 
00004 /*  3-D rotation matrix */
00005 
00006 class Rotation3d : public Resource {
00007 public:
00008    Rotation3d();
00009    virtual ~Rotation3d();
00010    
00011    void rotate(float x, float y, float z, float* tr)const;
00012    void rotate(float* r, float* tr) const;
00013    void inverse_rotate(float* tr, float* r) const;
00014 
00015    void identity();
00016    
00017    // relative transformation of the transformation
00018    void rotate_x(float radians);
00019    void rotate_y(float radians);
00020    void rotate_z(float radians);
00021    void origin(float x, float y, float z);
00022    void offset(float x, float y);
00023    void post_multiply(Rotation3d&);
00024    void x_axis(float& x, float& y) const;
00025    void y_axis(float& x, float& y) const;
00026    void z_axis(float& x, float& y) const;
00027 private:
00028    float a_[3][3];
00029    float o_[2][3];
00030 };
00031 #endif
Generated on Mon Jun 13 08:10:26 2011 for NEURON by  doxygen 1.6.3