src/Texture.h

Go to the documentation of this file.
00001 #ifndef TEXTURE_H
00002 #define TEXTURE_H
00003 
00004 #include "Image.h"
00005 #include "TexCoordinate.h"
00006 #include "RGBAColor.h"
00007 
00009 enum Mode{
00011     WRAP = 0,
00012 
00014     REPEAT = 1
00015 };
00016 
00018 enum InterpolationMode
00019 {
00021     NEAREST = 0,
00022 
00024     LINEAR = 1
00025 };
00026 
00027 
00032 class Texture
00033 {
00034 public:
00037     Texture()
00038         : mMode(WRAP),
00039             mInterpolationMode(NEAREST)
00040     {
00041     }
00042 
00045     virtual ~Texture()
00046     {
00047     }
00048 
00051     Mode wrapMode() const
00052     {
00053         return mMode;
00054     }
00055 
00058     void setWrapMode(Mode mode)
00059     {
00060         mMode = mode;
00061     }
00062 
00065     InterpolationMode interpolationMode() const
00066     {
00067         return mInterpolationMode;
00068     }
00069 
00072     void setInterpolationMode(InterpolationMode mode)
00073     {
00074         mInterpolationMode = mode;
00075     }
00076 
00080     virtual RGBAColor texel(float u, float v) const = 0;
00081     inline  RGBAColor texel(const TexCoordinate & uv) const
00082     {
00083         return texel(uv.x(), uv.y());
00084     }
00085 
00088     virtual int resX() const = 0;
00089     
00092     virtual int resY() const = 0;
00093 
00094 protected:
00096     Mode mMode;
00097 
00099     InterpolationMode mInterpolationMode;
00100 };
00101 
00102 #endif

Generated on Fri Feb 1 00:01:42 2008 for Grayfall by  doxygen 1.5.1