Program Listing for File HSVInterpolation.h
↰ Return to documentation for file (include/flamegpu/visualiser/color/HSVInterpolation.h
)
#ifndef INCLUDE_FLAMEGPU_VISUALISER_COLOR_HSVINTERPOLATION_H_
#define INCLUDE_FLAMEGPU_VISUALISER_COLOR_HSVINTERPOLATION_H_
#include <string>
#include "flamegpu/visualiser/color/ColorFunction.h"
namespace flamegpu {
namespace visualiser {
class HSVInterpolation : public ColorFunction {
public:
static HSVInterpolation REDGREEN(const std::string &variable_name, const float& min_bound = 0.0f, const float& max_bound = 1.0f);
static HSVInterpolation GREENRED(const std::string& variable_name, const float& min_bound = 0.0f, const float& max_bound = 1.0f);
HSVInterpolation(const std::string& variable_name, const float& hMin, const float& hMax, const float& s = 1.0f, const float& v = 0.88f);
HSVInterpolation &setBounds(const float& min_bound, const float& max_bound);
HSVInterpolation& setWrapHue(const bool& _wrapHue);
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;
private:
float min_bound = 0.0f, max_bound = 1.0f;
bool wrap_hue = false;
const float hue_min, hue_max;
const float saturation;
const float val;
const std::string variable_name;
};
} // namespace visualiser
} // namespace flamegpu
#endif // INCLUDE_FLAMEGPU_VISUALISER_COLOR_HSVINTERPOLATION_H_