История изменений
Исправление shimshimshim, (текущая версия) :
Пусть ядро вычисляет что вычисляется. Получает задачу, выдает ответ в каком-то удобном тебе формате, можно даже асинхронно. Потом с этим готовым оттестированным ядром работаешь хочешь из консольной обвязки, хочешь из gui с окошками, а я бы так вообще взял встраиваемый веб-сервер и работал бы из браузера. Отдельно пишешь конвертер из формата который понимает ядро в формат экспорта и например в json который можно загрузить в браузер и отрисовать 3d-библиотекой javascript. Ядро работает только с промежуточным форматом, ни про какие окошки, САПР и прочее оно не знает. Типа функция посчитать_краску_на_стене - принимает координаты многоугольника пола, высоту стен, массив размеров проемов в стене, количество слоев, для каждого слоя расход краски, % запаса и выдает число. Оттестируешь эту математику, поймешь какие данные нужны, потом будешь думать как это ввести и отрисовать. Для тестирования можно по быстрому накидать консольный интерфейс с пайпами.
Окошки в ядро тащить не надо если конечно не пишешь менеджер этих самых окошек.
Квартиру представляешь как набор прямоугольников или выпуклых многогранников. Плюс проемы в стене - окна и двери. Свой 3д-движок с нуля я бы не стал делать, это тот еще гемор, можно увязнуть надолго.
Делать иерархию классов для материалов, типа «жидкость» и наследники в виде краски с расходом в литрах или «напольное покрытие» с полем «высота» я бы тоже не стал. Надо будет - сделаешь потом рефакторинг когда почувствуешь что часто пишешь одно и то же.
Исправление shimshimshim, :
Пусть ядро вычисляет что вычисляется. Получает задачу, выдает ответ в каком-то удобном тебе формате, можно даже асинхронно. Потом с этим готовым оттестированным ядром работаешь хочешь из консольной обвязки, хочешь из gui с окошками, а я бы так вообще взял встраиваемый веб-сервер и работал бы из браузера. Отдельно пишешь конвертер из формата который понимает ядро в формат экспорта и например в json который можно загрузить в браузер и отрисовать 3d-библиотекой javascript. Ядро работает только с промежуточным форматом, ни про какие окошки, САПР и прочее оно не знает. Типа функция посчитать_краску_на_стене - принимает координаты многоугольника пола, высоту стен, массив размеров проемов в стене, количество слоев, для каждого слоя расход краски, % запаса и выдает число. Оттестируешь эту математику, поймешь какие данные нужны, потом будешь думать как это ввести и отрисовать. Для тестирования можно по быстрому накидать консольный интерфейс с пайпами.
Окошки в ядро тащить не надо если конечно не пишешь менеджер этих самых окошек.
Квартиру представляешь как набор прямоугольников или выпуклых многогранников. Плюч проемы в стене - окна и двери. Свой 3д-движок с нуля я бы не стал делать, это тот еще гемор, можно увязнуть надолго.
Исправление shimshimshim, :
Пусть ядро вычисляет что вычисляется. Получает задачу, выдает ответ в каком-то удобном тебе формате, можно даже асинхронно. Потом с этим готовым оттестированным ядром работаешь хочешь из консольной обвязки, хочешь из gui с окошками, а я бы так вообще взял встраиваемый веб-сервер и работал бы из браузера. Отдельно пишешь конвертер из формата который понимает ядро в формат экспорта и например в json который можно загрузить в браузер и отрисовать 3d-библиотекой javascript. Ядро работает только с промежуточным форматом, ни про какие окошки, САПР и прочее оно не знает. Типа функция посчитать_краску_на_стене - принимает координаты многоугольника пола, высоту стен, массив размеров проемов в стене, количество слоев, для каждого слоя расход краски, % запаса и выдает число. Оттестируешь эту математику, поймешь какие данные нужны, потом будешь думать как это ввести и отрисовать. Для тестирования можно по быстрому накидать консольный интерфейс с пайпами.
Окошки в ядро тащить не надо если конечно не пишешь менеджер этих самых окошек.
Исходная версия shimshimshim, :
Пусть ядро вычисляет что вычисляется. Получает задачу, выдает ответ в каком-то удобном тебе формате, можно даже асинхронно. Потом с этим готовым оттестированным ядром работаешь хочешь из консольной обвязки, хочешь из gui с окошками, а я бы так вообще взял встраиваемый веб-сервер и работал бы из браузера. Отдельно пишешь конвертер из формата который выдает ядро в формат экспорта и например в json который можно загрузить в браузер и отрисовать 3d-библиотекой javascript. Ядро работает только с промежуточным форматом, ни про какие окошки, САПР и прочее оно не знает. Типа функция посчитать_краску_на_стене - принимает координаты многоугольника пола, высоту стен, массив размеров проемов в стене, количество слоев, для каждого слоя расход краски, % запаса и выдает число. Оттестируешь эту математику, поймешь какие данные нужны, потом будешь думать как это ввести и отрисовать. Для тестирования можно по быстрому накидать консольный интерфейс с пайпами.
Окошки в ядро тащить не надо если конечно не пишешь менеджер этих самых окошек.