А это и есть ответ на Ваши замечания. "НЕ объектный" означает "плоский" формат. То есть тупое: поставил кисточку в определённое место, провёл кисточкой до определённого места и т.д.. И всё. Никаких "объектов" там нет, просто последовательность движений кисточкой.
Редактор подразумевает наличие иерархии поименованных объектов со своими свойствами, взаимоотношениями и т.д. Но формат WMF этого не позволяет.
Почему не позволяет? Да, он не хранит имена объектов, но чем это мешает прочитать объект "прямоугольник" и работать с ним интерактивно? Взаимоотношения объектов можно прописывать записями EMR_BEGINPATH/EMR_ENDPATH. Имена в EMF_COMMENT. Конечно, для полноценного редактирования требуется хранить гораздо больше информации, чем кодируется в EMF. Но в EMF информации достаточно, чтобы можно было взять любой корректный EMF файл и извлечь из него информацию о примитивах. Любую другую информацию, необходимую редактору можно хранить в любом удобном формате, хоть тот же xml.
Но я предложил EMF редакторы не из-за их возможности создавать и редактировать EMF файлы, а потому что в них реализована функциональность редактора векторных объектов, т.е. создание примитивов, драгэнддруп, хиттестинг, временные слои, инструменты выбора примитивов, подсветка выбранных объектов, группировка, инструменты для манипуляций примитивами (изменение размеров, формы линий) и т.п. Я предложил отталкиваться от реализованной функциональности.
Ну, если .net не позволяет использовать сторонние библиотеки, тогда о чём вообще весь сыр бор?
Дотнет позволяет использовать сторонние библиотеки. Вопрос в цене. Любые библиотеки на дотнете приклеиваются "затак". С COM-ом и ActiveX дотнет "на ты", и с любой корректно написанной библиотеке на COM никаких проблем не возникает. Некорректные библиотеки COM тоже можно использовать, правда приходится их wrapp-ить частично либо полностью. dll-ки с API функциями прикручиваются более трудоемко. Все остальное прикрутить тоже можно, но это уже из разряда садомазы, т.к. будет требовать разработки прослойки.
А сыр-бор тут о том, что решение требуется именно для дотнета (как я полагаю, ведь обращение было к дотнетчикам)!
При помощи GD можно на лету генерить графику в требуемом разрешении и в требуемых размерах. Это растровая графика? :huh:
По форматам изображений, которые генерит GD ( PNG, JPEG and GIF ) я полагаю, что растровая. Но если GD позволит генерить то, чем можно манипулировать как набором примитивов более высокоуровневыми чем пикселями, то это подойдет.
Тады можно генерить простой HTML со скриптами
![Wink ;) ;)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Или что то ещё.
Проблема не в том, чтобы отобразить граф объектов. Если бы требовалось только отобразить, вполне можно было бы воспользоваться GDI+, доступ к которому в дотнет интегрирован.
Топикстартеру нужна функциональность аки в построителе диаграмм классов в Visual Studio. Близкие аналоги - Visio, Visual Paradigm, Rational Rose, т.п.
Вы считаете, что что-то аналогичное можно сделать на GD?
На HTML со скриптами, это теоретически сделать можно, но вот трудозатраты будут несопоставимы с тем, чтобы написать необходимую функциональность с нуля самому используя подручные средства дотнета!