Main Page | Class Hierarchy | Class List | Directories | File List

CubeMap.h

00001 #ifndef __CUBE_MAP__
00002 #define __CUBE_MAP__
00003 
00004 #include <OpenGL.h>
00005 #include "TextureData.h"
00006 #include "Image2D.h"
00007 #include "ColorTypes.h"
00008 #include "Vec3.h"
00009 #include <QString>
00010 #include <QStringList>
00011 
00012 namespace apig {
00013 
00015     template<class Color>
00016     class CubeMap : public TextureData {
00017         public:
00018             CubeMap() : loaded(false) {}
00019             CubeMap(QString dirName);
00020         
00021             void initialize(QString dirName);
00022             void destroy();
00023             
00024             // émulation de l'échantillonnage de cube-maps OpenGL :
00025             Color sample(float rx, float ry, float rz) { return sample(Vec3(rx,ry,rz)); }
00026             Color sample(Vec3 r);
00027             
00028             virtual GLenum textureMode() const { return GL_TEXTURE_CUBE_MAP; }
00029             virtual GLint defaultTexFormat() const { return face[0][0].defaultTexFormat(); }
00030             virtual void loadToGPU(GLint texFormat) const;
00031             
00032             static QStringList namesList(QString dirName, QString first = QString::null);     // liste des cubemaps dans le répertoire <dirName>, avec éventuellement <first> en premier
00033             
00034         private:
00035             static GLenum targetName(int i, int j);       // i:{x=0,y=1,z=2}, j:{neg=0,pos=1}
00036             static QString imageFileName(int i, int j);   // i:{x=0,y=1,z=2}, j:{neg=0,pos=1}
00037             
00038         private:
00039             bool loaded;
00040             Image2D<Color> face[3][2];
00041             
00042             //static const QString defaultDir;
00043             static const QString axisNames[3];      // x, y, z
00044             static const QString signNames[2];      // neg, pos
00045             
00046         public:
00047             static const GLenum targetNames[6];
00048         };
00049     }
00050 
00051 #include "CubeMap_impl.h"
00052 
00053 #endif
00054 

Generated on Fri Nov 14 20:49:47 2008 for Api Graphics by  doxygen 1.4.4