Changeset 382 for trunk


Ignore:
Timestamp:
Mar 28, 2006 10:01:45 AM (18 years ago)
Author:
dkearney
Message:

added angle conversions (rad,deg,grad)

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/core/RpUnits.h

    r262 r382  
    3535#define RP_TYPE_TIME    "time"
    3636#define RP_TYPE_VOLUME  "volume"
     37#define RP_TYPE_ANGLE   "angle"
    3738
    3839
     
    6061        static int addPresetTime();
    6162        static int addPresetVolume();
     63        static int addPresetAngle();
    6264};
    6365
     
    372374        //      "time"                      load units related to time
    373375        //      "volume"                    load units related to volume
     376        //      "angle"                     load units related to angles
    374377        //  (no other groups have been created)
    375378
  • trunk/include/core/RpUnitsStd.h

    r116 r382  
    7777
    7878
    79 
    80 
    81 
     79double rad2deg  (double rad);
     80double deg2rad  (double deg);
     81double rad2grad (double rad);
     82double grad2rad (double grad);
     83double deg2grad (double deg);
     84double grad2deg (double grad);
    8285
    8386
  • trunk/src/core/RpUnits.cc

    r262 r382  
    15141514    }
    15151515    else if (group.compare("volume") == 0) {
    1516         retVal = RpUnitsPreset::addPresetTime();
     1516        retVal = RpUnitsPreset::addPresetVolume();
     1517    }
     1518    else if (group.compare("angle") == 0) {
     1519        retVal = RpUnitsPreset::addPresetAngle();
    15171520    }
    15181521
     
    15391542    result += addPresetEnergy();
    15401543    result += addPresetVolume();
     1544    result += addPresetAngle();
    15411545
    15421546    return 0;
     
    16871691}
    16881692
     1693/**********************************************************************/
     1694// METHOD: addPresetAngle()
     1695/// Add Angle related units to the dictionary
     1696/**
     1697 * Defines the following units:
     1698 *   degrees  (deg)
     1699 *   gradians (grad)
     1700 *   radians  (rad) (and metric extensions)
     1701 *
     1702 * Return codes: 0 success, anything else is error
     1703 */
     1704
     1705int
     1706RpUnitsPreset::addPresetAngle () {
     1707
     1708    RpUnits* degree  = RpUnits::define("deg",  NULL, RP_TYPE_ANGLE);
     1709    RpUnits* gradian = RpUnits::define("grad", NULL, RP_TYPE_ANGLE);
     1710    RpUnits* radian  = RpUnits::define("rad",  NULL, RP_TYPE_ANGLE);
     1711
     1712    RpUnits::makeMetric(radian);
     1713
     1714    // add angle definitions
     1715    RpUnits::define(degree,gradian,deg2grad,grad2deg);
     1716    RpUnits::define(radian,degree,rad2deg,deg2rad);
     1717    RpUnits::define(radian,gradian,rad2grad,grad2rad);
     1718
     1719    return 0;
     1720}
     1721
    16891722// -------------------------------------------------------------------- //
    16901723
  • trunk/src/core/RpUnitsStd.cc

    r116 r382  
    147147double angstrom2meter (double angstrom)
    148148{
    149         return angstrom*(1.0e-10);
     149    return angstrom*(1.0e-10);
    150150}
    151151
    152152double meter2angstrom (double meter)
    153153{
    154         return meter*(1.0e10);
     154    return meter*(1.0e10);
    155155}
    156156
    157157double meter2inch (double meter)
    158158{
    159         return meter*(39.37008);
     159    return meter*(39.37008);
    160160}
    161161
    162162double inch2meter (double in)
    163163{
    164         return (in/(39.37008));
     164    return (in/(39.37008));
    165165}
    166166
    167167double meter2feet (double meter)
    168168{
    169         return (meter*(3.280840));
     169    return (meter*(3.280840));
    170170}
    171171
    172172double feet2meter (double ft)
    173173{
    174         return (ft/(3.280840));
     174    return (ft/(3.280840));
    175175}
    176176
    177177double meter2yard (double meter)
    178178{
    179         return (meter*(1.093613));
     179    return (meter*(1.093613));
    180180}
    181181
    182182double yard2meter (double yd)
    183183{
    184         return (yd/(1.093613));
     184    return (yd/(1.093613));
    185185}
    186186
     
    191191double fahrenheit2centigrade (double F)
    192192{
    193         return ((F-32.0)/(9.0/5.0));
     193    return ((F-32.0)/(9.0/5.0));
    194194}
    195195
    196196double centigrade2fahrenheit (double C)
    197197{
    198         return ((C*(9.0/5.0))+32.0);
     198    return ((C*(9.0/5.0))+32.0);
    199199}
    200200
    201201double centigrade2kelvin (double C)
    202202{
    203         return (C+273.15);
     203    return (C+273.15);
    204204}
    205205
    206206double kelvin2centigrade (double K)
    207207{
    208         return (K-273.15);
     208    return (K-273.15);
    209209}
    210210
    211211double rankine2kelvin (double R)
    212212{
    213         return ((9.0/5.0)*R);
     213    return ((9.0/5.0)*R);
    214214}
    215215
    216216double kelvin2rankine (double K)
    217217{
    218         return ((5.0/9.0)*K);
     218    return ((5.0/9.0)*K);
    219219}
    220220
    221221double fahrenheit2kelvin (double F)
    222222{
    223         return ((F+459.67)*(5.0/9.0));
     223    return ((F+459.67)*(5.0/9.0));
    224224}
    225225
    226226double kelvin2fahrenheit (double K)
    227227{
    228         return (((9.0/5.0)*K)-459.67);
     228    return (((9.0/5.0)*K)-459.67);
    229229}
    230230
     
    235235double electronVolt2joule (double eV)
    236236{
    237         return (eV*1.602177e-19);
     237    return (eV*1.602177e-19);
    238238}
    239239
    240240double joule2electronVolt (double J)
    241241{
    242         return (J/1.602177e-19);
     242    return (J/1.602177e-19);
    243243}
    244244
     
    249249double cubicMeter2usGallon (double m3)
    250250{
    251         return (m3*264.1721);
     251    return (m3*264.1721);
    252252}
    253253
    254254double usGallon2cubicMeter (double gal)
    255255{
    256         return (gal/264.1721);
     256    return (gal/264.1721);
    257257}
    258258
    259259double cubicFeet2usGallon (double ft3)
    260260{
    261         return (ft3*7.48051);
     261    return (ft3*7.48051);
    262262}
    263263
    264264double usGallon2cubicFeet (double gal)
    265265{
    266         return (gal/7.48051);
    267 }
    268 
     266    return (gal/7.48051);
     267}
     268
     269/****************************************
     270 * ANGLE CONVERSIONS
     271 * http://www.metrication.com/
     272 ****************************************/
     273
     274double rad2deg (double rad)
     275{
     276    return (rad*(180.00/M_PI));
     277}
     278
     279double deg2rad (double deg)
     280{
     281    return (deg*(M_PI/180.00));
     282}
     283
     284double rad2grad (double rad)
     285{
     286    return (rad*(200.00/M_PI));
     287}
     288
     289double grad2rad (double grad)
     290{
     291    return (grad*(M_PI/200.00));
     292}
     293
     294double deg2grad (double deg)
     295{
     296    return (deg*(10.00/9.00));
     297}
     298
     299double grad2deg (double grad)
     300{
     301    return (grad*(9.00/10.00));
     302}
    269303
    270304#ifdef __cplusplus
Note: See TracChangeset for help on using the changeset viewer.