OPTPiX SpriteStudio SDK
 All Classes Namespaces Functions Variables Enumerations Enumerator Pages
ssplayer_matrix.h
1 #ifndef __SSPLAYER_MATRIX__
2 #define __SSPLAYER_MATRIX__
3 
4 
5 #include <memory>
6 
7 void IdentityMatrix( float* matrix );
8 void ScaleMatrix( float* _matrix , const float x , const float y , const float z);
9 void TranslationMatrix( float* _matrix , const float x , const float y , const float z );
10 void MultiplyMatrix(const float *m0, const float *m1, float *matrix);
11 void Matrix4RotationX( float* _matrix ,const float radians );
12 void Matrix4RotationY( float* _matrix ,const float radians );
13 void Matrix4RotationZ( float* _matrix ,const float radians );
14 
15 inline void TranslationMatrixM( float* _matrix , const float x , const float y , const float z )
16 {
17  float _m[16];
18  IdentityMatrix( _m );
19  TranslationMatrix( _m , x , y , z );
20 
21  MultiplyMatrix( _m , _matrix , _matrix );
22 }
23 
24 inline void ScaleMatrixM( float* _matrix , const float x , const float y , const float z )
25 {
26 
27  float _m[16];
28  IdentityMatrix( _m );
29  ScaleMatrix( _m , x , y , z );
30  MultiplyMatrix( _m , _matrix , _matrix );
31 }
32 
33 inline void RotationXYZMatrixM( float* _matrix , const float x , const float y , const float z )
34 {
35 
36  if ( x != 0.0f )
37  {
38  float _m[16];
39  IdentityMatrix( _m );
40  Matrix4RotationX( _m , x );
41 
42  MultiplyMatrix( _m , _matrix , _matrix );
43  }
44 
45  if ( y != 0.0f )
46  {
47  float _m[16];
48  IdentityMatrix( _m );
49  Matrix4RotationY( _m , x );
50 
51  MultiplyMatrix( _m , _matrix , _matrix );
52  }
53 
54  if ( z != 0.0f )
55  {
56  float _m[16];
57  IdentityMatrix( _m );
58  Matrix4RotationZ( _m , z );
59 
60  MultiplyMatrix( _m , _matrix , _matrix );
61  }
62 }
63 
64 
65 
66 #endif
67