mi32/uom.h

Go to the documentation of this file.
00001 /**
00002  * \file uom.h <mi32/uom.h>
00003  * \brief UOM (Unit of Measure) system definitions
00004  *
00005  * \if NODOC
00006  * $Id: uom.h_v 1.7 2003/09/29 16:57:51 mju Exp $
00007  *
00008  * $Log: uom.h_v $
00009  * Revision 1.7  2003/09/29 16:57:51  mju
00010  * Add FindUnit variants using only idnum and id.
00011  *
00012  * Revision 1.6  2003/09/25 21:29:07  dwilliss
00013  * Don't capitalize enum any more. Genitor needed it, doxygen doesn't like it.
00014  *
00015  * Revision 1.5  2003/09/19 14:05:00  mju
00016  * Fix doc comments.
00017  *
00018  * Revision 1.4  2003/09/17 15:22:22  dwilliss
00019  * Fixed operator== and operator!= to return bool (was unspecified)
00020  *
00021  * Revision 1.3  2003/09/17 13:49:18  mju
00022  * Add ==/!= for unit.
00023  *
00024  * Revision 1.2  2003/09/15 13:49:56  fileserver!dwilliss
00025  * Doxygen
00026  *
00027  * Revision 1.1  2003/09/05 17:09:12  mju
00028  * Initial revision
00029  *
00030  * \endif
00031 **/
00032 
00033 #ifndef  INC_MI32_UOM_H
00034 #define  INC_MI32_UOM_H
00035 
00036 #ifndef  INC_MI32_IDENTIFIER_H
00037 #include <mi32/identifier.h>
00038 #endif
00039 
00040 #ifndef  INC_MI32_MISTRING_H
00041 #include <mi32/mistring.h>
00042 #endif
00043 
00044 #ifndef  INC_MI32_MILIST_H
00045 #include <mi32/milist.h>
00046 #endif
00047 
00048 #ifdef GEOMDLL
00049    #define CLASSLIBEXPORT MI_DLLCLASSEXPORT
00050 #else
00051    #define CLASSLIBEXPORT MI_DLLCLASSIMPORT
00052 #endif
00053 
00054 namespace UOM {
00055 
00056 #ifndef GENERATING_DOXYGEN_OUTPUT
00057 class SYSTEM;
00058 class MEASURE;
00059 class UNIT;
00060 class CONVERTER;
00061 class MEASURE_PRIV;
00062 class UNIT_PRIV;
00063 class CONVERTER_PRIV;
00064 #endif // GENERATING_DOXYGEN_OUTPUT
00065 
00066 //-------------------------------------------------------------------------------------------------------------------
00067 
00068 //! Single unit container.
00069 //! Normally a UNIT instance is obtained using one of the MEASURE::FindUnit() or GetBaseUnit() methods.
00070 class CLASSLIBEXPORT UNIT {
00071    public:
00072 
00073       enum NAMEUSAGE {
00074          NAMEUSAGE_Singular,
00075          NAMEUSAGE_Plural
00076          };
00077 
00078       //! Default constructor.
00079       UNIT (
00080          );
00081 
00082       //! Copy constructor.
00083       UNIT (
00084          const UNIT& rhs
00085          );
00086 
00087       #ifndef GENERATING_DOXYGEN_OUTPUT
00088       //! Internal constructor.
00089       UNIT (
00090          UNIT_PRIV *pPriv
00091          );
00092       #endif // GENERATING_DOXYGEN_OUTPUT
00093 
00094       //! Destructor.
00095       ~UNIT (
00096          );
00097 
00098       //! Assignment.
00099       UNIT& operator= (
00100          const UNIT& rhs
00101          );
00102 
00103       //! Convert value in base unit to this unit (numeric).
00104       double ConvertFromBase (
00105          double inval
00106          ) const;
00107 
00108       //! Convert value in base unit to this unit (string).
00109       void ConvertFromBase (
00110          double inval,
00111          MISTRING& outstr
00112          ) const;
00113 
00114       //! Convert numeric value in this unit to base unit.
00115       double ConvertToBase (
00116          double inval
00117          ) const;
00118 
00119       //! Convert string value in this unit to base unit.
00120       double ConvertToBase (
00121          const MISTRING& instr
00122          ) const;
00123 
00124       //! Get factor A in conversion formula.
00125       double GetFactorA (
00126          ) const;
00127 
00128       //! Get factor B in conversion formula.
00129       double GetFactorB (
00130          ) const;
00131 
00132       //! Get factor C in conversion formula.
00133       double GetFactorC (
00134          ) const;
00135 
00136       //! Get identifer list for unit.
00137       const IDENTIFIERLIST& GetIdList (
00138          ) const;
00139 
00140       //! Get MicroImages unit identification number.
00141       int GetIdNum (
00142          ) const;
00143 
00144       //! Get measure unit applies to.
00145       const MEASURE& GetMeasure (
00146          ) const;
00147 
00148       //! Get unit name.
00149       const MISTRING& GetName (
00150          NAMEUSAGE nameusage              //!< Usage name is for
00151          ) const;
00152 
00153       //! Get unit symbol.
00154       const MISTRING& GetSymbol (
00155          ) const;
00156 
00157       //! Determine if equal.
00158       bool IsEqual (
00159          const UNIT& rhs
00160          ) const;
00161 
00162       //! Determine if unit requires a string representation.
00163       //! @return true if string, false if not.
00164       bool IsString (
00165          ) const;
00166 
00167    private:
00168       #ifndef GENERATING_DOXYGEN_OUTPUT
00169       UNIT_PRIV *m_pPriv;
00170       friend class MEASURE_PRIV;
00171       #endif // GENERATING_DOXYGEN_OUTPUT
00172 
00173    };
00174 
00175 //! Equality.
00176 inline bool operator== (
00177    const UNIT& lhs,
00178    const UNIT& rhs
00179    ) { return (lhs.IsEqual(rhs)); }
00180 
00181 //! Inequality.
00182 inline bool operator!= (
00183    const UNIT& lhs,
00184    const UNIT& rhs
00185    ) { return (!lhs.IsEqual(rhs)); }
00186 
00187 /*
00188 #if defined(WIN32) && !defined(GEOMDLL) && !defined(NODLLLINKAGE)
00189 #pragma warning(disable:4231)
00190 extern template class CLASSLIBEXPORT MILIST<UNIT>;    //! Template instantiation
00191 #pragma warning(default:4231)
00192 #endif
00193 */
00194 typedef MILIST<UNIT> UNITLIST;
00195 
00196 
00197 //-------------------------------------------------------------------------------------------------------------------
00198 //! Measure container.
00199 //! Normally one of the UOM::SYSTEM::FindMeasure() methods is used obtain a MEASURE instance.
00200 class CLASSLIBEXPORT MEASURE {
00201    public:
00202 
00203       //! Enumeration of measure types.
00204       //! Invariant, may be saved in files by number.
00205       //! Same as codes used in MicroImages codespace.
00206       enum TYPE {
00207          TYPE_Area =                   1,    //!< Area [m²]
00208          TYPE_Length =                 2,    //!< Length [meter, m]
00209          TYPE_Distance =               TYPE_Length,
00210          TYPE_PlaneAngle =             3,    //!< Plane angle [radian, rad]
00211          TYPE_Time =                   4,    //!< Time [second, s]
00212          TYPE_Temperature =            5,    //!< Temperature [kelvin, K]
00213          TYPE_Volume =                 6,    //!< Volume [m³]
00214          TYPE_Mass =                   7,    //!< Mass [kilogram, kg]
00215          TYPE_Current =                8,    //!< Electric current [ampere, A]
00216          TYPE_Amount =                 9,    //!< Amount of substance [mole, mol]
00217          TYPE_LuminousIntensity =      10,   //!< Luminous intensity [candela, cd]
00218          TYPE_SolidAngle =             11,   //!< Solid angle [steradian, sr]
00219          TYPE_Velocity =               12,   //!< Velocity [m/s]
00220          TYPE_Acceleration =           13,   //!< Acceleration [m/s²]
00221          TYPE_VolumetricFlowRate =     14,   //!< Volumetric flow rate [M³/s]
00222          TYPE_MassFlowRate =           15,   //!< Mass flow rate [kg/s]
00223          TYPE_WaveNumber =             16,   //!< Wave number [1/m]
00224          TYPE_Density =                17,   //!< Density [kg/m³]
00225          TYPE_SpecificVolume =         18,   //!< Specific volume [m³/kg]
00226          TYPE_CurrentDensity =         19,   //!< Current density [A/m²]
00227          TYPE_MagneticFieldStrength =  20,   //!< Magnetic field strength [A/m]
00228          TYPE_Concentration =          21,   //!< Concentration [mol/m³]
00229          TYPE_Luminance =              22,   //!< Luminance [cd/m²]
00230          TYPE_Frequency =              23,   //!< Frequency [hertz, Hz]
00231          TYPE_Force =                  24,   //!< Force [newton, N]
00232          TYPE_Pressure =               25,   //!< Pressure, stress [pascal, Pa]
00233          TYPE_Energy =                 26,   //!< Energy, work, quantity of heat [joule, J]
00234          TYPE_Power =                  27,   //!< Power, radiant flux [watt, W]
00235          TYPE_ElectricCharge =         28,   //!< Electric charge [coulomb, C]
00236          TYPE_ElectricPotential =      29,   //!< Electric potential [volt, V]
00237          TYPE_Capacitance =            30,   //!< Capacitance [farad, F]
00238          TYPE_ElectricResistance =     31,   //!< Electric resistance [ohm, Omega]
00239          TYPE_ElectricConductance =    31,   //!< Electric conductance [siemens, S]
00240          TYPE_MagneticFlux =           33,   //!< Magentic flux [weber, Wb]
00241          TYPE_MagneticFluxDensity =    34,   //!< Magnetic flux density [tesla, T]
00242          TYPE_Inductance =             35,   //!< Inductance [henry, H]
00243          TYPE_LuminousFlux =           36,   //!< Luminous flux [lumen, lm]
00244          TYPE_RadionuclideActivity =   37,   //!< Activity of radionuclide [becquerel, Bq]
00245          TYPE_AbsorbedDose =           38,   //!< Absorbed dose [gray, Gy]
00246          TYPE_DoseEquivalent =         39,   //!< Dose equivalent [sievert, Sv]
00247          TYPE_DynamicViscosity =       40,   //!< Dynamic viscosity [Pa·s]
00248          TYPE_MomentOfForce =          41,   //!< Moment of force [N·m]
00249          TYPE_SurfaceTension =         42,   //!< Surface tension [N/m]
00250          TYPE_Irradiance =             43,   //!< Irradiance, heat flux density [W/m²]
00251          TYPE_Entropy =                44,   //!< Entropy, heat capacity [J/K]
00252          TYPE_SpecificHeatCapacity =   45,   //!< Specific heat capacity [J/(kg·K)]
00253          TYPE_SpecificEnergy =         46,   //!< Specific energy [J/kg]
00254          TYPE_ThermalConductivity =    47,   //!< Thermal conductivity [W/(m·K)]
00255          TYPE_EnergyDensity =          48,   //!< Energy density [J/m³]
00256          TYPE_ElectricFieldStrength =  49,   //!< Electric field strength [V/m]
00257          TYPE_ElectricChargeDensity =  50,   //!< Electric charge density [C/m³]
00258          TYPE_ElectricFluxDensity =    51,   //!< Electric flux density [C/m²]
00259          TYPE_Permitivity =            52,   //!< Permitivity [F/m]
00260          TYPE_Permeability =           53,   //!< Permeability [H/m]
00261          TYPE_MolarEnergy =            54,   //!< Molar energy [J/mol]
00262          TYPE_MolarEntropy =           55,   //!< Molar entropy [J/(mol·K)]
00263          TYPE_Exposure =               56,   //!< Exposure (X and gamma rays) [C/kg]
00264          TYPE_AbsorbedDoseRate =       57,   //!< Absorbed dose rate [Gy/s]
00265          TYPE_AngularVelocity =        58,   //!< Angular velocity [rad/s]
00266          TYPE_AngularAcceleration =    59,   //!< Angular acceleration [rad/s²]
00267          TYPE_RadiantIntensity =       60,   //!< Radiant intensity [W/sr]
00268          TYPE_Radiance =               61,   //!< Radiance [W/m²·sr]
00269          TYPE_Scale =                  62,   //!< Scale (unit/unit)
00270          TYPE_Image =                  63,   //!< Image (pixel)
00271 
00272          TYPE_LASTNONDATE =            63,   //!< Last measure type other than date
00273 
00274          TYPE_Date =                   99,   //!< Date, possibly formatted
00275          TYPE_None =                   255
00276          };
00277 
00278       //! Default constructor, constructs instance with TYPE_None.
00279       MEASURE (
00280          );
00281 
00282       //! Copy constructor.
00283       MEASURE (
00284          const MEASURE& rhs
00285          );
00286 
00287       #ifndef GENERATING_DOXYGEN_OUTPUT
00288       //! Internal constructor.
00289       MEASURE (
00290          MEASURE_PRIV *pPriv
00291          );
00292       #endif // GENERATING_DOXYGEN_OUTPUT
00293 
00294       //! Destructor.
00295       ~MEASURE (
00296          );
00297 
00298       //! Assignment.
00299       MEASURE& operator= (
00300          const MEASURE& rhs
00301          );
00302 
00303       //! Find unit using MicroImages identification code.
00304       //! @return true if found, false if not.
00305       bool FindUnit (
00306          int micode,                      //!< MicroImages identification code
00307          UNIT& unitret                    //!< Unit returned if found
00308          ) const;
00309 
00310       //! Find unit using IDENTIFIER.
00311       //! @return true if found, false if not.
00312       bool FindUnit (
00313          const IDENTIFIER& identifier,    //!< Identifier
00314          UNIT& unitret                    //!< Unit returned if found
00315          ) const;
00316 
00317       //! Find unit using name.
00318       //! Searches all 'string' identifiers, localized names, localized symbols.
00319       //! @return true if found, false if not.
00320       bool FindUnit (
00321          const MISTRING& name,            //!< Unit name
00322          UNIT& unitret                    //!< Unit returned if found
00323          ) const;
00324          
00325       //! Get base unit for measure.
00326       //! @return Reference to base unit.
00327       const UNIT& GetBaseUnit (
00328          ) const;
00329 
00330       //! Get identifer list for measure.
00331       const IDENTIFIERLIST& GetIdList (
00332          ) const;
00333 
00334       //! Get name of measure.
00335       const MISTRING& GetName (
00336          ) const;
00337 
00338       //! Get measure type enumeration.
00339       TYPE GetType (
00340          ) const;
00341 
00342       //! Get unit list for measure.
00343       const UNITLIST& GetUnitList (
00344          ) const;
00345 
00346    private:
00347       #ifndef GENERATING_DOXYGEN_OUTPUT
00348       MEASURE_PRIV *m_pPriv;
00349       #endif // GENERATING_DOXYGEN_OUTPUT
00350 
00351    };
00352 
00353 
00354 //! Equality.
00355 inline bool operator== (
00356    const MEASURE& lhs,
00357    const MEASURE& rhs
00358    ) { return (lhs.GetType() == rhs.GetType()); }
00359 
00360 //! Inequality.
00361 inline bool operator!= (
00362    const MEASURE& lhs,
00363    const MEASURE& rhs
00364    ) { return (lhs.GetType() != rhs.GetType()); }
00365 
00366 /*
00367 #if defined(WIN32) && !defined(GEOMDLL) && !defined(NODLLLINKAGE)
00368 #pragma warning(disable:4231)
00369 extern template class CLASSLIBEXPORT MILIST<MEASURE>;    //! Template instantiation
00370 #pragma warning(default:4231)
00371 #endif
00372 */
00373 typedef MILIST<MEASURE> MEASURELIST;
00374 
00375 //-------------------------------------------------------------------------------------------------------------------
00376 
00377 //! System methods.
00378 class CLASSLIBEXPORT SYSTEM {
00379    public:
00380 
00381       //! Find measure instance by IDENTIFIER.
00382       //! @return true if found, false if not.
00383       static bool FindMeasure (
00384          const IDENTIFIER& identifier,    //!< Identifier
00385          MEASURE& measure                 //!< Measure returned if found
00386          );
00387 
00388       //! Find measure instance by TYPE.
00389       //! @return true if found, false if not.
00390       static bool FindMeasure (
00391          MEASURE::TYPE type,              //!< Measure type
00392          MEASURE& measure                 //!< Measure returned if found
00393          );
00394 
00395       //! Find unit using MicroImages composite measure/unit identification number.
00396       //! Code is in the form 256 * MeasureNum + UnitNum;
00397       //! @return true if found, false if not.
00398       static bool FindUnit (
00399          int micode,                      //!< MicroImages identification code
00400          UNIT& unitret                    //!< Unit returned if found
00401          );
00402          
00403       //! Find unit using TYPE and MicroImages unit identification number.
00404       //! @return true if found, false if not.
00405       static bool FindUnit (
00406          MEASURE::TYPE type,              //!< Measure type
00407          int micode,                      //!< MicroImages identification code
00408          UNIT& unitret                    //!< Unit returned if found
00409          );
00410          
00411       //! Find unit using IDENTIFIER.
00412       //! @return true if found, false if not.
00413       static bool FindUnit (
00414          const IDENTIFIER& identifier,    //!< Identifier
00415          UNIT& unitret                    //!< Unit returned if found
00416          );
00417          
00418       //! Find unit using TYPE and IDENTIFIER.
00419       //! @return true if found, false if not.
00420       static bool FindUnit (
00421          MEASURE::TYPE type,              //!< Measure type
00422          const IDENTIFIER& identifier,    //!< Identifier
00423          UNIT& unitret                    //!< Unit returned if found
00424          );
00425          
00426       //! Find unit using TYPE and name.
00427       //! Searches all 'string' identifiers, localized names, localized symbols.
00428       //! @return true if found, false if not.
00429       static bool FindUnit (
00430          MEASURE::TYPE type,              //!< Measure type
00431          const MISTRING& name,            //!< Unit name
00432          UNIT& unitret                    //!< Unit returned if found
00433          );
00434          
00435       //! Get list of MEASUREs.
00436       //! Will not include entry for TYPE_None.
00437       static const MEASURELIST& GetMeasureList (
00438          );
00439 
00440       //! Initialize unit of measure system.
00441       //! Automatically called by application initialization code.
00442       static ERRVALUE Initialize ();
00443    };
00444 
00445 
00446 //-------------------------------------------------------------------------------------------------------------------
00447 
00448 class CLASSLIBEXPORT CONVERTER {
00449    public:
00450 
00451       //! Default constructor.
00452       CONVERTER (
00453          );
00454 
00455       //! Copy constructor.
00456       CONVERTER (
00457          const CONVERTER& rhs
00458          );
00459 
00460       //! Identity constructor.
00461       CONVERTER (
00462          const MEASURE& measure
00463          );
00464 
00465       //! Destructor.
00466       ~CONVERTER ();
00467 
00468       //! Assignment.
00469       CONVERTER& operator= (
00470          const CONVERTER& rhs
00471          );
00472 
00473       //! Convert numeric value from source unit to target unit.
00474       //! If either source or target unit requires a string representation the original value will be returned.
00475       //! @return Converted value.
00476       double ConvertForward (
00477          double value                     //!< Value in source unit to convert
00478          ) const;
00479 
00480       //! Convert string in source unit to numeric value in target unit.
00481       //! If target unit requires a string representation an error will be returned.
00482       ERRVALUE ConvertForward (
00483          const MISTRING& instr,           //!< String in source unit to convert
00484          double& outval                   //!< Value in target unit returned
00485          ) const;
00486          
00487       //! Convert numeric value in source unit to string in target unit.
00488       //! If source unit requires a string representation an error will be returned.
00489       ERRVALUE ConvertForward (
00490          double inval,                    //!< Value in source unit to convert
00491          MISTRING& outstr                 //!< String in target unit returned
00492          ) const;
00493          
00494       //! Convert string in source unit to string in target unit.
00495       ERRVALUE ConvertForward (
00496          const MISTRING& instr,           //!< String in source unit to convert
00497          MISTRING& outstr                 //!< String in target unit returned
00498          ) const;
00499          
00500       //! Convert numeric value from target unit to source unit.
00501       //! If either target or source unit requires a string representation the original value will be returned.
00502       //! @return Converted value.
00503       double ConvertInverse (
00504          double value                     //!< Value in target unit to convert
00505          ) const;
00506 
00507       //! Convert string in target unit to numeric value in source unit.
00508       //! If source unit requires a string representation an error will be returned.
00509       ERRVALUE ConvertInverse (
00510          const MISTRING& instr,           //!< String in target unit to convert
00511          double& outval                   //!< Value in source unit returned
00512          ) const;
00513          
00514       //! Convert numeric value in target unit to string in source unit.
00515       //! If target unit requires a string representation an error will be returned.
00516       ERRVALUE ConvertInverse (
00517          double inval,                    //!< Value in target unit to convert
00518          MISTRING& outstr                 //!< String in source unit returned
00519          ) const;
00520          
00521       //! Convert string in target unit to string in source unit.
00522       ERRVALUE ConvertInverse (
00523          const MISTRING& instr,           //!< String in target unit to convert
00524          MISTRING& outstr                 //!< String in source unit returned
00525          ) const;
00526          
00527       //! Get measure associated with converter.         
00528       const MEASURE& GetMeasure (
00529          ) const;
00530 
00531       //! Get scale multiplication value from source to target.
00532       double GetScale (
00533          ) const;
00534 
00535       //! Get source unit.
00536       const UNIT& GetSourceUnit (
00537          ) const;
00538 
00539       //! Get target unit.
00540       const UNIT& GetTargetUnit (
00541          ) const;
00542 
00543       //! Read source unit from INI file.
00544       //! Target unit will be left unchanged.
00545       void IniReadSource (
00546          INIHANDLE IniHandle,
00547          const char *IniGroup,
00548          const char *IniName,
00549          int micode = 0                      //!< Default unit code
00550          );
00551 
00552       //! Read target unit from INI file.
00553       //! Source unit will be left unchanged.
00554       void IniReadTarget (
00555          INIHANDLE IniHandle,
00556          const char *IniGroup,
00557          const char *IniName,
00558          int micode = 0                      //!< Default unit code
00559          );
00560 
00561       //! Write source unit code to INI file.
00562       void IniWriteSource (
00563          INIHANDLE IniHandle,
00564          const char *IniGroup,
00565          const char *IniName
00566          ) const;
00567 
00568       //! Write target unit code to INI file.
00569       void IniWriteTarget (
00570          INIHANDLE IniHandle,
00571          const char *IniGroup,
00572          const char *IniName
00573          ) const;
00574 
00575       //! Set source unit.
00576       //! If the current measure is of TYPE_None it will be set to the measure of the specified unit.
00577       //! Otherwise, an error will be returned if the unit does not refer to the current measure.
00578       ERRVALUE SetSourceUnit (
00579          const UNIT& SourceUnit
00580          );
00581 
00582       //! Set target unit.
00583       //! If the current measure is of TYPE_None it will be set to the measure of the specified unit.
00584       //! Otherwise, an error will be returned if the unit does not refer to the current measure.
00585       ERRVALUE SetTargetUnit (
00586          const UNIT& TargetUnit
00587          );
00588 
00589       //! Set both source and target units.
00590       //! An error will be returned if the specified units do not refer to the same MEASURE.
00591       ERRVALUE SetUnits (
00592          const UNIT& SourceUnit,
00593          const UNIT& TargetUnit
00594          );
00595 
00596    private:
00597       #ifndef GENERATING_DOXYGEN_OUTPUT
00598       CONVERTER_PRIV *m_pPriv;
00599       void GetExclusive();
00600       #endif // GENERATING_DOXYGEN_OUTPUT
00601    };
00602 
00603 //-------------------------------------------------------------------------------------------------------------------
00604 }; //! End namespace UOM
00605 
00606 
00607 typedef  UOM::MEASURE::TYPE   UNIT_TYPE;
00608 
00609 #define  UNIT_TYPE_Constant                  0     //!< Constants and unitless database fields
00610 #define  UNIT_TYPE_Area                      UOM::MEASURE::TYPE_Area
00611 #define  UNIT_TYPE_Length                    UOM::MEASURE::TYPE_Length
00612 #define  UNIT_TYPE_Distance                  UOM::MEASURE::TYPE_Distance
00613 #define  UNIT_TYPE_PlaneAngle                UOM::MEASURE::TYPE_PlaneAngle
00614 #define  UNIT_TYPE_Time                      UOM::MEASURE::TYPE_Time
00615 #define  UNIT_TYPE_Volume                    UOM::MEASURE::TYPE_Volume
00616 #define  UNIT_TYPE_Velocity                  UOM::MEASURE::TYPE_Velocity
00617 #define  UNIT_TYPE_Acceleration              UOM::MEASURE::TYPE_Acceleration
00618 #define  UNIT_TYPE_AngularVelocity           UOM::MEASURE::TYPE_AngularVelocity
00619 #define  UNIT_TYPE_Date                      UOM::MEASURE::TYPE_Date
00620 #define  UNIT_TYPE_None                      UOM::MEASURE::TYPE_None
00621 
00622 
00623 //---------------------------------------------------------------------------------------------------------------------
00624 //!      Commmon MicroImages numeric Unit identifiers
00625 
00626 #define  UNIT_Area_SquareMeter         0
00627 #define  UNIT_Area_SquareMeters        0
00628 #define  UNIT_Area_SquareKilometer     3
00629 #define  UNIT_Area_SquareKilometers    3
00630 #define  UNIT_Area_SquareMillimeter    2
00631 #define  UNIT_Area_SquareMillimeters   2
00632 
00633 #define  UNIT_Length_Meter             0
00634 #define  UNIT_Length_Kilometer         3
00635 #define  UNIT_Length_Centimeter        1
00636 #define  UNIT_Length_Millimeter        2
00637 #define  UNIT_Length_Micrometer        8
00638 #define  UNIT_Length_Nanometer         9
00639 #define  UNIT_Length_Foot              4
00640 #define  UNIT_Length_Inch              6
00641 
00642 #define  UNIT_Distance_Meters          UNIT_Length_Meter
00643 #define  UNIT_Distance_Kilometers      UNIT_Length_Kilometer
00644 #define  UNIT_Distance_Centimeters     UNIT_Length_Centimeter
00645 #define  UNIT_Distance_Millimeters     UNIT_Length_Millimeter
00646 #define  UNIT_Distance_Micrometers     UNIT_Length_Micrometer
00647 #define  UNIT_Distance_Nanometers      UNIT_Length_Nanometer
00648 #define  UNIT_Distance_Feet            UNIT_Length_Foot
00649 #define  UNIT_Distance_Inches          UNIT_Length_Inch
00650 
00651 #define  UNIT_PlaneAngle_Degree        0
00652 #define  UNIT_PlaneAngle_Degrees       0
00653 #define  UNIT_PlaneAngle_Radian        1
00654 #define  UNIT_PlaneAngle_Radians       1
00655 
00656 #define  UNIT_Time_Second              0
00657 #define  UNIT_Time_Seconds             0
00658 #define  UNIT_Time_Millisecond         6
00659 #define  UNIT_Time_Milliseconds        6
00660 #define  UNIT_Time_Microsecond         7
00661 #define  UNIT_Time_Microseconds        7
00662 
00663 #define  UNIT_Volume_CubicMeter        0
00664 #define  UNIT_Volume_CubicMeters       0
00665 
00666 #undef   CLASSLIBEXPORT
00667 
00668 #endif   //!< INC_MI32_UOM_H

Generated on Thu Aug 12 06:19:11 2004 for TNTsdk by doxygen 1.3.4-20031026