00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef GLIFT_MULTI_TEX_COORD_GEN
00015 #define GLIFT_MULTI_TEX_COORD_GEN
00016
00017 #include "../core/gliftObject.h"
00018 #include "../util/gliftDecl.h"
00019 #include <mathGutz.h>
00020 #include <arrayGutz.h>
00021
00022 #include <vector>
00023
00024 namespace glift {
00025
00026 typedef std::vector<gutz::arrayw2f> Vecarrayw2f;
00027 typedef std::vector<gutz::arrayo2f> MultiTexCoord;
00028 typedef std::vector<MultiTexCoord*> MultiPrimTexCoord;
00029
00030 class _export_ MultiTexCoordGen
00031 {
00032 public:
00033 virtual MultiTexCoord* genTexCoords( const gutz::arrayw2f& rawTexCoord, const gutz::vec3f& primScale ) const = 0;
00034 };
00035
00036 class _export_ TexCoordGen : public GliftObject
00037 {
00038 public:
00039 virtual ~TexCoordGen() {}
00040
00041
00042 virtual gutz::arrayo2f operator()() = 0;
00043
00044
00045
00046
00047 virtual gutz::arrayo2f operator()( const gutz::arrayw2f& coords, const gutz::vec3f& dimen );
00048
00049
00050 gutz::arrayo2f genTexCoords() { return (*this)(); }
00051 gutz::arrayo2f genTexCoords( const gutz::arrayw2f coords, const gutz::vec3f& dimen ) { return (*this)(coords, dimen); }
00052 };
00053
00054 }
00055
00056 #endif