Program Listing for File ViridisInterpolation.h

Return to documentation for file (include/flamegpu/visualiser/color/ViridisInterpolation.h)

#ifndef INCLUDE_FLAMEGPU_VISUALISER_COLOR_VIRIDISINTERPOLATION_H_
#define INCLUDE_FLAMEGPU_VISUALISER_COLOR_VIRIDISINTERPOLATION_H_

#include <string>
#include <array>

#include "flamegpu/visualiser/color/ColorFunction.h"
#include "flamegpu/visualiser/color/Color.h"

namespace flamegpu {
namespace visualiser {

class ViridisInterpolation : public ColorFunction {
    friend class Viridis;

 public:
    explicit ViridisInterpolation(const std::string& variable_name, const float& min_bound = 0.0f, const float& max_bound = 1.0f);
    ViridisInterpolation& setBounds(const float& min_bound, const float& max_bound);
    std::string getSrc(unsigned int array_len) const override;
    std::string getSamplerName() const override;
    std::string getAgentVariableName() const override;
    std::type_index getAgentVariableRequiredType() const override;
    static const std::array<const Color, 256>& rawColors();

 private:
    float min_bound = 0.0f, max_bound = 1.0f;
    const std::string variable_name;
    bool invert_palette;
};

}  // namespace visualiser
}  // namespace flamegpu

#endif  // INCLUDE_FLAMEGPU_VISUALISER_COLOR_VIRIDISINTERPOLATION_H_