[852] | 1 | #include "transformanimation.h"
|
---|
| 2 | #include <fstream>
|
---|
| 3 |
|
---|
| 4 | using namespace std;
|
---|
| 5 |
|
---|
| 6 | TransformAnimation::TransformAnimation(void)
|
---|
| 7 | {
|
---|
| 8 | }
|
---|
| 9 |
|
---|
| 10 | TransformAnimation::~TransformAnimation(void)
|
---|
| 11 | {
|
---|
| 12 | }
|
---|
| 13 |
|
---|
| 14 | void TransformAnimation::Load(char *filename)
|
---|
| 15 | {
|
---|
| 16 | fprintf(stderr, "Loading scene:");
|
---|
| 17 | fprintf(stderr, filename);
|
---|
| 18 |
|
---|
| 19 | ifstream file(filename);
|
---|
| 20 |
|
---|
| 21 | char* tempchar=new char[1000];
|
---|
| 22 | file.getline(tempchar,500,'\n');
|
---|
| 23 | sscanf(tempchar,"framecount %ui",&framecount);
|
---|
| 24 |
|
---|
| 25 | translations=new Vector[framecount];
|
---|
| 26 | rotations=new Vector[framecount];
|
---|
| 27 | matrixes=new float[framecount*16];
|
---|
| 28 | quaternions=new float[framecount*4];
|
---|
| 29 |
|
---|
| 30 | for(int i=0;i<framecount;i++)
|
---|
| 31 | {
|
---|
| 32 | file.getline(tempchar,500,'\n');//frame xxx
|
---|
| 33 | file.getline(tempchar,500,'\n');//translate x x x
|
---|
| 34 | file.getline(tempchar,500,'\n');
|
---|
| 35 | sscanf(tempchar,"realtranslate %f %f %f",&translations[i].x,
|
---|
| 36 | &translations[i].y,
|
---|
| 37 | &translations[i].z);
|
---|
| 38 | file.getline(tempchar,500,'\n');
|
---|
| 39 | sscanf(tempchar,"rotate %f %f %f",&rotations[i].x,
|
---|
| 40 | &rotations[i].y,
|
---|
| 41 | &rotations[i].z);
|
---|
| 42 | /*
|
---|
| 43 | file.getline(tempchar,1000,'\n');
|
---|
| 44 | sscanf(tempchar,"rotate %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f",
|
---|
| 45 | &matrixes[i*16],&matrixes[i*16+1],&matrixes[i*16+2],&matrixes[i*16+3],
|
---|
| 46 | &matrixes[i*16+4],&matrixes[i*16+5],&matrixes[i*16+6],&matrixes[i*16+7],
|
---|
| 47 | &matrixes[i*16+8],&matrixes[i*16+9],&matrixes[i*16+10],&matrixes[i*16+11],
|
---|
| 48 | &matrixes[i*16+12],&matrixes[i*16+3],&matrixes[i*16+14],&matrixes[i*16+15]);
|
---|
| 49 |
|
---|
| 50 | matrixes[i*16]=matrixes[i*16+5]=matrixes[i*16+10]=matrixes[i*16+15]=1;
|
---|
| 51 | matrixes[i*16+2]=matrixes[i*16+1]=matrixes[i*16+11]=matrixes[i*16+6]=matrixes[i*16+3]=matrixes[i*16+4]=matrixes[i*16+7]=matrixes[i*16+8]=matrixes[i*16+9]=0;
|
---|
| 52 |
|
---|
| 53 | matrixes[i*16+12]=translations[i].x;
|
---|
| 54 | matrixes[i*16+13]=translations[i].y;
|
---|
| 55 | matrixes[i*16+14]=translations[i].z;*/
|
---|
| 56 |
|
---|
| 57 | /* file.getline(tempchar,500,'\n');
|
---|
| 58 | sscanf(tempchar,"quaternion %f %f %f %f",&quaternions[i*4],
|
---|
| 59 | &quaternions[i*4+1],
|
---|
| 60 | &quaternions[i*4+2],
|
---|
| 61 | &quaternions[i*4+3]);*/
|
---|
| 62 | }
|
---|
| 63 | file.close();
|
---|
| 64 | } |
---|