MapSourceNumberToDestinationNumber
(
Double dSourceNumberWithLog,
Double dSourceCalculationNumberWithLog1,
Double dSourceCalculationNumberWithLog2,
Double dDestinationNumber1,
Double dDestinationNumber2,
Boolean bUseLogs
)
{
Double dDestinationNumber;
if (dSourceCalculationNumberWithLog2 ==
dSourceCalculationNumberWithLog1)
{
dDestinationNumber = dDestinationNumber1;
}
else
{
dDestinationNumber =
dDestinationNumber1
+ (dSourceNumberWithLog - dSourceCalculationNumberWithLog1)
* (dDestinationNumber2 - dDestinationNumber1)
/ (dSourceCalculationNumberWithLog2 -
dSourceCalculationNumberWithLog1)
;
}
// Pin the destination number.
if (dDestinationNumber2 >= dDestinationNumber1)
{
dDestinationNumber =
Math.Max(dDestinationNumber, dDestinationNumber1);
dDestinationNumber =
Math.Min(dDestinationNumber, dDestinationNumber2);
}
else
{
dDestinationNumber =
Math.Max(dDestinationNumber, dDestinationNumber2);
dDestinationNumber =
Math.Min(dDestinationNumber, dDestinationNumber1);
}
return (dDestinationNumber);
}