#ifndef _ENGINE_TEXTURE_HPP_ #define _ENGINE_TEXTURE_HPP_ #ifndef _COMMON_VECTOR2D_HPP_ #include #endif #ifndef _ENGINE_VECTOR3D_HPP_ #include #endif #ifndef _ENGINE_DEVICE3D_HPP_ #include #endif #ifndef _ENGINE_PUREEDGE_HPP_ #include #endif #ifndef _ENGINE_PUREMAP_HPP_ #include #endif #ifndef _ENGINE_ASMUTIL_HPP_ #include #endif class WINGBlt; class DIBitmap; class Bitmap; class Texture { public: typedef void (Texture::*PMFI)(long pixelPoint,long imagePoint); Texture(const Vector3D &dstPoints,Bitmap &textureBitmap,Bitmap &displayBitmap,Device3D &displayDevice); Texture(const Vector3D &dstPoints,Bitmap &textureBitmap,WINGBlt &displayBitmap,Device3D &displayDevice); Texture(const Vector3D &dstPoints,Bitmap &textureBitmap,DIBitmap &displayBitmap,Device3D &displayDevice); Texture(const Vector2D &dstPoints,Bitmap &textureBitmap,DIBitmap &displayBitmap); virtual ~Texture(); void mapTexture(void); private: Texture &operator=(const Texture &someTexture); PureEdge mLeftEdge; PureEdge mRightEdge; PureMap mEdgeMap; Vector2D mTexturePoints; Vector2D mDstPoints2D; Vector3D mDstPoints3D; }; inline Texture &Texture::operator=(const Texture &/*someTexture*/) { // undefined return *this; } inline Texture::~Texture() { } inline void Texture::mapTexture(void) { ::initEdge(-1,&mLeftEdge); ::initEdge(1,&mRightEdge); ::mapTexture(&mEdgeMap); } #endif