1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
/*
** Haaf's Game Engine 1.7
** Copyright (C) 2003-2007, Relish Games
** hge.relishgames.com
**
** hgeDistortionMesh helper class header
*/
#ifndef HGEDISTORT_H
#define HGEDISTORT_H
#include "hge.h"
#define HGEDISP_NODE 0
#define HGEDISP_TOPLEFT 1
#define HGEDISP_CENTER 2
/*
** HGE Distortion mesh class
*/
class hgeDistortionMesh
{
public:
hgeDistortionMesh(int cols, int rows);
hgeDistortionMesh(const hgeDistortionMesh &dm);
~hgeDistortionMesh();
hgeDistortionMesh& operator= (const hgeDistortionMesh &dm);
void Render(float x, float y);
void Clear(DWORD col=0xFFFFFFFF, float z=0.5f);
void SetTexture(HTEXTURE tex);
void SetTextureRect(float x, float y, float w, float h);
void SetBlendMode(int blend);
void SetZ(int col, int row, float z);
void SetColor(int col, int row, DWORD color);
void SetDisplacement(int col, int row, float dx, float dy, int ref);
HTEXTURE GetTexture() const {return quad.tex;}
void GetTextureRect(float *x, float *y, float *w, float *h) const { *x=tx; *y=ty; *w=width; *h=height; }
int GetBlendMode() const { return quad.blend; }
float GetZ(int col, int row) const;
DWORD GetColor(int col, int row) const;
void GetDisplacement(int col, int row, float *dx, float *dy, int ref) const;
int GetRows() { return nRows; }
int GetCols() { return nCols; }
private:
hgeDistortionMesh();
static HGE *hge;
hgeVertex *disp_array;
int nRows, nCols;
float cellw,cellh;
float tx,ty,width,height;
hgeQuad quad;
};
#endif
|