71 lines
1.6 KiB
C++
71 lines
1.6 KiB
C++
/*
|
|
** 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"
|
|
#include "../JTypes.h"
|
|
|
|
|
|
#define HGEDISP_NODE 0
|
|
#define HGEDISP_TOPLEFT 1
|
|
#define HGEDISP_CENTER 2
|
|
|
|
class JTexture;
|
|
class JQuad;
|
|
|
|
/*
|
|
** 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(PIXEL_TYPE col=ARGB(0xFF,0xFF,0xFF,0xFF), float z=0.5f);
|
|
|
|
void SetTexture(JTexture* 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, PIXEL_TYPE color);
|
|
void SetDisplacement(int col, int row, float dx, float dy, int ref);
|
|
|
|
JTexture* GetTexture() const {return quad->mTex;}
|
|
void GetTextureRect(float *x, float *y, float *w, float *h) const { *x=tx; *y=ty; *w=width; *h=height; }
|
|
int GetBlendMode() const { return 0; }
|
|
float GetZ(int col, int row) const;
|
|
PIXEL_TYPE 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;
|
|
|
|
Vertex *disp_array;
|
|
int nRows, nCols;
|
|
float cellw,cellh;
|
|
float tx,ty,width,height;
|
|
JQuad* quad;
|
|
};
|
|
|
|
|
|
#endif
|