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