Задание 2. Реализация компонентной архитектуры приложения.
К третьему заданию по машграфу студентам АСВК в рамках практикума добавляются требования:

Реализовать основную функциональность визуализатора в виде отдельного плагина (DLL);
Реализовать как минимум два разных плагина-визуализатора (отличия в сцене, материалах, режимах визуализации и т. д.);
Регистрация плагинов должна быть реализована посредством интерфейсов типа IPluginManager или IKernel (см. презентацию ниже). Более примитивные схемы регистрации плагинов засчитываться не будут;
Компоненты должны лежать в подкаталоге plugins (относительно каталога с исполняемым файлом программы), либо в корне рядом с исполняемым файлом;
Должна быть реализована динамическая подгрузка фильтров путем поиска нужных плагинов во всех dll, которые лежат в папке с плагинами (либо в корне рядом с исполняемым файлом);
Имена dll могут меняться, т.е. от них ничего не должно зависеть (нужно перебирать все dll каталоге и запрашивать регистрацию плагина в основной программе). При запуске программа должна находить все плагины и отображать их имена (например, в меню). При выборе конкретного плагина программа должна использовать для визуализации этот плагин;
Нельзя использовать вспомогательные библиотеки и другие решения для поддержки системы плагинов.