1 #include "../include/animorph/TextureVector.h"
2
3 using namespace std;
4 using namespace Animorph;
5
fromUVStream(ifstream & in_stream)6 void TextureVector::fromUVStream (ifstream &in_stream)
7 {
8 unsigned int nr_uv_coord;
9 int n = 0;
10 char buffer[MAX_LINE_BUFFER];
11 float v[4], u[4];
12 TextureVector &texture_vector = (*this);
13
14 while (in_stream.getline (buffer, MAX_LINE_BUFFER))
15 {
16 nr_uv_coord = sscanf (buffer, "%f %f %f %f %f %f %f %f\n",
17 &u[0], &v[0], &u[1], &v[1], &u[2], &v[2], &u[3], &v[3]);
18
19
20 TextureFace texture_face;
21
22 if (nr_uv_coord == 6)
23 {
24 texture_face.push_back (Vector2f(u[0], v[0]));
25 texture_face.push_back (Vector2f(u[1], v[1]));
26 texture_face.push_back (Vector2f(u[2], v[2]));
27 }
28 else if (nr_uv_coord == 8)
29 {
30 texture_face.push_back (Vector2f(u[0], v[0]));
31 texture_face.push_back (Vector2f(u[1], v[1]));
32 texture_face.push_back (Vector2f(u[2], v[2]));
33 texture_face.push_back (Vector2f(u[3], v[3]));
34 }
35
36 texture_vector.push_back (texture_face);
37
38 n++;
39 }
40 }
41
load(const string & filename)42 bool TextureVector::load (const string& filename)
43 {
44 FileReader file_reader;
45
46 file_reader.open (filename);
47
48 if (!file_reader)
49 return false;
50
51 fromUVStream (file_reader);
52
53 return true;
54 }
55