zub писал(а):>>Их зависимости?
поясни?
Есть же схема классов, желательно с описанием зачем они нужны. Хотябы чтобы можно сориентироваться и не заблудится. Не разгадывать логику программиста который писал. То есть логика должна иметь описательную часть.
Меня интересует механика отображения, как в OpenGL уходят данные, откуда берутся и что нужно оптимизировать.
Cad-овский подход он может быть своеобразный. Сильно отличен например от дизайнерских программ.
Добавлено спустя 5 минут 39 секунд:zub писал(а):движек - сложно, местами нелогично - без меня там ловить нечего.
Как раз это нужно описать.
zub писал(а):команды - процедуры те что вызываются при кликах на кнопки и при вводе их имен в комстроку - "мясо" зкада
тем более все подвязано к скрипам. На сколько я понял - там вообще оболочка, где есть свой язык и все строится на основе. Как на подобии 1Ски.
Добавлено спустя 54 минуты 30 секунд:Все таки вижу, что нужно заново переписать проект. То есть форкнуть. Нет, конечно пусть ZCad 1.0 живет своей жизнью и даже развивается.
А все лучшее перенести в ZCad 2.0.
Какой может быть ZCad 2.0?
Я думаю что он должен быть модульным. Не обязательно чтобы только один человек на планете земля, понимал структуру этой программы. К коду могли быть доступны все кто желает поучаствовать.
Отсюда проще разбить на модули и писать код с описанием. Использовать например Doxygen(система документирования исходных текстов).
Зачем нужен модульный подход - сам проект может поделен на части, над частями могут работать разные люди. А не один единственный человек. Тем самым, можно назначать ответственных за дальнейшее развитие модулей. При этом некоторые модули могут быть "недоделанными" или "устаревшими", требующее исключить или добавить участки кода, оптимизировать - но на весь проект не оказывает существенное зависимость. Это части.
Какие могут быть модули:
1) числа. Если необходимо работать "с произвольной точностью" числами, допустим нужно подключить библиотеку GMP - то весь проект переходит на эти числа.
2) математика. Если подключен числа gmp - то используется определенные функции.
3) это сам CAD - примитивы, группы, классы специфичны для CAD.
...
7) визуализация OpenGL/DirectX..
печать.
9) форматы упаковки. конвертация
- на самом деле ZCad уже многими этим обладает. Но он не "дружественный".