Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Disa от Апрель 24, 2013, 16:56



Название: Хранение анимации
Отправлено: Disa от Апрель 24, 2013, 16:56
Вопрос не по qt, но лично мне кажется, что не для общего раздела.

Есть различные виды анимации (трансляция, поворот, масштабирование и др.), нужно их выполнять в определенном порядке, с возможностью перекрывания двух и более анимаций. Ну то есть может быть в начале мб трансляция, спустя 5ть кадров начнется поворот, который закончится через 20 кадров. а трансляция продолжится.

Я решил описывать в xml'ке списком, где указывается начальный кадр и длительность (тоже в кадраХ, хотя мб имеет смысл поставить секунды, думаю после тестов будет ясно).

Код
XML
<animation name="Pick">
     <rotation qx="1" qy="0" qz="0" qw="-10" firstFrame="36" framesCount="72"/>
     <translate x="-0.1"  y="0"  z="0" firstFrame="0" framesCount="72"/>
     <translate x="0"  y="0.2"  z="0" firstFrame="73" framesCount="36"/>
</animation>

Вопрос  - в чем это все хранить? Должно быть что-то типа очереди, элементы которой выбираюсь по мере надобности. Пока пришло в голову делать что-то типа unordered_map, c ключем в виде firstFrame, но получается, что тогда нужно будет делать для всех типов анимаций родительский класс, чтобы делать один map для всех и он будет с пустым телом. Мне почему-то это не очень нравится и кажется велосипедом.

Очень буду благодарен любой помощи и идеям :)