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 | } |
---|