Content


NTL
Core
Gradient

Gradient



Gradient class. Use it to store gradient properties of your controls. It shouldn't be overrided because the renderer implementation depends on it.

Gradient require at least 2 points to be drawn. Each point has coordinate and color. Coordinate should be in range 0..1. Depending on gradient type you may draw gradients shown below. In following illustration the first point has green color and the second one has red color.

Gradient types

You can find more information in comments below. Overrided methods can be found in corresponding base class.

class Gradient: public CFeedback
{
public:
    GradientType const &Type; // Type 

    int getPointCount() const; // Return point count 
    Color1D getPoint(const int index) const; // Return point by index 
    Color getColor(float position); // Return calculated color at specified position(position is in range 0..1) 
    const Color1DArray &getSortedPoints(); // Return points sorted by position 

    bool setType(const GradientType value); // Set type 
    bool setPointCount(const int count); // Set point count 
    bool setPoints(const int count, Color1D *points); // Set points 
    bool setPoint(const int index, const Color1D &value); // Set point 
    bool setPoint(const int index, const float position, const Color color); // Set point 
    bool setPointPosition(const int index, const float position); // Set point position 
    bool setPointColor(const int index, const Color color); // Set point color 
    bool setPoints(const Color1DArray &points); // Set points 

    Gradient();
    Gradient(IFeedbackListener *listener); // Create with listener 
    Gradient(const GradientType type, const Color1DArray &points);
    Gradient(const Gradient &other);
    Gradient(Gradient &&other);

    Gradient &operator=(const Gradient &other);
    Gradient &operator=(Gradient &&other);
    Gradient operator-() const; // Return gradient with reversed point order (all point positions changed to 1 - position) 

    bool isEqual(Gradient &other, const float tolerance = ntl::Tolerance<float>); // Check whether gradients are equal 
    bool isNotEqual(Gradient &other, const float tolerance = ntl::Tolerance<float>); // Check whether gradients are not equal 

    void AddPoint(const float position, const Color &color); // Add new point 
    bool DeletePoint(const int index); // Delete point by index 
    bool Clear(); // Delete all points 
    void Reverse(); // Reverse point order (all point positions changed to 1 - position) 
};

Following operators are also available.

std::wostream &operator<<(std::wostream &stream, const Gradient &a); // Output as source code
Namespace: nitisa
Include: Nitisa/Image/Gradient.h