Added support for the liter=l unit (0.001 m3)

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@3277 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 48cbc26139d1bce114bc2543aa3d606ededb35fd
Former-commit-id: 263551f96ab3ff20a458908b7614e2fd2853624b
This commit is contained in:
pouillot 2011-01-23 12:54:03 +00:00
parent a2a1795de8
commit fbe5de5d93

View file

@ -1865,7 +1865,7 @@ void GfParmReleaseHandle (void *parmHandle)
static void static void
evalUnit (char *unit, tdble *dest, int flg) evalUnit (char *unit, tdble *dest, int invert)
{ {
tdble coeff = 1.0; tdble coeff = 1.0;
@ -1899,17 +1899,19 @@ evalUnit (char *unit, tdble *dest, int flg)
coeff = 1000.0; /* Pa */ coeff = 1000.0; /* Pa */
} else if (strcmp(unit, "MPa") == 0) { } else if (strcmp(unit, "MPa") == 0) {
coeff = 1000000.0; /* Pa */ coeff = 1000000.0; /* Pa */
} else if ((strcmp(unit, "PSI") == 0) || (strcmp(unit, "psi") == 0)){ } else if ((strcmp(unit, "psi") == 0) || (strcmp(unit, "PSI") == 0)){
coeff = 6894.76f; /* Pa */ coeff = 6894.76f; /* Pa */
} else if ((strcmp(unit, "rpm") == 0) || (strcmp(unit, "RPM") == 0)) { } else if ((strcmp(unit, "rpm") == 0) || (strcmp(unit, "RPM") == 0)) {
coeff = 0.104719755f; /* rad/s */ coeff = 0.104719755f; /* rad/s */
} else if ((strcmp(unit, "percent") == 0) || (strcmp(unit, "%") == 0)) { } else if ((strcmp(unit, "%") == 0) || (strcmp(unit, "percent") == 0)) {
coeff = 0.01f; coeff = 0.01f;
} else if ((strcmp(unit, "mph") == 0) || (strcmp(unit, "MPH") == 0)) { } else if ((strcmp(unit, "mph") == 0) || (strcmp(unit, "MPH") == 0)) {
coeff = 0.44704f; /* m/s */ coeff = 0.44704f; /* m/s */
} else if ((strcmp(unit, "l") == 0) || (strcmp(unit, "litre") == 0)) {
coeff = 0.001f; /* m3 */
} }
if (flg) { if (invert) {
*dest /= coeff; *dest /= coeff;
} else { } else {
*dest *= coeff; *dest *= coeff;
@ -1924,11 +1926,12 @@ evalUnit (char *unit, tdble *dest, int flg)
@param val value in units @param val value in units
@return the value in corresponding SI unit @return the value in corresponding SI unit
@warning The supported units are: @warning The supported units are:
<br><ul><li><b>feet</b> or <b>ft</b> converted to <b>m</b></li> <br><ul><li><b>feet</b> or <b>ft</b> converted to <b>m</b></li>
<li><b>inches</b> or <b>in</b> converted to <b>m</b></li> <li><b>inches</b> or <b>in</b> converted to <b>m</b></li>
<li><b>lbs</b> converted to <b>kg</b></li> <li><b>lbs</b> converted to <b>kg</b></li>
<li><b>slug</b> or <b>slugs</b> converted to <b>kg</b></li> <li><b>slug</b> or <b>slugs</b> converted to <b>kg</b></li>
<li><b>h</b> or <b>hours</b> converted to <b>s</b></li> <li><b>h</b> or <b>hours</b> converted to <b>s</b></li>
<li><b>litre</b> or <b>l</b> converted to <b>m3</b></li>
<li><b>day</b> or <b>days</b> converted to <b>s</b></li> <li><b>day</b> or <b>days</b> converted to <b>s</b></li>
<li><b>km</b> converted to <b>m</b></li> <li><b>km</b> converted to <b>m</b></li>
<li><b>cm</b> converted to <b>m</b></li> <li><b>cm</b> converted to <b>m</b></li>
@ -1936,7 +1939,8 @@ evalUnit (char *unit, tdble *dest, int flg)
<li><b>kPa</b> converted to <b>Pa</b></li> <li><b>kPa</b> converted to <b>Pa</b></li>
<li><b>deg</b> converted to <b>rad</b></li> <li><b>deg</b> converted to <b>rad</b></li>
<li><b>rpm</b> or <b>RPM</b> converted to <b>rad/s</b></li> <li><b>rpm</b> or <b>RPM</b> converted to <b>rad/s</b></li>
<li><b>percent</b> or <b>%</b> divided by <b>100</b></li></ul> <li><b>percent</b> or <b>%</b> divided by <b>100</b></li>
</ul>
@see GfParmSI2Unit @see GfParmSI2Unit
*/ */
tdble tdble
@ -2631,8 +2635,8 @@ GfParmGetNum (void *handle, char const *path, const char *key, const char *unit,
{ {
struct parmHandle *parmHandle = (struct parmHandle *)handle; struct parmHandle *parmHandle = (struct parmHandle *)handle;
struct parmHeader *conf; struct parmHeader *conf;
struct param *param; struct param *param;
tdble val; tdble val;
if ((parmHandle == NULL) || (parmHandle->magic != PARM_MAGIC)) { if ((parmHandle == NULL) || (parmHandle->magic != PARM_MAGIC)) {
GfLogError ("GfParmGetNum: bad handle (%p)\n", parmHandle); GfLogError ("GfParmGetNum: bad handle (%p)\n", parmHandle);
@ -2655,9 +2659,10 @@ GfParmGetNum (void *handle, char const *path, const char *key, const char *unit,
if (param->type == P_FORM) if (param->type == P_FORM)
{ {
val = deflt; val = deflt;
//GfFormCalcFuncNew( param->formula, parmHandle, NULL, NULL, NULL, &val, NULL ); //GfFormCalcFuncNew( param->formula, parmHandle, NULL, NULL, NULL, &val, NULL );
GfFormCalcFuncNew( param->formula, parmHandle, path, NULL, NULL, &val, NULL ); GfFormCalcFuncNew( param->formula, parmHandle, path, NULL, NULL, &val, NULL );
} else }
else
{ {
val = param->valnum; val = param->valnum;
} }
@ -2666,6 +2671,7 @@ GfParmGetNum (void *handle, char const *path, const char *key, const char *unit,
{ {
return GfParmSI2Unit(unit, val); return GfParmSI2Unit(unit, val);
} }
return val; return val;
} }