Program Listing for File ColorFunction.h

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

#ifndef INCLUDE_FLAMEGPU_VISUALISER_COLOR_COLORFUNCTION_H_
#define INCLUDE_FLAMEGPU_VISUALISER_COLOR_COLORFUNCTION_H_

#include <string>
#include <typeindex>

namespace flamegpu {
namespace visualiser {

class ColorFunction {
 public:
    virtual std::string getSrc(unsigned int variable_array_len) const = 0;
    virtual std::string getSamplerName() const { return ""; }
    virtual std::string getAgentVariableName() const { return ""; }
    virtual unsigned int getAgentArrayVariableElement() const { return element; }
    virtual std::type_index getAgentVariableRequiredType() const { return std::type_index(typeid(void)); }
    void setAgentArrayVariableElement(const unsigned int _element) { element = _element; }

 protected:
    unsigned int element = 0;
};

}  // namespace visualiser
}  // namespace flamegpu

#endif  // INCLUDE_FLAMEGPU_VISUALISER_COLOR_COLORFUNCTION_H_