#pragma once

#include "../../../include/dv-processing/visualization/colors.hpp"

#include <pybind11/pybind11.h>

namespace py = pybind11;

/**
 * @brief Bind visualization::colors class to python
 * @param m pybind The module to bind to
 */
void bind_colors(py::module &m) {
	using pybind11::operator""_a;

	m.def("black", []() {
		return dv::visualization::colors::black;
	});
	m.def("darkGray", []() {
		return dv::visualization::colors::darkGray;
	});
	m.def("gray", []() {
		return dv::visualization::colors::gray;
	});
	m.def("silver", []() {
		return dv::visualization::colors::silver;
	});
	m.def("white", []() {
		return dv::visualization::colors::white;
	});
	m.def("red", []() {
		return dv::visualization::colors::red;
	});
	m.def("lime", []() {
		return dv::visualization::colors::lime;
	});
	m.def("blue", []() {
		return dv::visualization::colors::blue;
	});
	m.def("yellow", []() {
		return dv::visualization::colors::yellow;
	});
	m.def("cyan", []() {
		return dv::visualization::colors::cyan;
	});
	m.def("magenta", []() {
		return dv::visualization::colors::magenta;
	});
	m.def("maroon", []() {
		return dv::visualization::colors::maroon;
	});
	m.def("green", []() {
		return dv::visualization::colors::green;
	});
	m.def("navy", []() {
		return dv::visualization::colors::navy;
	});
	m.def("iniBlue", []() {
		return dv::visualization::colors::iniBlue;
	});
	m.def("someNeonColor", &dv::visualization::colors::someNeonColor, "someNumber"_a);
}
