Morph-SynRJ
view efx_equa2.h @ 0:22de913c2d84
morph-synrj intro
| author | "Cedric Pinson <cedric.pinson@alcove.fr> <mornifle@plopbyte.net>" |
|---|---|
| date | Tue Nov 27 15:23:52 2007 +0100 (2007-11-27) |
| parents | |
| children |
line source
1 #ifndef EFX_EQUA2_H
2 #define EFX_EQUA2_H
4 #include "mth_vector3.h"
5 #include "gl_header.h"
7 #define EQUA_DEPTH 30
8 #define EQUA_SIZE_X 5
9 #define EQUA_SIZE_Y 5
10 #define EQUA_DEPTH_OFFSET 15 // define the size of the top of equa
11 #define EQUA_SIZE_SPACE 4.0
15 struct efxEquaElement_t
16 {
17 float level;
18 GLuint meshId;
20 public:
22 efxEquaElement_t() { level=0;meshId=0;}
24 void SetLevel(float _a) { level=_a;}
25 void SetMesh(GLuint _id) {meshId=_id;}
27 };
33 class efxEquaBase_t
34 {
35 int resolutionX;
36 int resolutionY;
38 efxEquaElement_t* elements;
40 // it can be positioned -> for shared usage
41 float position[3];
43 float sizeElementX;
44 float sizeElementY;
46 public:
48 efxEquaBase_t() {elements=0;sizeElementX=sizeElementY=1.0; position[0]=position[1]=position[2]=0;}
50 int NbElements() { return resolutionX*resolutionY;}
51 int ResX() { return resolutionX;}
52 int ResY() { return resolutionY;}
55 void SetPosition(float _x,float _y,float _z) { position[0]=_x;position[1]=_y;position[2]=_z;}
57 void SetDepthLevel(int _i,float _level) {elements[_i].SetLevel(_level);}
59 efxEquaElement_t& GetElement(int _i) { return elements[_i];}
61 // init the classe with the number of elements to use
62 void Init(int _resolutionX,int _resolutionY) {
63 resolutionX=_resolutionX;
64 resolutionY=_resolutionY;
65 if (elements)
66 delete [] elements;
67 elements=new efxEquaElement_t[resolutionY*resolutionX];
68 }
70 void SetGeometry(GLuint _id);
73 void SetElementSize(float _x,float _y) {sizeElementX=_x;sizeElementY=_y;}
75 void Draw();
78 };
81 #endif
