00001 #ifndef vcsl_length_h_ 00002 #define vcsl_length_h_ 00003 //: 00004 // \file 00005 // \brief Length dimension 00006 // \author François BERTEL 00007 // 00008 // \verbatim 00009 // Modifications 00010 // 2000/06/28 François BERTEL Creation. Adapted from IUE 00011 // 2001/04/10 Ian Scott (Manchester) Converted perceps header to doxygen 00012 // 2004/09/17 Peter Vanroose made "instance_" a local static variable of method instance() 00013 // 2004/09/17 Peter Vanroose do not pass vcsl_unit objects; use vcsl_unit_sptr instead 00014 // \endverbatim 00015 00016 #include <vcsl/vcsl_dimension.h> 00017 #include <vcsl/vcsl_length_sptr.h> 00018 #include <vcsl/vcsl_unit_sptr.h> 00019 00020 //: Length dimension 00021 class vcsl_length 00022 : public vcsl_dimension 00023 { 00024 //*************************************************************************** 00025 // Constructors/Destructor 00026 //*************************************************************************** 00027 00028 // Default constructor 00029 vcsl_length() {} 00030 00031 public: 00032 // Destructor 00033 virtual ~vcsl_length() {} 00034 00035 //*************************************************************************** 00036 // Status report 00037 //*************************************************************************** 00038 00039 //: Is `new_unit' a compatible unit for the dimension ? 00040 // Pure virtual function of vcsl_dimension 00041 virtual bool compatible_unit(vcsl_unit_sptr const& new_unit) const; 00042 00043 //: Return the standard unit associated to the dimension 00044 // Pure virtual function of vcsl_dimension 00045 virtual vcsl_unit_sptr standard_unit() const; 00046 00047 //*************************************************************************** 00048 // Singleton pattern 00049 //*************************************************************************** 00050 00051 //: Return the reference to the unique vcsl_length object 00052 static vcsl_length_sptr instance(); 00053 }; 00054 00055 #endif // vcsl_length_h_