Xinqi Bao's Git

README.md: updated paper url
[XbSlicer.git] / src / Triangle.cc
1 #include "Triangle.hh"
2
3 #include <iostream>
4
5 #include "BufferReadBinary.hh"
6 #include "Vec3d.hh"
7
8 std::istream& operator>>(std::istream& s, Skip& skip)
9 {
10 while (isspace(s.get()) && !s.eof())
11 ;
12 while (!isspace(s.get()) && !s.eof())
13 ;
14 return s;
15 }
16 static Skip skip;
17
18 Triangle::Triangle() {}
19
20 Triangle::Triangle(std::istream& s)
21 {
22 s >> skip >> skip >> normal;
23 s.ignore(1);
24 s.ignore(256, '\n');
25 s >> skip >> v1;
26 s >> skip >> v2;
27 s >> skip >> v3;
28 s.ignore(1);
29 s.ignore(256, '\n');
30 s.ignore(256, '\n');
31 }
32
33 Triangle::Triangle(BufferReadBinary& buffer)
34 {
35 normal.readBuffer(buffer);
36 v1.readBuffer(buffer);
37 v2.readBuffer(buffer);
38 v3.readBuffer(buffer);
39 buffer.step2Bytes();
40 }
41
42 Triangle::Triangle(Vec3d& normal, Vec3d& v1, Vec3d& v2, Vec3d& v3)
43 : normal(normal), v1(v1), v2(v2), v3(v3)
44 {
45 }
46
47 std::ostream& operator<<(std::ostream& s, Triangle& tri)
48 {
49 return s << "normal: " << tri.normal << '\n'
50 << "vertex: " << tri.v1 << '\n'
51 << "vertex: " << tri.v2 << '\n'
52 << "vertex: " << tri.v3 << '\n';
53 }