How Clamp Lower/Upper Value? (MapRange)

On 20/01/2018 at 07:26, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   18-19 
Platform:      Mac OSX  ; 
Language(s) :     C++  ;

---------
Hi everybody! A small question.  How clamp Lower/Upper Values in MapRange? 
I rewrite plugin from python to c++. Thanks to all users for helping to me)))

inline Float MapRange(Float value, Float min_input, Float max_input, Float min_output, Float max_output, SplineData *curve = NULL)
{
    Float inrange = max_input - min_input;
    
    if (CompareFloatTolerant(inrange, 0.0))
    {
        value = 0.0;
    }
    else
    {
        value = (value - min_input) / inrange;
    }
    
    if (curve)
    {
        value = curve->GetPoint(value).y;
    }
    
    return  min_output + (max_output - min_output) * value;
}

I took the source code here https://c4dprogramming.wordpress.com/2012/09/13/range-mapping/#more-98

On 22/01/2018 at 02:39, xxxxxxxx wrote:

Hi,

You can simply use ClampValue().

On 22/01/2018 at 03:02, xxxxxxxx wrote:

Can u give me a example please? (How to use ClampValue())

On 22/01/2018 at 03:33, xxxxxxxx wrote:

ClampValue(value, lowerLimit, upperLimit) returns:

  • lowerLimit if value is less than lowerLimit
  • upperLimit if value is greater than upperLimit
  • else value