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_