Russian Qt Forum
Ноябрь 22, 2024, 15:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Импорт animation curves  (Прочитано 1857 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Декабрь 08, 2016, 12:51 »

Добрый день

Animation Curve - это серия/контейнер ключей анимации (ну или контрольных точек) для интерполяции данных. Обратившись к curve можно узнать значение для заданного времени t. Псевдокод ключа
Код
C++ (Qt)
struct CKey {
 Time m_time;   // время ключа
 float m_val;     // значение для времени m_time
 Type m_type;  // тип интерполяции (линейный, кубик, Безье и др)
 float m_bias, m_tension ..  // доп данные для кубика и др
};
Во входном формате m_val может быть только float. В выходном (в который надо сконвертировать) это может быть
- float
- QVector3D
- QColor(1) // цвет без альфы
- QColor(2) // цвет с альфой

Если выходной тип не float то находим все нужные входные curves и собираем из них одну. Напр выходная кривая должна иметь значения QVector3D - ищем входные кривые x, y, z. Если ни одной нет - ну значит и выходной нет. Если хоть одна входная есть - "собираем" выходную. Напр есть x и z - объединяем/сливаем ключи, вместо отсутствующего "y" используем дефаулт (известен)

Ну начал я писать все это объединение/слияние для типа QVector3D - и застрял на неск дней. Теперь, когда виден конец, задумался - а что же буду делать с остальными типами? "В лоб" (переписать для каждого типа) не хочется, там сотни строк. С др стороны template - ну хз, подходит ли. Напр для float многочисленные заботы со "сборкой" выходной кривой из 1 до 3 исходных - лишено смысла. QVector3D и QColor(1) наверное обобщатся хорошо, а QColor(2) не очень.

В общем стоит ли здесь извиваться с template? Или можно по-другому (тогда как)?

Спасибо
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.131 секунд. Запросов: 23.