Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Чтение анимации из 3ds файла

8.1K
07 ноября 2004 года
dima85
4 / / 04.10.2004
Короче, мне надо в моём курсовике из 3ds загружать анимацию и воспроизводить её на экране.
Я просмотрел много документации и в принципе кое в чём разобрался. Для корректного воспроизведения
анимации надо считать много всяких блоков и среди них блок CHUNK_TRACKROTATE. Он имеет следующую структуру:

word flags; // флаги
byte unknown[8]; // <неизвестно>
dword num; // число ключевых значений
struct { //
dword frame; // кадр данного ключевого значения
word splineflags; // флаги сплайна
float[] splineinfo; // параметры сплайна (кол-во и тип
// зависит от значения splineflags)
vector pos; // положение объекта
} keys[num]; // собственно ключевые значения

Так вот, когда я считываю флаг сплайна(splineflags) он почему-то всегда получается равен нулю (для всех объектов в файле).
Что означает равенство всех параметров сплайна(splineinfo) нулю. Разве такое может быть?!
Я пишу на Builder и вот код, который отвечает за считывание данного блока:

short flag;
long offset;
unsigned int num_rot;

offset=FindChunk(input,WayToORotate); // Находим смещение блока CHUNK_TRACKROTATE в 3DS файле.
if(!offset) return false;
input.seekg(offset); //перемещаемся в точку начала данных


input.ignore(10);
input.read(reinterpret_cast<char*>(&num_rot),sizeof(int)); //считываем число ключевых значений
rotate=new TRotateData[num_rot];

for(unsigned int i=0; i < num_rot; i++)
{
input.ignore(4);
input.read(reinterpret_cast<char*>(&flag),2);
!!! До этого момента всё считывается корректно.
!!! А вот сдесь и происходит некорректное считывание параметра splineflags, так как переменная flag всегда
считывается в 0.

дальше естественно писать код нет смысла, так как считывание всего остального зависит от splineflags.
...
...
...
}

Спецы, помогите пожалуйста разобраться в чём тут дело, а также если у кого есть что-нибудь, что может помочь
мне при написании данной программы скинте на мыло: [email]dimarusakov@mail.ru[/email]

За ранее благодарен.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог