Russian Qt Forum

Программирование => Общий => Тема начата: Igors от Декабрь 12, 2016, 15:39



Название: Импорт данных дерева/иерерхии
Отправлено: Igors от Декабрь 12, 2016, 15:39
Добрый день

Есть иерархия объектов (сцена), в общем дерево (необязательно "ветвистое" - могут быть все "корни"). И есть файл в котором тоже записана иерархия объектов. Формат файла не мой и не совпадает с форматом моих объектов.  Задача прочитать из файла набор данных для каждого объекта (напр позиция, вращение, масштаб) и присвоить их объектам сцены. Нужно как-то "сбить" 2 дерева чтобы знать какой объект файла соответствует какому сцены.

И здесь и там объекты имеют имена, но они не уникальны. Как организовать "сбивку" и какой UI дать юзеру?  Да, интересует толковая "постановка"

Спасибо


Название: Re: Импорт данных дерева/иерерхии
Отправлено: Авварон от Декабрь 12, 2016, 18:16
Что является ключом элемента в файле?


Название: Re: Импорт данных дерева/иерерхии
Отправлено: Igors от Декабрь 14, 2016, 16:18
Что является ключом элемента в файле?
Это постановка, что решите то и будет


Название: Re: Импорт данных дерева/иерерхии
Отправлено: Авварон от Декабрь 14, 2016, 16:29
Вы ж сказали что формат не ваш


Название: Re: Импорт данных дерева/иерерхии
Отправлено: Igors от Декабрь 14, 2016, 16:36
Вы ж сказали что формат не ваш
Не мой, Autodesk. Ну везде у объекта есть имя, тип, трансформы и дальше в зависимости от типа. Как-то с общими вещами совсем мрачно  :'(


Название: Re: Импорт данных дерева/иерерхии
Отправлено: Racheengel от Декабрь 14, 2016, 19:40
Что значит имена не уникальны? Могут быть 2 объекта с одним именем и типом в пределах файла?
Если так, то юзать MultiMap с ключом по имени имхо ок.


Название: Re: Импорт данных дерева/иерерхии
Отправлено: Igors от Декабрь 15, 2016, 12:37
Что значит имена не уникальны? Могут быть 2 объекта с одним именем и типом в пределах файла?
Да, как в пределах файла, так и сцены, а что тут такого? Любое приложение рисует объекты в окнах где могут быть интерактивно выбраны и всегда есть их полный список. Поэтому нет необходимости еще их как-то идентифицировать для юзера.

Если так, то юзать MultiMap с ключом по имени имхо ок.
Не очень понимаю чему посвящен этот ключ. Думал может как-то задействовать иерархию. Отсутствие объекта в сцене не является преступлением, задача дать юзеру понять что найдено (и данные будут импортированы), а что нет


Название: Re: Импорт данных дерева/иерерхии
Отправлено: Igors от Декабрь 16, 2016, 13:20
Собсно ничего супер-пупер я не спрашиваю, задачка - типичная "бытовуха" (ну или "логика ГУЯ" для солидности  :)). Прикинем пару вариантов

1) Вообще без UI. Взяли имена объектов в файле, нашли объекты с теми же именами и типами в сцене, и импортировали данные. Ну так явно не годится - хз что сделала эта операция

2) Стало быть, нужно показать юзверю что есть в файле и что там "найдено". Видимо табличкой. И вот тут не очень ясно что и как. Напр показать дерево "все что есть в файле" с учетом иерархии. Логично, но очень может быть что многие ноды дерева не могут быть импортированы - не имеют нужных данных или в сцене нет с таким именем. Ну и хз по каким прынцыпам определять "найден", напр

File
node_1        // есть в сцене но нет данных для импорта,
  --node_2   // этого в сцене нет
    --node_3  // этот есть в сцене и данные имеет

Как должно выглядеть UI ? Может ли юзер импортировать данные node_3? А если в сцене он совсем не в такой цепочке иерархии?



Название: Re: Импорт данных дерева/иерерхии
Отправлено: Racheengel от Декабрь 16, 2016, 15:40
Я бы сделал деревом с разноцветными (разноиконными) нодами.
То есть показать всю структуру, как она будет выглядеть после объединения.
а дальше варинты разных цветов нодов для:
- нормально импортированных объектов
- несуществующих в файле
- существующих только в файле
- дубликатов по имени
- конфликтов (не те данные и т.д.)

И предоставить юзеру варианты действий, например:
- при конфликте оставить только элемент сцены, или перезаписать элементом из файла, или сделать копию с др.именем
- удалить или оставить те, которые есть только в файле или только в сцене
и т.д.

Ну т.е. нод3 юзер может импортировать, если захочет (поставит галочку "перезаписать из файла").


Название: Re: Импорт данных дерева/иерерхии
Отправлено: Igors от Декабрь 16, 2016, 17:18
Я бы сделал деревом с разноцветными (разноиконными) нодами.
То есть показать всю структуру, как она будет выглядеть после объединения.
а дальше варинты разных цветов нодов для:
- нормально импортированных объектов
- несуществующих в файле
- существующих только в файле
- дубликатов по имени
- конфликтов (не те данные и т.д.)
Это далеко за рамками задачи - в сцене иерархия и все остальное остаются неизменны, никаких новых объектов не добавляется, только данные существующих объектов могут быть загружены из файла. Также "вся структура" (сцены) может быть намного больше содержимого файла (хотя может и наоборот).