00001 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00032 
00033 #ifndef GROOVX_GFX_VECTCL_H_UTC20050626084023_DEFINED
00034 #define GROOVX_GFX_VECTCL_H_UTC20050626084023_DEFINED
00035 
00036 #include "geom/vec2.h"
00037 #include "geom/vec3.h"
00038 
00039 #include "tcl/conversions.h"
00040 #include "tcl/list.h"
00041 
00042 namespace tcl
00043 {
00045   template <class T>
00046   inline geom::vec2<T> aux_convert_to(Tcl_Obj* obj, geom::vec2<T>*)
00047   {
00048     tcl::list listObj(obj);
00049 
00050     return geom::vec2<T>(listObj.template get<T>(0),
00051                          listObj.template get<T>(1));
00052   }
00053 
00055   template <class T>
00056   inline tcl::obj aux_convert_from( const geom::vec2<T>& v )
00057   {
00058     tcl::list listObj;
00059     listObj.append(v.x());
00060     listObj.append(v.y());
00061     return listObj.as_obj();
00062   }
00063 
00065   template <class T>
00066   inline geom::vec3<T> aux_convert_to(Tcl_Obj* obj, geom::vec3<T>*)
00067   {
00068     tcl::list listObj(obj);
00069 
00070     return geom::vec3<T>(listObj.template get<T>(0),
00071                          listObj.template get<T>(1),
00072                          listObj.template get<T>(2));
00073   }
00074 
00076   template <class T>
00077   inline tcl::obj aux_convert_from( const geom::vec3<T>& v )
00078   {
00079     tcl::list listObj;
00080     listObj.append(v.x());
00081     listObj.append(v.y());
00082     listObj.append(v.z());
00083     return listObj.as_obj();
00084   }
00085 }
00086 
00087 static const char __attribute__((used)) vcid_groovx_gfx_vectcl_h_utc20050626084023[] = "$Id: vectcl.h 10065 2007-04-12 05:54:56Z rjpeters $ $HeadURL: file:
00088 #endif // !GROOVX_GFX_VECTCL_H_UTC20050626084023_DEFINED