00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef NOISE_MODULE_ROTATEPOINT_H
00024 #define NOISE_MODULE_ROTATEPOINT_H
00025
00026 #include "modulebase.h"
00027
00028 namespace CS {
00029 namespace Math {
00030 namespace Noise {
00031 namespace Module {
00032
00035
00038
00041
00044 const double DEFAULT_ROTATE_X = 0.0;
00045
00048 const double DEFAULT_ROTATE_Y = 0.0;
00049
00052 const double DEFAULT_ROTATE_Z = 0.0;
00053
00071 class CS_CRYSTALSPACE_EXPORT RotatePoint: public Module
00072 {
00073
00074 public:
00075
00086 RotatePoint ();
00087
00088 virtual int GetSourceModuleCount () const
00089 {
00090 return 1;
00091 }
00092
00093 virtual double GetValue (double x, double y, double z) const;
00094
00099 double GetXAngle () const
00100 {
00101 return m_xAngle;
00102 }
00103
00108 double GetYAngle () const
00109 {
00110 return m_yAngle;
00111 }
00112
00117 double GetZAngle () const
00118 {
00119 return m_zAngle;
00120 }
00121
00132 void SetAngles (double xAngle, double yAngle, double zAngle);
00133
00142 void SetXAngle (double xAngle)
00143 {
00144 SetAngles (xAngle, m_yAngle, m_zAngle);
00145 }
00146
00155 void SetYAngle (double yAngle)
00156 {
00157 SetAngles (m_xAngle, yAngle, m_zAngle);
00158 }
00159
00168 void SetZAngle (double zAngle)
00169 {
00170 SetAngles (m_xAngle, m_yAngle, zAngle);
00171 }
00172
00173 protected:
00174
00177 double m_x1Matrix;
00178
00181 double m_x2Matrix;
00182
00185 double m_x3Matrix;
00186
00188 double m_xAngle;
00189
00192 double m_y1Matrix;
00193
00196 double m_y2Matrix;
00197
00200 double m_y3Matrix;
00201
00203 double m_yAngle;
00204
00207 double m_z1Matrix;
00208
00211 double m_z2Matrix;
00212
00215 double m_z3Matrix;
00216
00218 double m_zAngle;
00219
00220 };
00221
00223
00225
00227
00228 }
00229 }
00230 }
00231 }
00232
00233 #endif