# class utils::Interval

## Overview

Holds float interval and performs operations on it. More…

    #include <Interval.h>

    class Interval {
    public:
        // construction

        Interval();
        Interval(const float a, const float b, const float epsilon);
        Interval(const float left, const float right);

        // methods

        bool operator==(const Interval& o) const;
        bool operator!=(const Interval& o) const;
        float GetClamped(const float val) const;
        float NormToValue(const float t) const;
        float ValueToNorm(const float val) const;
        float GetRange() const;
        bool IsEmpty() const;
        float GetMin() const;
        float GetMax() const;
        float GetEpsilon() const;

    protected:
        // fields

        float min_;
        float max_;
        float epsilon_;
    };

## Detailed Documentation

Holds float interval and performs operations on it.

### Construction

    Interval()

Creates a default interval <0,1>.

    Interval(const float a, const float b, const float epsilon)

Creates an interval <a,b> with custom numerical precision (epsilon).

    Interval(const float left, const float right)

Creates an interval <a,b>.

### Methods

    bool operator==(const Interval& o) const

Compares if two intervals are identical.

    bool operator!=(const Interval& o) const

Compares if two intervals are different.

    float GetClamped(const float val) const

Clamps a value to the interval endpoints.

    float NormToValue(const float t) const

Returns real value from the normalized interval parameter.

    float ValueToNorm(const float val) const

Returns normalized interval parameter from the real value.

    float GetRange() const

Returns a distance between interval endpoints.

    bool IsEmpty() const

Check whether the range of interval is zero.

    float GetMin() const

Returns value of a minimal endpoint of the interval.

    float GetMax() const

Returns value of a maximal endpoint of the interval.

    float GetEpsilon() const

Returns numerical precision of the interval.