#pragma once

#include "geometry_common.h"
#include <string>
#include <vector>
#include <map>

#include "color.h"
#include "label_names.h"



class GEOMETRY_API LabelStore
{
public:
	static void			initialize();
	static std::string	title() { return "[LabelStore]: "; }

	static std::string	what_label(int idx);
	static int			what_index(const std::string& label);

	static Colorf		what_color(int idx);
	static Colorf		what_color(const std::string& label);

	// check when training
	static bool			is_label_valid(const std::string& label);

	static int			num_valid_labels();

private:
	static bool		initialized_;
	static std::map<std::string, int>		label_to_index_;
	static std::map<std::string, Colorf>	label_to_color_;
};

