Program Listing for File AutoPalette.h

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

#ifndef INCLUDE_FLAMEGPU_VISUALISER_COLOR_AUTOPALETTE_H_
#define INCLUDE_FLAMEGPU_VISUALISER_COLOR_AUTOPALETTE_H_

#include <vector>

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

namespace flamegpu {
namespace visualiser {

class AutoPalette {
    const std::vector<Color> palette;
    size_t next_index;
 public:
    explicit AutoPalette(const Palette& _palette)
        : palette(_palette.colors())
        , next_index(0) { }
    const Color &next() {
        if (next_index >= palette.size())
            next_index = 0;
        return palette[next_index++];
    }
};

}  // namespace visualiser
}  // namespace flamegpu

#endif  // INCLUDE_FLAMEGPU_VISUALISER_COLOR_AUTOPALETTE_H_