00001 00003 00004 // 00005 // Copyright (c) 2000-2004 California Institute of Technology 00006 // Copyright (c) 2004-2007 University of Southern California 00007 // Rob Peters <rjpeters at usc dot edu> 00008 // 00009 // created: Thu Nov 16 00:11:19 2000 00010 // commit: $Id: gbvec.cc 10065 2007-04-12 05:54:56Z rjpeters $ 00011 // $HeadURL: file:///lab/rjpeters/svnrepo/code/trunk/groovx/src/gfx/gbvec.cc $ 00012 // 00013 // -------------------------------------------------------------------- 00014 // 00015 // This file is part of GroovX. 00016 // [http://ilab.usc.edu/rjpeters/groovx/] 00017 // 00018 // GroovX is free software; you can redistribute it and/or modify it 00019 // under the terms of the GNU General Public License as published by 00020 // the Free Software Foundation; either version 2 of the License, or 00021 // (at your option) any later version. 00022 // 00023 // GroovX is distributed in the hope that it will be useful, but 00024 // WITHOUT ANY WARRANTY; without even the implied warranty of 00025 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00026 // General Public License for more details. 00027 // 00028 // You should have received a copy of the GNU General Public License 00029 // along with GroovX; if not, write to the Free Software Foundation, 00030 // Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 00031 // 00033 00034 #ifndef GROOVX_GFX_GBVEC_CC_UTC20050626084025_DEFINED 00035 #define GROOVX_GFX_GBVEC_CC_UTC20050626084025_DEFINED 00036 00037 #include "gfx/gbvec.h" 00038 00039 #include "rutz/fstring.h" 00040 00041 template <class T> 00042 GbVec2<T>::GbVec2(T x_, T y_) : 00043 geom::vec2<T>(x_, y_), 00044 rutz::multi_value<T>(2) 00045 {} 00046 00047 template <class T> 00048 GbVec2<T>::~GbVec2() {} 00049 00050 template <class T> 00051 rutz::fstring GbVec2<T>::value_typename() const 00052 { 00053 return rutz::fstring("GbVec2"); 00054 } 00055 00056 template <class T> 00057 const T* GbVec2<T>::const_begin() const { return &geom::vec2<T>::x(); } 00058 00059 template <class T> 00060 GbVec3<T>::GbVec3(T x_, T y_, T z_) : 00061 geom::vec3<T>(x_, y_, z_), 00062 rutz::multi_value<T>(3) 00063 {} 00064 00065 template <class T> 00066 GbVec3<T>::~GbVec3() {} 00067 00068 template <class T> 00069 rutz::fstring GbVec3<T>::value_typename() const 00070 { 00071 return rutz::fstring("GbVec3"); 00072 } 00073 00074 template <class T> 00075 const T* GbVec3<T>::const_begin() const { return geom::vec3<T>::data(); } 00076 00077 template class GbVec2<int>; 00078 template class GbVec2<double>; 00079 00080 template class GbVec3<int>; 00081 template class GbVec3<double>; 00082 00083 static const char __attribute__((used)) vcid_groovx_gfx_gbvec_cc_utc20050626084025[] = "$Id: gbvec.cc 10065 2007-04-12 05:54:56Z rjpeters $ $HeadURL: file: 00084 #endif // !GROOVX_GFX_GBVEC_CC_UTC20050626084025_DEFINED