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