00001 // This is oxl/mvl/Homg.h 00002 #ifndef Homg_h_ 00003 #define Homg_h_ 00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE 00005 #pragma interface 00006 #endif 00007 //: 00008 // \file 00009 // \brief Private base class for homogeneous vectors 00010 // 00011 // This is the private base class for homogeneous vectors. It provides the 00012 // get/set interface, and also a static variable Homg::infinity which is used 00013 // throughout when returning infinite nonhomogeneous values. 00014 // 00015 // \author 00016 // Paul Beardsley, 29.03.96 00017 // Oxford University, UK 00018 // 00019 // \verbatim 00020 // Modifications: 00021 // 210297 AWF Switched to fixed-length vectors for speed. 00022 // \endverbatim 00023 //------------------------------------------------------------------------------- 00024 00025 class Homg 00026 { 00027 public: 00028 00029 //: Standard placeholder for methods that wish to return infinity. 00030 static double infinity; 00031 00032 //: The tolerance used in "near zero" tests in the Homg subclasses. 00033 static double infinitesimal_tol; 00034 00035 //: Static method to set the default tolerance used for infinitesimal checks. 00036 // The default is 1e-12. 00037 static void set_infinitesimal_tol(double tol); 00038 }; 00039 00040 #endif // Homg_h_