Пишу свою библиотеку, работающую с цветом (операции в различных цветовых пространствах), пишу на C#, в том числе и с целью освоить язык (новый для меня), и разобраться в деталях в Color Management'е.
Вот только до сих пор в раздумьях, как это реализовать, с чего начать. Для одних задач будет оптимальнее использовать в качестве основного представления цвета RGB, в других LAB, в третьих LCh (для тех, кто не в теме, это, примитивно говоря «Lab с цветом в полярных координатах»). Это библиотека. Пользователь должен выбирать сам, что ему важнее, какие операции над цветом в каком формате больше всего съедают время.
Может, просто взять, и сделать что то вроде в теле класса?
#if LAB_MAIN_FORMAT
//...
#elif RGB_MAIN_FORMAT
//...
#elif LCh_MAIN_FORMAT
//...
#endif
Да, буду рад конкретным ссылкам на статьи, литературу, где можно найти описание решения схожих задач.
Если вопрос кажется вам глупым, прошу не пинать, а внятно объяснить.