core/vcsl/vcsl_length.h
Go to the documentation of this file.
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_