Morph-SynRJ
view cmn_shape.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 CMN_SHAPE_H
2 #define CMN_SHAPE_H
5 #include "cmn_texture.h"
6 #include "mth_vector2.h"
7 #include "mth_vector3.h"
9 /*
10 * miniFMod
11 * include
12 * resource
13 */
14 #include "minifmod/minifmod.h"
15 extern FMUSIC_MODULE * intro_mod;
18 class cmnSquareShape_t
19 {
20 public:
21 typedef int* IntPtr_t;
23 struct IndexBuffers_t {
24 int** indexes;
25 int nbBuffers;
26 int sizeOfBuffer;
28 IndexBuffers_t(int _nbBuffers,int _sizeOfBuffers) {
29 sizeOfBuffer=_sizeOfBuffers;
30 nbBuffers=_nbBuffers;
32 indexes=new IntPtr_t[nbBuffers];
33 indexes[0]=new int[sizeOfBuffer*nbBuffers];
34 for (int i=1;i<nbBuffers;i++)
35 indexes[i]=&(indexes[0][sizeOfBuffer*i]);
36 }
37 };
40 protected:
42 mth::Vector3_t* vertexes;
43 mth::Vector3_t* normals;
44 mth::Vector2_t* uvs; // shared data don't manage it
45 IndexBuffers_t* indexes;
46 int nbVertexes;
47 int resx;
48 int resy;
50 public:
52 cmnSquareShape_t() {vertexes=normals=0;uvs=0;indexes=0;}
54 void SetUVs(mth::Vector2_t* _uvs) { uvs=_uvs;}
55 void SetIndexes(IndexBuffers_t* _indexes) { indexes=_indexes;}
57 void Init(int _resx,int _resy);
58 void Kill();
60 int ResX() const { return resx;}
61 int ResY() const { return resy;}
63 int NbVertexes() { return nbVertexes;}
64 void MakeMorphFrom(cmnSquareShape_t& _shape1,cmnSquareShape_t& _shape2,float _t);
65 mth::Vector3_t* Vertexes() { return vertexes;}
66 void FixForVArray();
68 mth::Vector2_t* GetNewUVsBuffer();
69 IndexBuffers_t* GetNewIndexBuffer();
71 void EnableArray();
72 void DisableArray();
74 IndexBuffers_t* Indexes() { return indexes;}
76 };
78 #endif
