00001 ////////////////////////////////////////////////////////////////////// 00002 // 6/27/02 Aaron Lefohn Scientific Computing and Imaging Institute 00003 // School of Computing University of Utah 00004 // 00005 // This library is free software; you can redistribute it and/or 00006 // modify it under the terms of the GNU Lesser General Public 00007 // License as published by the Free Software Foundation; either 00008 // version 2.1 of the License, or (at your option) any later version. 00009 // 00010 // This library is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 // Lesser General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU Lesser General Public 00016 // License along with this library; if not, write to the Free Software 00017 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 00019 #ifndef QUADTEXGEN_H 00020 #define QUADTEXGEN_H 00021 00022 #include "texCoordGen.h" 00023 #include <arrayGutz.h> 00024 00025 namespace glift { 00026 00027 ///////////////////////////////////////////////////////////////////////// 00028 /// 00029 /// QuadTexGen: Generate the texture coordinates for a quad 00030 /// 00031 /////////////////////////////////////////////////////////////////////// 00032 00033 class _export_ QuadTexGen : public TexCoordGen 00034 { 00035 public: 00036 virtual gutz::arrayo2f operator()() 00037 { 00038 float data[8] = { 0.0f, 0.0f, 00039 1.0f, 0.0f, 00040 1.0f, 1.0f, 00041 0.0f, 1.0f }; 00042 00043 return gutz::arrayo2f(4, 2, data); /// 4 vertices, 2 dimensions per vertex 00044 } 00045 00046 virtual gutz::arrayo2f operator()( const gutz::arrayw2f& coords, const gutz::vec3f& dimen ) 00047 { 00048 return (*this)(); 00049 } 00050 }; 00051 00052 } /// End of namespace glift 00053 00054 #endif