core/vgl/vgl_homg.cxx
Go to the documentation of this file.
00001 // This is core/vgl/vgl_homg.cxx
00002 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00003 #pragma implementation
00004 #endif
00005 
00006 #include "vgl_homg.h"
00007 
00008 VCL_DEFINE_SPECIALIZATION float vgl_homg<float>::infinity = 3.4028234663852886e+38f;
00009 VCL_DEFINE_SPECIALIZATION float vgl_homg<float>::infinitesimal_tol = 1e-12f;
00010 
00011 VCL_DEFINE_SPECIALIZATION double vgl_homg<double>::infinity = 1.7976931348623157e+308;
00012 VCL_DEFINE_SPECIALIZATION double vgl_homg<double>::infinitesimal_tol = 1e-12;
00013 
00014 VCL_DEFINE_SPECIALIZATION long double vgl_homg<long double>::infinity = 1.7976931348623157e+308;
00015 VCL_DEFINE_SPECIALIZATION long double vgl_homg<long double>::infinitesimal_tol = 1e-12;
00016 
00017 #ifdef VCL_BORLAND_56
00018 // Not sure why this is needed for Borland 5.6.  Bug?
00019 // Alternatively we could define separate class template
00020 // specializations for every supported vgl_homg type and then just
00021 // have an empty function here.
00022 void vgl_homg_linker_hack()
00023 {
00024   (void)vgl_homg<float>::infinity;
00025   (void)vgl_homg<float>::infinitesimal_tol;
00026   (void)vgl_homg<double>::infinity;
00027   (void)vgl_homg<double>::infinitesimal_tol;
00028   (void)vgl_homg<long double>::infinity;
00029   (void)vgl_homg<long double>::infinitesimal_tol;
00030 }
00031 #endif