+ | Triangle intersection

This commit is contained in:
TheRedShip
2025-01-05 23:16:18 +01:00
parent b9b7084a4f
commit 93e9e45224
15 changed files with 797 additions and 30 deletions

View File

@ -39,6 +39,7 @@ struct Vertex {
# include "objects/Sphere.hpp" # include "objects/Sphere.hpp"
# include "objects/Plane.hpp" # include "objects/Plane.hpp"
# include "objects/Quad.hpp" # include "objects/Quad.hpp"
# include "objects/Triangle.hpp"
# include "Camera.hpp" # include "Camera.hpp"
# include "Window.hpp" # include "Window.hpp"

View File

@ -40,6 +40,7 @@ class Object
SPHERE, SPHERE,
PLANE, PLANE,
QUAD, QUAD,
TRIANGLE,
}; };
virtual Type getType() const = 0; virtual Type getType() const = 0;

View File

@ -27,8 +27,8 @@ struct GPUObject
float radius; // sphere float radius; // sphere
alignas(16) glm::vec3 normal; // plane alignas(16) glm::vec3 normal; // plane
alignas(16) glm::vec3 edge1; //quad alignas(16) glm::vec3 vertex1; //quad triangle
alignas(16) glm::vec3 edge2; //quad alignas(16) glm::vec3 vertex2; //quad triangle
int type; int type;
}; };

View File

@ -0,0 +1,71 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* Triangle.hpp :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: ycontre <ycontre@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/12/23 19:12:51 by ycontre #+# #+# */
/* Updated: 2024/12/23 19:47:09 by ycontre ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef RT_TRIANGLE__HPP
# define RT_TRIANGLE__HPP
# include "RT.hpp"
class Triangle : public Object
{
public:
Triangle(std::stringstream &line) : Object(glm::vec3(0.0f), -1)
{
try {
float x, y, z;
float x2, y2, z2;
float x3, y3, z3;
int mat_index;
if (!(line >> x >> y >> z))
throw std::runtime_error("Missing first vertex position");
if (!(line >> x2 >> y2 >> z2))
throw std::runtime_error("Missing second vertex position");
if (!(line >> x3 >> y3 >> z3))
throw std::runtime_error("Missing third vertex position");
if (!(line >> mat_index))
throw std::runtime_error("Missing material properties");
_position = glm::vec3(x, y, z);
_vertex2 = glm::vec3(x2, y2, z2);
_vertex3 = glm::vec3(x3, y3, z3);
_vertex2 -= _position; //optimization
_vertex3 -= _position; //optimization
_normal = glm::normalize(glm::cross(_vertex2, _vertex3)); //optimization
_mat_index = mat_index;
}
catch (const std::exception &e) { throw; }
}
Triangle(const glm::vec3& position, const glm::vec3& vertex2, const glm::vec3& vertex3, const int mat_index)
: Object(position, mat_index), _vertex2(vertex2), _vertex3(vertex3) {}
const glm::vec3 &getVertex2() const { return (_vertex2); }
const glm::vec3 &getVertex3() const { return (_vertex3); }
const glm::vec3 &getNormal() const { return (_normal); }
Type getType() const override { return Type::TRIANGLE; }
private:
glm::vec3 _vertex2;
glm::vec3 _vertex3;
glm::vec3 _normal;
};
#endif

View File

@ -1,11 +1,11 @@
MAT 255 010 010 5 0.0 0.0 MAT 255 010 010 5 0.0 1.0
MAT 010 255 010 5 0.0 0.0 MAT 010 255 010 5 0.0 1.0
MAT 010 010 255 5 0.0 0.0 MAT 010 010 255 5 0.0 1.0
MAT 255 255 255 0 1.0 0.0 MAT 255 255 255 0 1.0 1.0
MAT 255 255 255 0 0.0 0.0 MAT 255 255 255 0 0.0 1.0
sp -0.600 -0.500 -2 1 0 sp -0.600 -0.500 -2 1 0

View File

@ -8,6 +8,8 @@ MAT 100 255 100 0.0 1.0 1.0
MAT 255 255 255 0.0 1.0 1.0 MAT 255 255 255 0.0 1.0 1.0
tr 0 0 0 1 0 0 0 0 1 5
sp 0 -1 0 1 5 sp 0 -1 0 1 5
sp 0 -2 -1 2 2 sp 0 -2 -1 2 2

591
scenes/fox.rt Normal file
View File

@ -0,0 +1,591 @@
CAM -60 100 150
MAT 255 255 255 5.0 0.0 0.0 //white light
MAT 040 150 080 0.0 0.0 0.0 //green
MAT 040 080 150 0.0 0.0 0.0 //blue
MAT 255 255 255 0.0 1.0 0.15 //white
sp 40 100 100 50 0
qu -100 0 -100 200 0 0 0 0 200 1
qu -100 0 -100 200 0 0 0 200 0 2
qu -100 0 -100 0 0 200 0 200 0 3
tr 2.56373 35.214416 -24.954878 0.0 35.722735 -26.395561 -1.899627 42.954819 -41.190285 3
tr 0.0 51.896892 52.404381 6.704248 53.417492 52.455325 4.904160 52.507389 57.364223 3
tr 5.348627 57.736511 58.438560 3.9860 59.59044 61.444350 0.0 56.19730 66.624329 3
tr 3.744807 52.667048 61.826649 5.348627 57.736511 58.438560 1.544795 55.42628 66.616386 3
tr 6.704248 53.417492 52.455325 10.13863 58.609661 51.223545 5.348627 57.736511 58.438560 3
tr 8.293067 52.386982 43.218887 9.988013 56.955790 42.201694 10.13863 58.609661 51.223545 3
tr 5.56289 29.690054 22.504197 3.840238 29.632073 21.957641 4.500369 27.181681 20.904129 3
tr 4.759357 69.991416 51.111190 9.525023 66.221076 48.920918 12.592717 78.907195 50.617198 3
tr 0.0 50.609543 59.65018 4.904160 52.507389 57.364223 3.744807 52.667048 61.826649 3
tr 0.0 50.609543 59.65018 3.744807 52.667048 61.826649 0.0 53.720505 66.624854 3
tr 0.0 48.425144 43.116306 8.293067 52.386982 43.218887 0.0 51.896892 52.404381 3
tr 7.41744 42.900967 -38.332737 3.520885 42.379272 -38.986359 -1.899627 42.954819 -41.190285 3
tr 6.829890 34.808849 -17.463003 5.433793 34.245609 -10.40941 0.0 32.848553 -10.104445 3
tr 0.0 32.848553 -10.104445 0.0 32.890743 -12.748912 6.829890 34.808849 -17.463003 3
tr 2.56373 35.214416 -24.954878 0.940462 33.953442 -17.355101 0.0 33.955035 -17.354838 3
tr 0.0 33.955035 -17.354838 0.0 35.722735 -26.395561 2.56373 35.214416 -24.954878 3
tr 2.56373 35.214416 -24.954878 3.520885 42.379272 -38.986359 4.500137 27.594796 -35.821728 3
tr 3.86478 29.366340 19.452117 1.704136 29.146 15.999356 3.621434 25.564862 16.400618 3
tr 3.900368 15.183628 -70.47957 0.0 14.296407 -70.585594 2.936006 14.774079 -87.992249 3
tr 6.403100 17.834827 -73.160544 3.900368 15.183628 -70.47957 2.936006 14.774079 -87.992249 3
tr 0.0 38.177894 -69.952988 4.769795 23.995514 -79.917061 2.598336 18.470300 -88.558006 3
tr 4.769795 23.995514 -79.917061 6.403100 17.834827 -73.160544 2.936006 14.774079 -87.992249 3
tr 6.404525 34.347115 -10.36317 8.836920 36.580421 -11.934812 5.27300 32.852187 11.318334 3
tr 3.520885 42.379272 -38.986359 2.56373 35.214416 -24.954878 -1.899627 42.954819 -41.190285 3
tr 0.0 36.583880 28.2483 2.183787 35.781075 24.601305 6.766037 37.404408 27.425132 3
tr 0.0 51.896892 52.404381 8.293067 52.386982 43.218887 6.704248 53.417492 52.455325 3
tr 0.0 50.609543 59.65018 0.0 51.896892 52.404381 4.904160 52.507389 57.364223 3
tr 1.544795 55.42628 66.616386 5.348627 57.736511 58.438560 0.0 56.19730 66.624329 3
tr 3.744807 52.667048 61.826649 4.904160 52.507389 57.364223 5.348627 57.736511 58.438560 3
tr 0.0 53.720505 66.624854 3.744807 52.667048 61.826649 1.544795 55.42628 66.616386 3
tr 4.904160 52.507389 57.364223 6.704248 53.417492 52.455325 5.348627 57.736511 58.438560 3
tr 7.16389 46.160693 36.28796 6.766037 37.404408 27.425132 8.642366 49.95309 35.725203 3
tr 6.704248 53.417492 52.455325 8.293067 52.386982 43.218887 10.13863 58.609661 51.223545 3
tr 6.829890 34.808849 -17.463003 0.0 32.890743 -12.748912 3.702704 34.358364 -17.293137 3
tr 0.0 36.583880 28.2483 0.0 32.53508 15.642671 2.183787 35.781075 24.601305 3
tr 4.212159 43.850329 -41.87935 7.41744 42.900967 -38.332737 -1.899627 42.954819 -41.190285 3
tr 6.404525 34.347115 -10.36317 5.433793 34.245609 -10.40941 6.829890 34.808849 -17.463003 3
tr 3.702704 34.358364 -17.293137 0.0 32.890743 -12.748912 0.940462 33.953442 -17.355101 3
tr 3.840238 29.632073 21.957641 2.183787 35.781075 24.601305 3.86478 29.366340 19.452117 3
tr 0.0 20.144981 -89.904999 0.0 38.177894 -69.952988 2.598336 18.470300 -88.558006 3
tr 2.936006 14.774079 -87.992249 0.0 14.296407 -70.585594 0.0 13.995141 -86.311569 3
tr 2.598336 18.470300 -88.558006 4.769795 23.995514 -79.917061 2.936006 14.774079 -87.992249 3
tr 0.0 13.995141 -86.311569 0.0 20.144981 -89.904999 2.598336 18.470300 -88.558006 3
tr 2.936006 14.774079 -87.992249 0.0 13.995141 -86.311569 2.598336 18.470300 -88.558006 3
tr -3.943626 35.214416 -24.954878 -1.899627 42.954819 -41.190285 0.0 35.722735 -26.395561 3
tr 6.766037 37.404408 27.425132 7.16389 46.160693 36.28796 0.0 43.622168 36.291420 3
tr 0.0 43.622168 36.291420 0.0 36.583880 28.2483 6.766037 37.404408 27.425132 3
tr 0.0 51.896892 52.404381 -5.95839 52.507389 57.364223 -7.295751 53.417492 52.455325 3
tr -6.651372 57.736511 58.438560 0.0 56.19730 66.624329 -4.990139 59.59044 61.444350 3
tr -4.255162 52.667048 61.826649 -2.455175 55.42628 66.616386 -6.651372 57.736511 58.438560 3
tr -7.295751 53.417492 52.455325 -6.651372 57.736511 58.438560 -11.986136 58.609661 51.223545 3
tr -9.706932 52.386982 43.218887 -11.986136 58.609661 51.223545 -10.11986 56.955790 42.201694 3
tr -6.943710 29.690054 22.504197 -5.499630 27.181681 20.904129 -4.159761 29.632073 21.957641 3
tr -5.240642 69.991416 51.111190 -13.407282 78.907195 50.617198 -10.474976 66.221076 48.920918 3
tr 0.0 50.609543 59.65018 -4.255162 52.667048 61.826649 -5.95839 52.507389 57.364223 3
tr 0.0 50.609543 59.65018 0.0 53.720505 66.624854 -4.255162 52.667048 61.826649 3
tr 0.0 48.425144 43.116306 0.0 51.896892 52.404381 -9.706932 52.386982 43.218887 3
tr -8.958255 42.900967 -38.332737 -1.899627 42.954819 -41.190285 -4.479142 42.379272 -38.986359 3
tr 0.0 32.890743 -12.748912 0.0 32.848553 -10.104445 -6.566234 34.245609 -10.40941 3
tr -6.566234 34.245609 -10.40941 -7.170109 34.808849 -17.463003 0.0 32.890743 -12.748912 3
tr 0.0 35.722735 -26.395561 0.0 33.955035 -17.354838 -1.59537 33.953442 -17.355070 3
tr -1.59537 33.953442 -17.355070 -3.943626 35.214416 -24.954878 0.0 35.722735 -26.395561 3
tr -3.943626 35.214416 -24.954878 -5.499862 27.594796 -35.821728 -4.479142 42.379272 -38.986359 3
tr -4.913522 29.366340 19.452117 -4.378565 25.564862 16.400618 -2.295863 29.146 15.999356 3
tr -4.99631 15.183628 -70.47957 -3.63993 14.774079 -87.992249 0.0 14.296407 -70.585594 3
tr -7.596928 17.834827 -73.160544 -3.63993 14.774079 -87.992249 -4.99631 15.183628 -70.47957 3
tr 0.0 38.177894 -69.952988 -3.401692 18.470300 -88.558006 -5.230204 23.995514 -79.917061 3
tr -5.230204 23.995514 -79.917061 -3.63993 14.774079 -87.992249 -7.596928 17.834827 -73.160544 3
tr -7.595474 34.347115 -10.36317 -6.972699 32.852187 11.318334 -9.163079 36.580421 -11.934812 3
tr -4.479142 42.379272 -38.986359 -1.899627 42.954819 -41.190285 -3.943626 35.214416 -24.954878 3
tr 0.0 36.583880 28.2483 -7.233932 37.404408 27.425132 -3.816212 35.781075 24.601305 3
tr 0.0 51.896892 52.404381 -7.295751 53.417492 52.455325 -9.706932 52.386982 43.218887 3
tr 0.0 50.609543 59.65018 -5.95839 52.507389 57.364223 0.0 51.896892 52.404381 3
tr -2.455175 55.42628 66.616386 0.0 56.19730 66.624329 -6.651372 57.736511 58.438560 3
tr -4.255162 52.667048 61.826649 -6.651372 57.736511 58.438560 -5.95839 52.507389 57.364223 3
tr 0.0 53.720505 66.624854 -2.455175 55.42628 66.616386 -4.255162 52.667048 61.826649 3
tr -5.95839 52.507389 57.364223 -6.651372 57.736511 58.438560 -7.295751 53.417492 52.455325 3
tr -8.983610 46.160693 36.28796 -9.357633 49.95309 35.725203 -7.233932 37.404408 27.425132 3
tr -7.295751 53.417492 52.455325 -11.986136 58.609661 51.223545 -9.706932 52.386982 43.218887 3
tr -7.170109 34.808849 -17.463003 -4.297295 34.358364 -17.293137 0.0 32.890743 -12.748912 3
tr 0.0 36.583880 28.2483 -3.816212 35.781075 24.601305 0.0 32.53508 15.642671 3
tr -5.587093 43.850329 -41.87935 -1.899627 42.954819 -41.190285 -8.958255 42.900967 -38.332737 3
tr -7.595474 34.347115 -10.36317 -7.170109 34.808849 -17.463003 -6.566234 34.245609 -10.40941 3
tr -4.297295 34.358364 -17.293137 -3.943626 35.214416 -24.954878 -1.59537 33.953442 -17.355070 3
tr -4.159761 29.632073 21.957641 -4.913522 29.366340 19.452117 -3.816212 35.781075 24.601305 3
tr 0.0 20.144981 -89.904999 -3.401692 18.470300 -88.558006 0.0 38.177894 -69.952988 3
tr -3.63993 14.774079 -87.992249 0.0 13.995141 -86.311569 0.0 14.296407 -70.585594 3
tr -3.401692 18.470300 -88.558006 -3.63993 14.774079 -87.992249 -5.230204 23.995514 -79.917061 3
tr 0.0 13.995141 -86.311569 -3.401692 18.470300 -88.558006 0.0 20.144981 -89.904999 3
tr -3.63993 14.774079 -87.992249 -3.401692 18.470300 -88.558006 0.0 13.995141 -86.311569 3
tr -7.233932 37.404408 27.425132 0.0 36.583880 28.2483 0.0 43.622168 36.291420 3
tr 0.0 43.622168 36.291420 -8.983610 46.160693 36.28796 -7.233932 37.404408 27.425132 3
tr 3.840238 29.632073 21.957641 5.56289 29.690054 22.504197 6.766037 37.404408 27.425132 3
tr 6.766037 37.404408 27.425132 2.183787 35.781075 24.601305 3.840238 29.632073 21.957641 3
tr 3.86478 29.366340 19.452117 3.621434 25.564862 16.400618 4.500369 27.181681 20.904129 3
tr 4.500369 27.181681 20.904129 3.840238 29.632073 21.957641 3.86478 29.366340 19.452117 3
tr -4.159761 29.632073 21.957641 -3.816212 35.781075 24.601305 -7.233932 37.404408 27.425132 3
tr -7.233932 37.404408 27.425132 -6.943710 29.690054 22.504197 -4.159761 29.632073 21.957641 3
tr 1.704136 29.146 15.999356 3.86478 29.366340 19.452117 2.183787 35.781075 24.601305 3
tr 2.183787 35.781075 24.601305 0.0 32.53508 15.642671 1.704136 29.146 15.999356 3
tr -2.295863 29.146 15.999356 0.0 32.53508 15.642671 -3.816212 35.781075 24.601305 3
tr -3.816212 35.781075 24.601305 -4.913522 29.366340 19.452117 -2.295863 29.146 15.999356 3
tr -4.913522 29.366340 19.452117 -4.159761 29.632073 21.957641 -5.499630 27.181681 20.904129 3
tr -5.499630 27.181681 20.904129 -4.378565 25.564862 16.400618 -4.913522 29.366340 19.452117 3
tr -9.163079 36.580421 -11.934812 -10.6548 37.712260 -17.443083 -7.170109 34.808849 -17.463003 3
tr -7.170109 34.808849 -17.463003 -7.595474 34.347115 -10.36317 -9.163079 36.580421 -11.934812 3
tr 0.0 32.53508 15.642671 -6.566234 34.245609 -10.40941 0.0 32.848553 -10.104445 3
tr -6.566234 34.245609 -10.40941 0.0 32.53508 15.642671 -6.972699 32.852187 11.318334 3
tr -6.972699 32.852187 11.318334 -7.595474 34.347115 -10.36317 -6.566234 34.245609 -10.40941 3
tr 8.836920 36.580421 -11.934812 6.404525 34.347115 -10.36317 6.829890 34.808849 -17.463003 3
tr 6.829890 34.808849 -17.463003 9.993451 37.712260 -17.443083 8.836920 36.580421 -11.934812 3
tr 0.0 32.53508 15.642671 0.0 32.848553 -10.104445 5.433793 34.245609 -10.40941 3
tr 5.433793 34.245609 -10.40941 6.404525 34.347115 -10.36317 5.27300 32.852187 11.318334 3
tr 5.27300 32.852187 11.318334 0.0 32.53508 15.642671 5.433793 34.245609 -10.40941 3
tr 0.0 32.890743 -12.748912 0.0 33.955035 -17.354838 0.940462 33.953442 -17.355101 3
tr 0.0 32.890743 -12.748912 -1.59537 33.953442 -17.355070 0.0 33.955035 -17.354838 3
tr 0.0 32.890743 -12.748912 -4.297295 34.358364 -17.293137 -1.59537 33.953442 -17.355070 3
tr 2.56373 35.214416 -24.954878 3.702704 34.358364 -17.293137 0.940462 33.953442 -17.355101 3
tr -9.357633 49.95309 35.725203 -8.983610 46.160693 36.28796 -9.706932 52.386982 43.218887 3
tr -9.706932 52.386982 43.218887 -10.11986 56.955790 42.201694 -9.357633 49.95309 35.725203 3
tr -8.983610 46.160693 36.28796 0.0 43.622168 36.291420 0.0 48.425144 43.116306 3
tr 0.0 48.425144 43.116306 -9.706932 52.386982 43.218887 -8.983610 46.160693 36.28796 3
tr 8.642366 49.95309 35.725203 9.988013 56.955790 42.201694 8.293067 52.386982 43.218887 3
tr 8.293067 52.386982 43.218887 7.16389 46.160693 36.28796 8.642366 49.95309 35.725203 3
tr 7.16389 46.160693 36.28796 8.293067 52.386982 43.218887 0.0 48.425144 43.116306 3
tr 0.0 48.425144 43.116306 0.0 43.622168 36.291420 7.16389 46.160693 36.28796 3
tr 4.212159 43.850329 -41.87935 -1.899627 42.954819 -41.190285 0.0 32.943770 -44.257598 3
tr 5.973053 34.281334 -45.56725 4.212159 43.850329 -41.87935 0.0 32.943770 -44.257598 3
tr 5.27300 32.852187 11.318334 8.836920 36.580421 -11.934812 10.21248 37.256515 -11.904078 3
tr 10.21248 37.256515 -11.904078 10.111938 35.768943 10.992324 5.27300 32.852187 11.318334 3
tr 0.0 65.34003 -15.159720 0.0 64.885422 -12.648213 5.984772 60.879215 -12.830322 3
tr 5.984772 60.879215 -12.830322 9.982604 58.756222 -25.962858 0.0 65.34003 -15.159720 3
tr 9.327534 56.691535 -38.280253 10.698391 49.273220 -38.206862 7.32498 48.605991 -41.51181 3
tr 9.982604 58.756222 -25.962858 11.532140 49.646450 -25.345735 10.698391 49.273220 -38.206862 3
tr 10.698391 49.273220 -38.206862 7.41744 42.900967 -38.332737 4.212159 43.850329 -41.87935 3
tr 5.27300 32.852187 11.318334 10.111938 35.768943 10.992324 9.328464 27.981525 13.414047 3
tr 10.67626 60.659022 22.694967 0.0 66.905251 22.630355 0.0 71.519195 32.146743 3
tr 11.207468 53.822937 21.917947 10.67626 60.659022 22.694967 7.787885 66.506470 32.700138 3
tr 10.391251 64.281272 40.747531 7.787885 66.506470 32.700138 4.684775 72.120506 41.261550 3
tr 9.988013 56.955790 42.201694 10.391251 64.281272 40.747531 9.525023 66.221076 48.920918 3
tr 4.684775 72.120506 41.261550 0.0 73.626487 41.172459 0.0 71.232178 51.185360 3
tr 7.787885 66.506470 32.700138 0.0 71.519195 32.146743 0.0 73.626487 41.172459 3
tr 10.13863 58.609661 51.223545 9.525023 66.221076 48.920918 5.348627 57.736511 58.438560 3
tr 10.391251 64.281272 40.747531 4.684775 72.120506 41.261550 12.592717 78.907195 50.617198 3
tr 9.525023 66.221076 48.920918 4.759357 69.991416 51.111190 2.446671 62.239989 57.674968 3
tr 3.9860 59.59044 61.444350 0.0 61.559505 58.601180 0.0 56.19730 66.624329 3
tr 5.348627 57.736511 58.438560 2.446671 62.239989 57.674968 3.9860 59.59044 61.444350 3
tr 8.642366 49.95309 35.725203 9.998713 51.307644 35.496367 9.988013 56.955790 42.201694 3
tr 9.525023 66.221076 48.920918 10.391251 64.281272 40.747531 12.592717 78.907195 50.617198 3
tr 4.684775 72.120506 41.261550 4.759357 69.991416 51.111190 12.592717 78.907195 50.617198 3
tr 7.32498 48.605991 -41.51181 4.212159 43.850329 -41.87935 5.973053 34.281334 -45.56725 3
tr 11.532140 49.646450 -25.345735 9.993451 37.712260 -17.443083 9.315205 32.477558 -19.879449 3
tr 5.973053 34.281334 -45.56725 0.0 32.943770 -44.257598 6.508358 21.221992 -57.70144 3
tr 4.759357 69.991416 51.111190 0.0 71.232178 51.185360 2.446671 62.239989 57.674968 3
tr 10.13863 57.761101 8.92893 0.0 64.57281 8.92893 0.0 66.228600 16.33605 3
tr 0.0 64.694884 -26.395557 9.982604 58.756222 -25.962858 9.327534 56.691535 -38.280253 3
tr 0.0 61.317279 -38.332737 9.327534 56.691535 -38.280253 -1.899627 56.235497 -41.125937 3
tr 10.698391 49.273220 -38.206862 11.532140 49.646450 -25.345735 11.597156 30.546070 -27.255341 3
tr 9.993451 37.712260 -17.443083 6.829890 34.808849 -17.463003 7.71896 32.333770 -17.8618 3
tr 7.41744 42.900967 -38.332737 10.698391 49.273220 -38.206862 9.109835 27.907665 -35.734993 3
tr 3.520885 42.379272 -38.986359 7.41744 42.900967 -38.332737 6.974576 28.72905 -37.469357 3
tr 8.156288 19.303761 -39.842998 8.753351 18.937048 -38.370131 8.628612 15.798697 -39.192928 3
tr 4.783840 15.923059 -39.691772 4.976735 17.745190 -34.2270 4.649678 18.210795 -36.372394 3
tr 7.71896 32.333770 -17.8618 3.702704 34.358364 -17.293137 4.976735 17.745190 -34.2270 3
tr 6.286793 19.576533 -39.450867 7.1472 19.988350 -40.858893 7.13714 16.314198 -41.672500 3
tr 4.432271 18.409652 -37.659142 4.715857 18.720396 -38.681575 4.783840 15.923059 -39.691772 3
tr 9.315205 32.477558 -19.879449 7.71896 32.333770 -17.8618 7.778813 20.654619 -31.536822 3
tr 11.597156 30.546070 -27.255341 9.315205 32.477558 -19.879449 7.778813 20.654619 -31.536822 3
tr 4.649678 18.210795 -36.372394 4.432271 18.409652 -37.659142 4.783840 15.923059 -39.691772 3
tr 9.328464 27.981525 13.414047 10.433645 28.916026 16.23141 9.38975 16.989401 15.505487 3
tr 3.621434 25.564862 16.400618 4.493071 28.916026 13.392735 5.920657 17.709198 14.549993 3
tr -7.233932 37.404408 27.425132 -11.986136 42.553417 26.717954 -10.557380 29.611983 21.768174 3
tr -10.557380 29.611983 21.768174 -8.985674 29.857479 24.82954 -7.233932 37.404408 27.425132 3
tr 0.0 32.53508 15.642671 5.27300 32.852187 11.318334 4.493071 28.916026 13.392735 3
tr 4.493071 28.916026 13.392735 9.328464 27.981525 13.414047 5.920657 17.709198 14.549993 3
tr 0.0 51.503872 -49.516410 5.543530 52.101985 -42.513435 6.340411 45.910331 -50.314636 3
tr 5.973053 34.281334 -45.56725 8.622420 25.133496 -60.800404 7.595193 40.298758 -48.591999 3
tr -8.766756 48.605991 -41.51181 -6.255722 52.101985 -42.513435 -7.529878 45.910331 -50.314636 3
tr -7.529878 45.910331 -50.314636 -8.275125 40.298758 -48.591999 -8.766756 48.605991 -41.51181 3
tr 7.795183 34.607143 -65.347328 8.622420 25.133496 -60.800404 6.403100 17.834827 -73.160544 3
tr 6.508358 21.221992 -57.70144 0.0 20.149695 -57.495102 0.0 14.296407 -70.585594 3
tr 8.622420 25.133496 -60.800404 6.508358 21.221992 -57.70144 3.900368 15.183628 -70.47957 3
tr 5.704151 37.406714 -67.769561 7.795183 34.607143 -65.347328 4.769795 23.995514 -79.917061 3
tr 0.0 38.177894 -69.952988 5.704151 37.406714 -67.769561 4.769795 23.995514 -79.917061 3
tr 7.71896 32.333770 -17.8618 6.829890 34.808849 -17.463003 3.702704 34.358364 -17.293137 3
tr 0.0 65.34003 -15.159720 9.982604 58.756222 -25.962858 0.0 64.694884 -26.395557 3
tr 5.543530 52.101985 -42.513435 9.327534 56.691535 -38.280253 7.32498 48.605991 -41.51181 3
tr -1.899627 56.235497 -41.125937 9.327534 56.691535 -38.280253 5.543530 52.101985 -42.513435 3
tr 9.327534 56.691535 -38.280253 9.982604 58.756222 -25.962858 10.698391 49.273220 -38.206862 3
tr 10.67626 60.659022 22.694967 0.0 66.228600 16.33605 0.0 66.905251 22.630355 3
tr 7.32498 48.605991 -41.51181 10.698391 49.273220 -38.206862 4.212159 43.850329 -41.87935 3
tr 7.787885 66.506470 32.700138 10.67626 60.659022 22.694967 0.0 71.519195 32.146743 3
tr 10.693913 60.403056 33.765017 11.207468 53.822937 21.917947 7.787885 66.506470 32.700138 3
tr 4.493071 28.916026 13.392735 5.27300 32.852187 11.318334 9.328464 27.981525 13.414047 3
tr 10.13863 58.609661 51.223545 9.988013 56.955790 42.201694 9.525023 66.221076 48.920918 3
tr 4.684775 72.120506 41.261550 7.787885 66.506470 32.700138 0.0 73.626487 41.172459 3
tr 2.446671 62.239989 57.674968 0.0 71.232178 51.185360 0.0 61.559505 58.601180 3
tr 5.348627 57.736511 58.438560 9.525023 66.221076 48.920918 2.446671 62.239989 57.674968 3
tr 3.9860 59.59044 61.444350 2.446671 62.239989 57.674968 0.0 61.559505 58.601180 3
tr 9.328464 27.981525 13.414047 10.111938 35.768943 10.992324 10.433645 28.916026 16.23141 3
tr 7.14325 29.857479 24.82954 6.766037 37.404408 27.425132 5.56289 29.690054 22.504197 3
tr 10.21248 37.256515 -11.904078 10.964531 44.99868 -11.593012 10.111938 35.768943 10.992324 3
tr 0.0 51.503872 -49.516410 -1.899627 56.235497 -41.125937 5.543530 52.101985 -42.513435 3
tr 11.597156 30.546070 -27.255341 11.532140 49.646450 -25.345735 9.315205 32.477558 -19.879449 3
tr 8.622420 25.133496 -60.800404 5.973053 34.281334 -45.56725 6.508358 21.221992 -57.70144 3
tr 4.759357 69.991416 51.111190 4.684775 72.120506 41.261550 0.0 71.232178 51.185360 3
tr 10.40554 59.199275 15.339456 10.13863 57.761101 8.92893 0.0 66.228600 16.33605 3
tr 0.0 61.317279 -38.332737 0.0 64.694884 -26.395557 9.327534 56.691535 -38.280253 3
tr 9.109835 27.907665 -35.734993 10.698391 49.273220 -38.206862 11.597156 30.546070 -27.255341 3
tr 5.984772 60.879215 -12.830322 9.995224 58.354156 -12.945090 9.982604 58.756222 -25.962858 3
tr 9.315205 32.477558 -19.879449 9.993451 37.712260 -17.443083 7.71896 32.333770 -17.8618 3
tr 6.974576 28.72905 -37.469357 7.41744 42.900967 -38.332737 9.109835 27.907665 -35.734993 3
tr 4.500137 27.594796 -35.821728 3.520885 42.379272 -38.986359 6.974576 28.72905 -37.469357 3
tr 4.976735 17.745190 -34.2270 3.702704 34.358364 -17.293137 4.649678 18.210795 -36.372394 3
tr 1.704136 29.146 15.999356 0.0 32.53508 15.642671 4.493071 28.916026 13.392735 3
tr 9.38975 16.989401 15.505487 10.433645 28.916026 16.23141 9.233382 24.872164 19.955320 3
tr 5.704151 37.406714 -67.769561 0.0 51.503872 -49.516410 7.795183 34.607143 -65.347328 3
tr 6.508358 21.221992 -57.70144 0.0 32.943770 -44.257598 0.0 20.149695 -57.495102 3
tr 0.0 38.177894 -69.952988 0.0 51.503872 -49.516410 5.704151 37.406714 -67.769561 3
tr 7.795183 34.607143 -65.347328 0.0 51.503872 -49.516410 6.340411 45.910331 -50.314636 3
tr 4.769795 23.995514 -79.917061 7.795183 34.607143 -65.347328 6.403100 17.834827 -73.160544 3
tr 3.900368 15.183628 -70.47957 6.508358 21.221992 -57.70144 0.0 14.296407 -70.585594 3
tr 6.403100 17.834827 -73.160544 8.622420 25.133496 -60.800404 3.900368 15.183628 -70.47957 3
tr -5.587093 43.850329 -41.87935 0.0 32.943770 -44.257598 -1.899627 42.954819 -41.190285 3
tr -6.26975 34.281334 -45.56725 0.0 32.943770 -44.257598 -5.587093 43.850329 -41.87935 3
tr -11.888061 35.768943 10.992324 -11.978751 37.256515 -11.904078 -9.163079 36.580421 -11.934812 3
tr -9.163079 36.580421 -11.934812 -6.972699 32.852187 11.318334 -11.888061 35.768943 10.992324 3
tr -10.17395 58.756222 -25.962858 -6.15227 60.879215 -12.830322 0.0 64.885422 -12.648213 3
tr 0.0 64.885422 -12.648213 0.0 65.34003 -15.159720 -10.17395 58.756222 -25.962858 3
tr -12.746067 53.225349 15.254115 -11.913240 37.510738 15.29643 -11.986136 42.553417 26.717954 3
tr -11.986136 42.553417 26.717954 -12.792531 53.822937 21.917947 -12.746067 53.225349 15.254115 3
tr -10.672466 56.691535 -38.280253 -8.766756 48.605991 -41.51181 -11.301638 49.273220 -38.206862 3
tr -10.17395 58.756222 -25.962858 -11.301638 49.273220 -38.206862 -12.467859 49.646450 -25.345735 3
tr -11.301638 49.273220 -38.206862 -5.587093 43.850329 -41.87935 -8.958255 42.900967 -38.332737 3
tr -6.972699 32.852187 11.318334 -10.671535 27.981525 13.414047 -11.888061 35.768943 10.992324 3
tr -11.932344 60.659022 22.694967 0.0 71.519195 32.146743 0.0 66.905251 22.630355 3
tr -12.792531 53.822937 21.917947 -8.212114 66.506470 32.700138 -11.932344 60.659022 22.694967 3
tr -11.608748 64.281272 40.747531 -5.315195 72.120506 41.261550 -8.212114 66.506470 32.700138 3
tr 11.207468 53.822937 21.917947 10.693913 60.403056 33.765017 9.998713 51.307644 35.496367 3
tr 9.998713 51.307644 35.496367 10.13863 42.553417 26.717954 11.207468 53.822937 21.917947 3
tr -10.11986 56.955790 42.201694 -10.474976 66.221076 48.920918 -11.608748 64.281272 40.747531 3
tr -5.315195 72.120506 41.261550 0.0 71.232178 51.185360 0.0 73.626487 41.172459 3
tr -8.212114 66.506470 32.700138 0.0 73.626487 41.172459 0.0 71.519195 32.146743 3
tr -11.986136 58.609661 51.223545 -6.651372 57.736511 58.438560 -10.474976 66.221076 48.920918 3
tr -11.608748 64.281272 40.747531 -13.407282 78.907195 50.617198 -5.315195 72.120506 41.261550 3
tr -10.474976 66.221076 48.920918 -3.553328 62.239989 57.674968 -5.240642 69.991416 51.111190 3
tr -4.990139 59.59044 61.444350 0.0 56.19730 66.624329 0.0 61.559505 58.601180 3
tr -6.651372 57.736511 58.438560 -4.990139 59.59044 61.444350 -3.553328 62.239989 57.674968 3
tr -9.357633 49.95309 35.725203 -10.11986 56.955790 42.201694 -10.1286 51.307644 35.496367 3
tr -10.474976 66.221076 48.920918 -13.407282 78.907195 50.617198 -11.608748 64.281272 40.747531 3
tr -5.315195 72.120506 41.261550 -13.407282 78.907195 50.617198 -5.240642 69.991416 51.111190 3
tr -8.766756 48.605991 -41.51181 -6.26975 34.281334 -45.56725 -5.587093 43.850329 -41.87935 3
tr -12.467859 49.646450 -25.345735 -10.684794 32.477558 -19.879449 -10.6548 37.712260 -17.443083 3
tr -6.26975 34.281334 -45.56725 -7.491641 21.221992 -57.70144 0.0 32.943770 -44.257598 3
tr -5.240642 69.991416 51.111190 -3.553328 62.239989 57.674968 0.0 71.232178 51.185360 3
tr -11.986136 57.761101 8.92893 0.0 66.228600 16.33605 0.0 64.57281 8.92893 3
tr 0.0 64.694884 -26.395557 -10.672466 56.691535 -38.280253 -10.17395 58.756222 -25.962858 3
tr 0.0 61.317279 -38.332737 -1.899627 56.235497 -41.125937 -10.672466 56.691535 -38.280253 3
tr -11.301638 49.273220 -38.206862 -12.402844 30.546070 -27.255341 -12.467859 49.646450 -25.345735 3
tr -10.6548 37.712260 -17.443083 -8.928103 32.333770 -17.8618 -7.170109 34.808849 -17.463003 3
tr -8.958255 42.900967 -38.332737 -10.890164 27.907665 -35.734993 -11.301638 49.273220 -38.206862 3
tr -4.479142 42.379272 -38.986359 -7.25452 28.72905 -37.469357 -8.958255 42.900967 -38.332737 3
tr -9.843740 19.303761 -39.842998 -9.371387 15.798697 -39.192928 -9.246675 18.937077 -38.370131 3
tr -8.928103 32.333770 -17.8618 -5.23292 17.745190 -34.2270 -4.297295 34.358364 -17.293137 3
tr -7.713236 19.576533 -39.450867 -8.986315 16.314198 -41.672500 -8.998527 19.988350 -40.858893 3
tr -5.567728 18.409652 -37.659142 -5.216159 15.923059 -39.691772 -5.284142 18.720396 -38.681575 3
tr -10.684794 32.477558 -19.879449 -8.221186 20.654619 -31.536822 -8.928103 32.333770 -17.8618 3
tr -12.402844 30.546070 -27.255341 -8.221186 20.654619 -31.536822 -10.684794 32.477558 -19.879449 3
tr -5.350321 18.210795 -36.372394 -5.216159 15.923059 -39.691772 -5.567728 18.409652 -37.659142 3
tr -10.671535 27.981525 13.414047 -10.961024 16.989401 15.505487 -11.566354 28.916026 16.23141 3
tr -4.378565 25.564862 16.400618 -6.79342 17.709198 14.549993 -5.506928 28.916026 13.392735 3
tr 0.0 32.53508 15.642671 -5.506928 28.916026 13.392735 -6.972699 32.852187 11.318334 3
tr -5.506928 28.916026 13.392735 -6.79342 17.709198 14.549993 -10.671535 27.981525 13.414047 3
tr 0.0 51.503872 -49.516410 -8.204816 34.607143 -65.347328 -7.529878 45.910331 -50.314636 3
tr -8.275125 40.298758 -48.591999 -9.377580 25.133496 -60.800404 -6.26975 34.281334 -45.56725 3
tr 7.595193 40.298758 -48.591999 8.622420 25.133496 -60.800404 7.795183 34.607143 -65.347328 3
tr 7.795183 34.607143 -65.347328 6.340411 45.910331 -50.314636 7.595193 40.298758 -48.591999 3
tr -8.204816 34.607143 -65.347328 -7.596928 17.834827 -73.160544 -9.377580 25.133496 -60.800404 3
tr -7.491641 21.221992 -57.70144 0.0 14.296407 -70.585594 0.0 20.149695 -57.495102 3
tr -9.377580 25.133496 -60.800404 -4.99631 15.183628 -70.47957 -7.491641 21.221992 -57.70144 3
tr -6.295848 37.406714 -67.769561 -5.230204 23.995514 -79.917061 -8.204816 34.607143 -65.347328 3
tr 0.0 38.177894 -69.952988 -5.230204 23.995514 -79.917061 -6.295848 37.406714 -67.769561 3
tr -8.928103 32.333770 -17.8618 -4.297295 34.358364 -17.293137 -7.170109 34.808849 -17.463003 3
tr 0.0 65.34003 -15.159720 0.0 64.694884 -26.395557 -10.17395 58.756222 -25.962858 3
tr -6.255722 52.101985 -42.513435 -8.766756 48.605991 -41.51181 -10.672466 56.691535 -38.280253 3
tr -1.899627 56.235497 -41.125937 -6.255722 52.101985 -42.513435 -10.672466 56.691535 -38.280253 3
tr -10.672466 56.691535 -38.280253 -11.301638 49.273220 -38.206862 -10.17395 58.756222 -25.962858 3
tr -11.932344 60.659022 22.694967 0.0 66.905251 22.630355 0.0 66.228600 16.33605 3
tr -8.766756 48.605991 -41.51181 -5.587093 43.850329 -41.87935 -11.301638 49.273220 -38.206862 3
tr -8.212114 66.506470 32.700138 0.0 71.519195 32.146743 -11.932344 60.659022 22.694967 3
tr -8.212114 66.506470 32.700138 -12.792531 53.822937 21.917947 -11.306058 60.403056 33.765017 3
tr -5.506928 28.916026 13.392735 -10.671535 27.981525 13.414047 -6.972699 32.852187 11.318334 3
tr -11.986136 58.609661 51.223545 -10.474976 66.221076 48.920918 -10.11986 56.955790 42.201694 3
tr -5.315195 72.120506 41.261550 0.0 73.626487 41.172459 -8.212114 66.506470 32.700138 3
tr -3.553328 62.239989 57.674968 0.0 61.559505 58.601180 0.0 71.232178 51.185360 3
tr -6.651372 57.736511 58.438560 -3.553328 62.239989 57.674968 -10.474976 66.221076 48.920918 3
tr -4.990139 59.59044 61.444350 0.0 61.559505 58.601180 -3.553328 62.239989 57.674968 3
tr -10.671535 27.981525 13.414047 -11.566354 28.916026 16.23141 -11.888061 35.768943 10.992324 3
tr -8.985674 29.857479 24.82954 -6.943710 29.690054 22.504197 -7.233932 37.404408 27.425132 3
tr -11.978751 37.256515 -11.904078 -11.888061 35.768943 10.992324 -11.35468 44.99868 -11.593012 3
tr 0.0 51.503872 -49.516410 -6.255722 52.101985 -42.513435 -1.899627 56.235497 -41.125937 3
tr -12.402844 30.546070 -27.255341 -10.684794 32.477558 -19.879449 -12.467859 49.646450 -25.345735 3
tr -9.377580 25.133496 -60.800404 -7.491641 21.221992 -57.70144 -6.26975 34.281334 -45.56725 3
tr -5.240642 69.991416 51.111190 0.0 71.232178 51.185360 -5.315195 72.120506 41.261550 3
tr 0.0 66.228600 16.33605 -11.986136 57.761101 8.92893 -11.959445 59.199275 15.339456 3
tr 0.0 61.317279 -38.332737 -10.672466 56.691535 -38.280253 0.0 64.694884 -26.395557 3
tr -10.890164 27.907665 -35.734993 -12.402844 30.546070 -27.255341 -11.301638 49.273220 -38.206862 3
tr -6.15227 60.879215 -12.830322 -10.17395 58.756222 -25.962858 -10.4775 58.354156 -12.945090 3
tr -10.684794 32.477558 -19.879449 -8.928103 32.333770 -17.8618 -10.6548 37.712260 -17.443083 3
tr -7.25452 28.72905 -37.469357 -10.890164 27.907665 -35.734993 -8.958255 42.900967 -38.332737 3
tr -5.499862 27.594796 -35.821728 -7.25452 28.72905 -37.469357 -4.479142 42.379272 -38.986359 3
tr -5.23292 17.745190 -34.2270 -5.216159 15.923059 -39.691772 -5.350321 18.210795 -36.372394 3
tr -5.506928 28.916026 13.392735 0.0 32.53508 15.642671 -2.295863 29.146 15.999356 3
tr -10.961024 16.989401 15.505487 -10.766617 24.872164 19.955320 -11.566354 28.916026 16.23141 3
tr -6.295848 37.406714 -67.769561 -8.204816 34.607143 -65.347328 0.0 51.503872 -49.516410 3
tr -7.491641 21.221992 -57.70144 0.0 20.149695 -57.495102 0.0 32.943770 -44.257598 3
tr 0.0 38.177894 -69.952988 -6.295848 37.406714 -67.769561 0.0 51.503872 -49.516410 3
tr -8.275125 40.298758 -48.591999 -7.529878 45.910331 -50.314636 -8.204816 34.607143 -65.347328 3
tr -8.204816 34.607143 -65.347328 -9.377580 25.133496 -60.800404 -8.275125 40.298758 -48.591999 3
tr -5.230204 23.995514 -79.917061 -7.596928 17.834827 -73.160544 -8.204816 34.607143 -65.347328 3
tr -4.99631 15.183628 -70.47957 0.0 14.296407 -70.585594 -7.491641 21.221992 -57.70144 3
tr -7.596928 17.834827 -73.160544 -4.99631 15.183628 -70.47957 -9.377580 25.133496 -60.800404 3
tr 4.432271 18.409652 -37.659142 4.649678 18.210795 -36.372394 3.702704 34.358364 -17.293137 3
tr 3.702704 34.358364 -17.293137 2.56373 35.214416 -24.954878 4.432271 18.409652 -37.659142 3
tr -11.986136 57.761101 8.92893 -10.4775 58.354156 -12.945090 -12.565035 50.896403 -11.284069 3
tr -12.565035 50.896403 -11.284069 -12.700067 52.633426 8.653613 -11.986136 57.761101 8.92893 3
tr 10.111938 35.768943 10.992324 10.964531 44.99868 -11.593012 11.434965 50.896403 -11.284069 3
tr 11.434965 50.896403 -11.284069 11.299932 52.633426 8.653613 10.111938 35.768943 10.992324 3
tr -11.888061 35.768943 10.992324 -11.566354 28.916026 16.23141 -11.913240 37.510738 15.29643 3
tr -12.700067 52.633426 8.653613 -12.565035 50.896403 -11.284069 -11.35468 44.99868 -11.593012 3
tr -11.35468 44.99868 -11.593012 -11.888061 35.768943 10.992324 -12.700067 52.633426 8.653613 3
tr 10.13863 57.761101 8.92893 11.299932 52.633426 8.653613 11.434965 50.896403 -11.284069 3
tr 11.434965 50.896403 -11.284069 9.995224 58.354156 -12.945090 10.13863 57.761101 8.92893 3
tr 6.766037 37.404408 27.425132 7.14325 29.857479 24.82954 9.442591 29.611983 21.768174 3
tr 9.442591 29.611983 21.768174 10.13863 42.553417 26.717954 6.766037 37.404408 27.425132 3
tr -11.566354 28.916026 16.23141 -10.766617 24.872164 19.955320 -10.557380 29.611983 21.768174 3
tr -6.943710 29.690054 22.504197 -8.985674 29.857479 24.82954 -8.881085 26.678217 22.674994 3
tr -8.881085 26.678217 22.674994 -5.499630 27.181681 20.904129 -6.943710 29.690054 22.504197 3
tr 5.56289 29.690054 22.504197 4.500369 27.181681 20.904129 7.118914 26.678217 22.674994 3
tr 7.118914 26.678217 22.674994 7.14325 29.857479 24.82954 5.56289 29.690054 22.504197 3
tr 7.14325 29.857479 24.82954 7.118914 26.678217 22.674994 9.233382 24.872164 19.955320 3
tr 9.233382 24.872164 19.955320 9.442591 29.611983 21.768174 7.14325 29.857479 24.82954 3
tr -8.985674 29.857479 24.82954 -10.557380 29.611983 21.768174 -10.766617 24.872164 19.955320 3
tr -10.766617 24.872164 19.955320 -8.881085 26.678217 22.674994 -8.985674 29.857479 24.82954 3
tr 3.621434 25.564862 16.400618 1.704136 29.146 15.999356 4.493071 28.916026 13.392735 3
tr -4.378565 25.564862 16.400618 -5.506928 28.916026 13.392735 -2.295863 29.146 15.999356 3
tr 10.433645 28.916026 16.23141 9.442591 29.611983 21.768174 9.233382 24.872164 19.955320 3
tr 9.442591 29.611983 21.768174 10.433645 28.916026 16.23141 10.86759 37.510738 15.29614 3
tr 10.86759 37.510738 15.29614 10.13863 42.553417 26.717954 9.442591 29.611983 21.768174 3
tr 11.253932 53.225349 15.254115 11.207468 53.822937 21.917947 10.13863 42.553417 26.717954 3
tr 10.13863 42.553417 26.717954 10.86759 37.510738 15.29614 11.253932 53.225349 15.254115 3
tr 10.86759 37.510738 15.29614 10.111938 35.768943 10.992324 11.299932 52.633426 8.653613 3
tr 11.299932 52.633426 8.653613 11.253932 53.225349 15.254115 10.86759 37.510738 15.29614 3
tr 10.40554 59.199275 15.339456 11.253932 53.225349 15.254115 11.299932 52.633426 8.653613 3
tr 11.299932 52.633426 8.653613 10.13863 57.761101 8.92893 10.40554 59.199275 15.339456 3
tr -11.959445 59.199275 15.339456 -12.746067 53.225349 15.254115 -12.792531 53.822937 21.917947 3
tr -12.792531 53.822937 21.917947 -11.932344 60.659022 22.694967 -11.959445 59.199275 15.339456 3
tr -11.986136 42.553417 26.717954 -11.913240 37.510738 15.29643 -11.566354 28.916026 16.23141 3
tr -11.566354 28.916026 16.23141 -10.557380 29.611983 21.768174 -11.986136 42.553417 26.717954 3
tr 10.111938 35.768943 10.992324 10.86759 37.510738 15.29614 10.433645 28.916026 16.23141 3
tr -11.959445 59.199275 15.339456 -11.986136 57.761101 8.92893 -12.700067 52.633426 8.653613 3
tr -12.700067 52.633426 8.653613 -12.746067 53.225349 15.254115 -11.959445 59.199275 15.339456 3
tr -11.932344 60.659022 22.694967 0.0 66.228600 16.33605 -11.959445 59.199275 15.339456 3
tr 10.67626 60.659022 22.694967 10.40554 59.199275 15.339456 0.0 66.228600 16.33605 3
tr 10.40554 59.199275 15.339456 10.67626 60.659022 22.694967 11.207468 53.822937 21.917947 3
tr 11.207468 53.822937 21.917947 11.253932 53.225349 15.254115 10.40554 59.199275 15.339456 3
tr -12.746067 53.225349 15.254115 -12.700067 52.633426 8.653613 -11.888061 35.768943 10.992324 3
tr -11.888061 35.768943 10.992324 -11.913240 37.510738 15.29643 -12.746067 53.225349 15.254115 3
tr 7.1472 19.988350 -40.858893 6.286793 19.576533 -39.450867 4.500137 27.594796 -35.821728 3
tr 4.500137 27.594796 -35.821728 6.974576 28.72905 -37.469357 7.1472 19.988350 -40.858893 3
tr 4.715857 18.720396 -38.681575 4.432271 18.409652 -37.659142 2.56373 35.214416 -24.954878 3
tr 2.56373 35.214416 -24.954878 4.500137 27.594796 -35.821728 4.715857 18.720396 -38.681575 3
tr 8.753351 18.937048 -38.370131 8.156288 19.303761 -39.842998 6.974576 28.72905 -37.469357 3
tr 6.974576 28.72905 -37.469357 9.109835 27.907665 -35.734993 8.753351 18.937048 -38.370131 3
tr -9.246675 18.937077 -38.370131 -10.890164 27.907665 -35.734993 -7.25452 28.72905 -37.469357 3
tr -7.25452 28.72905 -37.469357 -9.843740 19.303761 -39.842998 -9.246675 18.937077 -38.370131 3
tr -8.998527 19.988350 -40.858893 -7.25452 28.72905 -37.469357 -5.499862 27.594796 -35.821728 3
tr -5.499862 27.594796 -35.821728 -7.713236 19.576533 -39.450867 -8.998527 19.988350 -40.858893 3
tr -10.890164 27.907665 -35.734993 -10.816832 17.618964 -37.755034 -12.402844 30.546070 -27.255341 3
tr 9.109835 27.907665 -35.734993 11.597156 30.546070 -27.255341 9.183167 17.618964 -37.755034 3
tr -5.567728 18.409652 -37.659142 -3.943626 35.214416 -24.954878 -4.297295 34.358364 -17.293137 3
tr -4.297295 34.358364 -17.293137 -5.350321 18.210795 -36.372394 -5.567728 18.409652 -37.659142 3
tr -5.284142 18.720396 -38.681575 -5.499862 27.594796 -35.821728 -3.943626 35.214416 -24.954878 3
tr -3.943626 35.214416 -24.954878 -5.567728 18.409652 -37.659142 -5.284142 18.720396 -38.681575 3
tr -4.297295 34.358364 -17.293137 -5.23292 17.745190 -34.2270 -5.350321 18.210795 -36.372394 3
tr 7.32498 48.605991 -41.51181 7.595193 40.298758 -48.591999 6.340411 45.910331 -50.314636 3
tr 6.340411 45.910331 -50.314636 5.543530 52.101985 -42.513435 7.32498 48.605991 -41.51181 3
tr -6.255722 52.101985 -42.513435 0.0 51.503872 -49.516410 -7.529878 45.910331 -50.314636 3
tr -8.766756 48.605991 -41.51181 -8.275125 40.298758 -48.591999 -6.26975 34.281334 -45.56725 3
tr 7.32498 48.605991 -41.51181 5.973053 34.281334 -45.56725 7.595193 40.298758 -48.591999 3
tr 0.0 64.57281 8.92893 0.0 64.885422 -12.648213 -6.15227 60.879215 -12.830322 3
tr 0.0 64.57281 8.92893 5.984772 60.879215 -12.830322 0.0 64.885422 -12.648213 3
tr 9.995224 58.354156 -12.945090 5.984772 60.879215 -12.830322 0.0 64.57281 8.92893 3
tr 0.0 64.57281 8.92893 10.13863 57.761101 8.92893 9.995224 58.354156 -12.945090 3
tr 9.995224 58.354156 -12.945090 11.434965 50.896403 -11.284069 11.532140 49.646450 -25.345735 3
tr 11.532140 49.646450 -25.345735 9.982604 58.756222 -25.962858 9.995224 58.354156 -12.945090 3
tr 10.964531 44.99868 -11.593012 10.21248 37.256515 -11.904078 9.993451 37.712260 -17.443083 3
tr 9.993451 37.712260 -17.443083 11.532140 49.646450 -25.345735 10.964531 44.99868 -11.593012 3
tr 11.532140 49.646450 -25.345735 11.434965 50.896403 -11.284069 10.964531 44.99868 -11.593012 3
tr 9.993451 37.712260 -17.443083 10.21248 37.256515 -11.904078 8.836920 36.580421 -11.934812 3
tr -12.467859 49.646450 -25.345735 -11.35468 44.99868 -11.593012 -12.565035 50.896403 -11.284069 3
tr -10.4775 58.354156 -12.945090 -11.986136 57.761101 8.92893 0.0 64.57281 8.92893 3
tr 0.0 64.57281 8.92893 -6.15227 60.879215 -12.830322 -10.4775 58.354156 -12.945090 3
tr -10.4775 58.354156 -12.945090 -10.17395 58.756222 -25.962858 -12.467859 49.646450 -25.345735 3
tr -12.467859 49.646450 -25.345735 -12.565035 50.896403 -11.284069 -10.4775 58.354156 -12.945090 3
tr -10.6548 37.712260 -17.443083 -9.163079 36.580421 -11.934812 -11.978751 37.256515 -11.904078 3
tr -11.35468 44.99868 -11.593012 -12.467859 49.646450 -25.345735 -10.6548 37.712260 -17.443083 3
tr -10.6548 37.712260 -17.443083 -11.978751 37.256515 -11.904078 -11.35468 44.99868 -11.593012 3
tr -12.792531 53.822937 21.917947 -11.986136 42.553417 26.717954 -10.1286 51.307644 35.496367 3
tr -10.1286 51.307644 35.496367 -11.306058 60.403056 33.765017 -12.792531 53.822937 21.917947 3
tr 10.693913 60.403056 33.765017 10.391251 64.281272 40.747531 9.988013 56.955790 42.201694 3
tr 9.988013 56.955790 42.201694 9.998713 51.307644 35.496367 10.693913 60.403056 33.765017 3
tr 9.998713 51.307644 35.496367 8.642366 49.95309 35.725203 6.766037 37.404408 27.425132 3
tr 6.766037 37.404408 27.425132 10.13863 42.553417 26.717954 9.998713 51.307644 35.496367 3
tr -10.1286 51.307644 35.496367 -11.986136 42.553417 26.717954 -7.233932 37.404408 27.425132 3
tr -7.233932 37.404408 27.425132 -9.357633 49.95309 35.725203 -10.1286 51.307644 35.496367 3
tr -11.306058 60.403056 33.765017 -10.1286 51.307644 35.496367 -10.11986 56.955790 42.201694 3
tr -10.11986 56.955790 42.201694 -11.608748 64.281272 40.747531 -11.306058 60.403056 33.765017 3
tr 10.391251 64.281272 40.747531 10.693913 60.403056 33.765017 7.787885 66.506470 32.700138 3
tr -11.608748 64.281272 40.747531 -8.212114 66.506470 32.700138 -11.306058 60.403056 33.765017 3
tr 9.183167 17.618964 -37.755034 7.778813 20.654619 -31.536822 7.649887 16.26572 -34.689819 3
tr 4.976735 17.745190 -34.2270 4.783840 15.923059 -39.691772 4.537588 4.365971 -34.79413 3
tr 9.183167 17.618964 -37.755034 7.649887 16.26572 -34.689819 9.331922 7.311106 -35.52418 3
tr 6.932008 0.104527 -35.610756 9.331922 7.311106 -35.52418 9.366554 3.212086 -33.11299 3
tr 4.783840 15.923059 -39.691772 7.13714 16.314198 -41.672500 6.932008 0.104527 -35.610756 3
tr 7.649887 16.26572 -34.689819 4.976735 17.745190 -34.2270 5.151371 6.549992 -34.518214 3
tr 8.628612 15.798697 -39.192928 9.183167 17.618964 -37.755034 9.331922 7.311106 -35.52418 3
tr 7.13714 16.314198 -41.672500 8.628612 15.798697 -39.192928 9.331922 7.311106 -35.52418 3
tr 5.585605 0.235170 -28.249870 4.537588 4.365971 -34.79413 4.476759 -1.878250 -32.43233 3
tr 5.585605 0.235170 -28.249870 4.476759 -1.878250 -32.43233 9.313169 -1.897586 -32.74286 3
tr 6.932008 0.104527 -35.610756 9.366554 3.212086 -33.11299 9.313169 -1.897586 -32.74286 3
tr 9.366554 3.212086 -33.11299 9.331922 7.311106 -35.52418 7.941847 0.282303 -28.235185 3
tr 9.331922 7.311106 -35.52418 6.951199 6.461365 -33.565356 7.941847 0.282303 -28.235185 3
tr 6.951199 6.461365 -33.565356 5.151371 6.549992 -34.518214 5.585605 0.235170 -28.249870 3
tr 5.920657 17.709198 14.549993 9.38975 16.989401 15.505487 8.2938 7.590977 15.186168 3
tr 5.920657 17.709198 14.549993 5.668706 5.87811 16.250119 4.424944 17.528223 16.341564 3
tr 8.267072 16.744806 20.320761 7.44476 16.776154 21.793997 6.961725 5.765913 20.814399 3
tr 5.943046 16.979310 20.321110 4.574748 17.109808 19.374949 4.654186 6.348670 17.741123 3
tr 4.574748 17.109808 19.374949 4.57993 17.441894 16.967269 4.654186 6.348670 17.741123 3
tr 9.38975 16.989401 15.505487 9.233382 24.872164 19.955320 8.933396 16.867134 19.413126 3
tr 5.185274 0.797058 23.492232 4.654186 6.348670 17.741123 4.907765 -1.940133 17.182732 3
tr 4.907765 -1.940133 17.182732 8.701712 -1.955340 17.206516 8.421673 0.566217 23.332426 3
tr 4.654186 6.348670 17.741123 5.668706 5.87811 16.250119 4.907765 -1.940133 17.182732 3
tr 5.668706 5.87811 16.250119 8.838432 5.132270 16.926331 8.701712 -1.955340 17.206516 3
tr 8.523355 5.926096 18.672105 6.961725 5.765913 20.814399 7.95157 0.225407 25.209337 3
tr 6.961725 5.765913 20.814399 4.654186 6.348670 17.741123 5.185274 0.797058 23.492232 3
tr 8.838432 5.132270 16.926331 8.523355 5.926096 18.672105 8.421673 0.566217 23.332426 3
tr 7.1472 19.988350 -40.858893 6.974576 28.72905 -37.469357 8.156288 19.303761 -39.842998 3
tr 7.778813 20.654619 -31.536822 7.71896 32.333770 -17.8618 4.976735 17.745190 -34.2270 3
tr 4.715857 18.720396 -38.681575 4.500137 27.594796 -35.821728 6.286793 19.576533 -39.450867 3
tr 7.649887 16.26572 -34.689819 7.778813 20.654619 -31.536822 4.976735 17.745190 -34.2270 3
tr 9.183167 17.618964 -37.755034 11.597156 30.546070 -27.255341 7.778813 20.654619 -31.536822 3
tr 5.151371 6.549992 -34.518214 4.976735 17.745190 -34.2270 4.537588 4.365971 -34.79413 3
tr 9.331922 7.311106 -35.52418 7.649887 16.26572 -34.689819 6.951199 6.461365 -33.565356 3
tr 4.537588 4.365971 -34.79413 4.783840 15.923059 -39.691772 6.932008 0.104527 -35.610756 3
tr 6.951199 6.461365 -33.565356 7.649887 16.26572 -34.689819 5.151371 6.549992 -34.518214 3
tr 6.932008 0.104527 -35.610756 7.13714 16.314198 -41.672500 9.331922 7.311106 -35.52418 3
tr 4.476759 -1.878250 -32.43233 4.537588 4.365971 -34.79413 6.932008 0.104527 -35.610756 3
tr 7.941847 0.282303 -28.235185 5.585605 0.235170 -28.249870 9.313169 -1.897586 -32.74286 3
tr 6.932008 0.104527 -35.610756 9.313169 -1.897586 -32.74286 4.476759 -1.878250 -32.43233 3
tr 9.313169 -1.897586 -32.74286 9.366554 3.212086 -33.11299 7.941847 0.282303 -28.235185 3
tr 5.585605 0.235170 -28.249870 5.151371 6.549992 -34.518214 4.537588 4.365971 -34.79413 3
tr 7.941847 0.282303 -28.235185 6.951199 6.461365 -33.565356 5.585605 0.235170 -28.249870 3
tr 5.920657 17.709198 14.549993 9.328464 27.981525 13.414047 9.38975 16.989401 15.505487 3
tr 8.2938 7.590977 15.186168 9.38975 16.989401 15.505487 8.838432 5.132270 16.926331 3
tr 4.57993 17.441894 16.967269 3.621434 25.564862 16.400618 4.424944 17.528223 16.341564 3
tr 8.933396 16.867134 19.413126 9.233382 24.872164 19.955320 8.267072 16.744806 20.320761 3
tr 7.44476 16.776154 21.793997 7.118914 26.678217 22.674994 5.943046 16.979310 20.321110 3
tr 5.668706 5.87811 16.250119 5.920657 17.709198 14.549993 8.2938 7.590977 15.186168 3
tr 8.838432 5.132270 16.926331 9.38975 16.989401 15.505487 8.523355 5.926096 18.672105 3
tr 8.701712 -1.955340 17.206516 8.838432 5.132270 16.926331 8.421673 0.566217 23.332426 3
tr 5.668706 5.87811 16.250119 8.2938 7.590977 15.186168 8.838432 5.132270 16.926331 3
tr 5.185274 0.797058 23.492232 4.907765 -1.940133 17.182732 7.95157 0.225407 25.209337 3
tr 7.95157 0.225407 25.209337 4.907765 -1.940133 17.182732 8.421673 0.566217 23.332426 3
tr 4.907765 -1.940133 17.182732 5.668706 5.87811 16.250119 8.701712 -1.955340 17.206516 3
tr 8.421673 0.566217 23.332426 8.523355 5.926096 18.672105 7.95157 0.225407 25.209337 3
tr 7.95157 0.225407 25.209337 6.961725 5.765913 20.814399 5.185274 0.797058 23.492232 3
tr -10.816832 17.618964 -37.755034 -8.350112 16.26572 -34.689819 -8.221186 20.654619 -31.536822 3
tr -5.23292 17.745190 -34.2270 -5.462411 4.365971 -34.79413 -5.216159 15.923059 -39.691772 3
tr -10.816832 17.618964 -37.755034 -10.668105 7.311106 -35.52418 -8.350112 16.26572 -34.689819 3
tr -7.67991 0.104527 -35.610756 -10.633473 3.212086 -33.11299 -10.668105 7.311106 -35.52418 3
tr -5.216159 15.923059 -39.691772 -7.67991 0.104527 -35.610756 -8.986315 16.314198 -41.672500 3
tr -8.350112 16.26572 -34.689819 -6.848628 6.549992 -34.518214 -5.23292 17.745190 -34.2270 3
tr -9.371387 15.798697 -39.192928 -10.668105 7.311106 -35.52418 -10.816832 17.618964 -37.755034 3
tr -8.986315 16.314198 -41.672500 -10.668105 7.311106 -35.52418 -9.371387 15.798697 -39.192928 3
tr -6.414394 0.235170 -28.249870 -5.523240 -1.878250 -32.43233 -5.462411 4.365971 -34.79413 3
tr -6.414394 0.235170 -28.249870 -10.686859 -1.897586 -32.74286 -5.523240 -1.878250 -32.43233 3
tr -7.67991 0.104527 -35.610756 -10.686859 -1.897586 -32.74286 -10.633473 3.212086 -33.11299 3
tr -10.633473 3.212086 -33.11299 -8.58152 0.282303 -28.235185 -10.668105 7.311106 -35.52418 3
tr -10.668105 7.311106 -35.52418 -8.58152 0.282303 -28.235185 -7.48800 6.461365 -33.565356 3
tr -7.48800 6.461365 -33.565356 -6.414394 0.235170 -28.249870 -6.848628 6.549992 -34.518214 3
tr -6.79342 17.709198 14.549993 -9.997033 7.590977 15.186168 -10.961024 16.989401 15.505487 3
tr -5.575056 17.528223 16.341564 -6.331264 5.87811 16.250119 -6.79342 17.709198 14.549993 3
tr -9.732927 16.744806 20.320761 -7.38274 5.765913 20.814399 -8.955523 16.776154 21.793997 3
tr -6.56953 16.979310 20.321110 -5.345784 6.348670 17.741123 -5.425251 17.109808 19.374949 3
tr -5.425251 17.109808 19.374949 -5.345784 6.348670 17.741123 -5.942006 17.441925 16.967269 3
tr -10.961024 16.989401 15.505487 -9.476644 5.926096 18.672105 -9.66603 16.867134 19.413126 3
tr -6.814725 0.797058 23.492232 -5.92234 -1.940133 17.182732 -5.345784 6.348670 17.741123 3
tr -5.92234 -1.940133 17.182732 -9.578326 0.566217 23.332426 -9.298287 -1.955340 17.206516 3
tr -5.345784 6.348670 17.741123 -5.92234 -1.940133 17.182732 -6.331264 5.87811 16.250119 3
tr -6.331264 5.87811 16.250119 -9.298287 -1.955340 17.206516 -9.161567 5.132270 16.926331 3
tr -9.476644 5.926096 18.672105 -8.904842 0.225407 25.209337 -7.38274 5.765913 20.814399 3
tr -7.38274 5.765913 20.814399 -6.814725 0.797058 23.492232 -5.345784 6.348670 17.741123 3
tr -9.161567 5.132270 16.926331 -9.578326 0.566217 23.332426 -9.476644 5.926096 18.672105 3
tr -8.998527 19.988350 -40.858893 -9.843740 19.303761 -39.842998 -7.25452 28.72905 -37.469357 3
tr -8.221186 20.654619 -31.536822 -5.23292 17.745190 -34.2270 -8.928103 32.333770 -17.8618 3
tr -5.284142 18.720396 -38.681575 -7.713236 19.576533 -39.450867 -5.499862 27.594796 -35.821728 3
tr -8.350112 16.26572 -34.689819 -5.23292 17.745190 -34.2270 -8.221186 20.654619 -31.536822 3
tr -10.816832 17.618964 -37.755034 -8.221186 20.654619 -31.536822 -12.402844 30.546070 -27.255341 3
tr -6.848628 6.549992 -34.518214 -5.462411 4.365971 -34.79413 -5.23292 17.745190 -34.2270 3
tr -10.668105 7.311106 -35.52418 -7.48800 6.461365 -33.565356 -8.350112 16.26572 -34.689819 3
tr -5.462411 4.365971 -34.79413 -7.67991 0.104527 -35.610756 -5.216159 15.923059 -39.691772 3
tr -7.48800 6.461365 -33.565356 -6.848628 6.549992 -34.518214 -8.350112 16.26572 -34.689819 3
tr -7.67991 0.104527 -35.610756 -10.668105 7.311106 -35.52418 -8.986315 16.314198 -41.672500 3
tr -5.523240 -1.878250 -32.43233 -7.67991 0.104527 -35.610756 -5.462411 4.365971 -34.79413 3
tr -8.58152 0.282303 -28.235185 -10.686859 -1.897586 -32.74286 -6.414394 0.235170 -28.249870 3
tr -7.67991 0.104527 -35.610756 -5.523240 -1.878250 -32.43233 -10.686859 -1.897586 -32.74286 3
tr -10.686859 -1.897586 -32.74286 -8.58152 0.282303 -28.235185 -10.633473 3.212086 -33.11299 3
tr -6.414394 0.235170 -28.249870 -5.462411 4.365971 -34.79413 -6.848628 6.549992 -34.518214 3
tr -8.58152 0.282303 -28.235185 -6.414394 0.235170 -28.249870 -7.48800 6.461365 -33.565356 3
tr -6.79342 17.709198 14.549993 -10.961024 16.989401 15.505487 -10.671535 27.981525 13.414047 3
tr -9.997033 7.590977 15.186168 -9.161567 5.132270 16.926331 -10.961024 16.989401 15.505487 3
tr -5.942006 17.441925 16.967269 -5.575056 17.528223 16.341564 -4.378565 25.564862 16.400618 3
tr -9.66603 16.867134 19.413126 -9.732927 16.744806 20.320761 -10.766617 24.872164 19.955320 3
tr -8.955523 16.776154 21.793997 -6.56953 16.979310 20.321110 -8.881085 26.678217 22.674994 3
tr -6.331264 5.87811 16.250119 -9.997033 7.590977 15.186168 -6.79342 17.709198 14.549993 3
tr -9.161567 5.132270 16.926331 -9.476644 5.926096 18.672105 -10.961024 16.989401 15.505487 3
tr -9.298287 -1.955340 17.206516 -9.578326 0.566217 23.332426 -9.161567 5.132270 16.926331 3
tr -6.331264 5.87811 16.250119 -9.161567 5.132270 16.926331 -9.997033 7.590977 15.186168 3
tr -6.814725 0.797058 23.492232 -8.904842 0.225407 25.209337 -5.92234 -1.940133 17.182732 3
tr -8.904842 0.225407 25.209337 -9.578326 0.566217 23.332426 -5.92234 -1.940133 17.182732 3
tr -5.92234 -1.940133 17.182732 -9.298287 -1.955340 17.206516 -6.331264 5.87811 16.250119 3
tr -9.578326 0.566217 23.332426 -8.904842 0.225407 25.209337 -9.476644 5.926096 18.672105 3
tr -8.904842 0.225407 25.209337 -6.814725 0.797058 23.492232 -7.38274 5.765913 20.814399 3
tr 8.267072 16.744806 20.320761 6.961725 5.765913 20.814399 8.523355 5.926096 18.672105 3
tr 8.523355 5.926096 18.672105 8.933396 16.867134 19.413126 8.267072 16.744806 20.320761 3
tr -5.575056 17.528223 16.341564 -5.942006 17.441925 16.967269 -5.345784 6.348670 17.741123 3
tr -5.345784 6.348670 17.741123 -6.331264 5.87811 16.250119 -5.575056 17.528223 16.341564 3
tr -6.56953 16.979310 20.321110 -8.955523 16.776154 21.793997 -7.38274 5.765913 20.814399 3
tr -7.38274 5.765913 20.814399 -5.345784 6.348670 17.741123 -6.56953 16.979310 20.321110 3
tr 7.44476 16.776154 21.793997 8.267072 16.744806 20.320761 9.233382 24.872164 19.955320 3
tr 9.233382 24.872164 19.955320 7.118914 26.678217 22.674994 7.44476 16.776154 21.793997 3
tr 5.943046 16.979310 20.321110 4.654186 6.348670 17.741123 6.961725 5.765913 20.814399 3
tr 6.961725 5.765913 20.814399 7.44476 16.776154 21.793997 5.943046 16.979310 20.321110 3
tr 4.424944 17.528223 16.341564 5.668706 5.87811 16.250119 4.654186 6.348670 17.741123 3
tr 4.654186 6.348670 17.741123 4.57993 17.441894 16.967269 4.424944 17.528223 16.341564 3
tr -5.425251 17.109808 19.374949 -5.499630 27.181681 20.904129 -8.881085 26.678217 22.674994 3
tr -8.881085 26.678217 22.674994 -6.56953 16.979310 20.321110 -5.425251 17.109808 19.374949 3
tr -5.942006 17.441925 16.967269 -4.378565 25.564862 16.400618 -5.499630 27.181681 20.904129 3
tr -5.499630 27.181681 20.904129 -5.425251 17.109808 19.374949 -5.942006 17.441925 16.967269 3
tr 4.574748 17.109808 19.374949 5.943046 16.979310 20.321110 7.118914 26.678217 22.674994 3
tr 7.118914 26.678217 22.674994 4.500369 27.181681 20.904129 4.574748 17.109808 19.374949 3
tr 4.57993 17.441894 16.967269 4.574748 17.109808 19.374949 4.500369 27.181681 20.904129 3
tr 4.500369 27.181681 20.904129 3.621434 25.564862 16.400618 4.57993 17.441894 16.967269 3
tr -8.955523 16.776154 21.793997 -8.881085 26.678217 22.674994 -10.766617 24.872164 19.955320 3
tr -10.766617 24.872164 19.955320 -9.732927 16.744806 20.320761 -8.955523 16.776154 21.793997 3
tr -9.732927 16.744806 20.320761 -9.66603 16.867134 19.413126 -9.476644 5.926096 18.672105 3
tr -9.476644 5.926096 18.672105 -7.38274 5.765913 20.814399 -9.732927 16.744806 20.320761 3
tr 8.523355 5.926096 18.672105 9.38975 16.989401 15.505487 8.933396 16.867134 19.413126 3
tr 3.621434 25.564862 16.400618 5.920657 17.709198 14.549993 4.424944 17.528223 16.341564 3
tr -4.378565 25.564862 16.400618 -5.575056 17.528223 16.341564 -6.79342 17.709198 14.549993 3
tr -10.766617 24.872164 19.955320 -10.961024 16.989401 15.505487 -9.66603 16.867134 19.413126 3
tr -7.713236 19.576533 -39.450867 -5.284142 18.720396 -38.681575 -5.216159 15.923059 -39.691772 3
tr -5.216159 15.923059 -39.691772 -8.986315 16.314198 -41.672500 -7.713236 19.576533 -39.450867 3
tr 6.286793 19.576533 -39.450867 7.13714 16.314198 -41.672500 4.783840 15.923059 -39.691772 3
tr 4.783840 15.923059 -39.691772 4.715857 18.720396 -38.681575 6.286793 19.576533 -39.450867 3
tr 8.156288 19.303761 -39.842998 8.628612 15.798697 -39.192928 7.13714 16.314198 -41.672500 3
tr 7.13714 16.314198 -41.672500 7.1472 19.988350 -40.858893 8.156288 19.303761 -39.842998 3
tr -9.843740 19.303761 -39.842998 -8.998527 19.988350 -40.858893 -8.986315 16.314198 -41.672500 3
tr -8.986315 16.314198 -41.672500 -9.371387 15.798697 -39.192928 -9.843740 19.303761 -39.842998 3
tr -9.246675 18.937077 -38.370131 -10.816832 17.618964 -37.755034 -10.890164 27.907665 -35.734993 3
tr -9.371387 15.798697 -39.192928 -10.816832 17.618964 -37.755034 -9.246675 18.937077 -38.370131 3
tr 8.753351 18.937048 -38.370131 9.109835 27.907665 -35.734993 9.183167 17.618964 -37.755034 3
tr 8.628612 15.798697 -39.192928 8.753351 18.937048 -38.370131 9.183167 17.618964 -37.755034 3
tr 1.544795 55.42628 66.616386 0.0 56.19730 66.624329 0.0 53.720505 66.624854 3
tr -2.455175 55.42628 66.616386 0.0 53.720505 66.624854 0.0 56.19730 66.624329 3

View File

@ -1,4 +1,4 @@
CAM 0 1 2
MAT 255 255 255 7.5 0.0 0.0 // white light 0 MAT 255 255 255 7.5 0.0 0.0 // white light 0
@ -20,6 +20,7 @@ MAT 255 255 255 0.0 1.0 0.15 // tomato 12
MAT 255 255 255 0.0 1.0 0.4 // tomato 13 MAT 255 255 255 0.0 1.0 0.4 // tomato 13
MAT 255 255 255 0.0 1.0 1.0 // tomato 14 MAT 255 255 255 0.0 1.0 1.0 // tomato 14
pl 0 0 -3 0 0 1 4 // back wall pl 0 0 -3 0 0 1 4 // back wall
pl 0 0 3 0 0 -1 5 // front wall pl 0 0 3 0 0 -1 5 // front wall
pl 4 0 0 -1 0 0 3 // right wall pl 4 0 0 -1 0 0 3 // right wall

View File

@ -1,10 +1,11 @@
MAT 255 255 255 0.0 0.0 0.0 //white MAT 255 255 255 0.0 0.0 0.0 //white
MAT 255 100 100 0.0 0.0 0.0 //red MAT 255 100 100 0.0 1.0 1.0 //red
MAT 255 255 255 5.0 0.0 0.0 //sun MAT 255 255 255 5.0 0.0 0.0 //sun
CAM 0 100 0
pl 0 -1 0 0 1 0 0 pl 0 -1 0 0 1 0 0
cu 0 1 -3 1 1 1 tr 0 0 0 1 0 0 0 0 1 0
sp 15 30 -30 30 2 sp 15 30 -30 30 2

View File

@ -15,8 +15,8 @@ struct GPUObject {
float radius; // 4 float radius; // 4
vec3 normal; // 12 + 4 vec3 normal; // 12 + 4
vec3 edge1; // 12 + 4 vec3 vertex1; // 12 + 4
vec3 edge2; // 12 + 4 vec3 vertex2; // 12 + 4
int type; // 4 int type; // 4
}; };
@ -109,9 +109,16 @@ vec3 pathtrace(Ray ray, inout uint rng_state)
GPUObject obj = objects[hit.obj_index]; GPUObject obj = objects[hit.obj_index];
color *= obj.color; // RR
float p = max(color.r, max(color.g, color.b));
if (randomValue(rng_state) > p)
break;
color /= p;
//
color *= obj.color;
light += obj.emission * obj.color; light += obj.emission * obj.color;
if (obj.emission > 0.0) if (obj.emission > 0.0)
break; break;

View File

@ -31,23 +31,19 @@ bool intersectPlane(Ray ray, GPUObject obj, out hitInfo hit)
bool intersectQuad(Ray ray, GPUObject obj, out hitInfo hit) bool intersectQuad(Ray ray, GPUObject obj, out hitInfo hit)
{ {
// obj.edge1 and obj.edge2 are the two edge vectors from quad origin vec3 normal = normalize(cross(obj.vertex1, obj.vertex2));
vec3 normal = normalize(cross(obj.edge1, obj.edge2));
float d = dot(normal, ray.direction); float d = dot(normal, ray.direction);
float t = dot(obj.position - ray.origin, normal) / d; float t = dot(obj.position - ray.origin, normal) / d;
if (t <= 0.0 || d == 0.0) return (false); if (t <= 0.0 || d == 0.0) return (false);
// Get hit point relative to quad origin
vec3 p = ray.origin + ray.direction * t - obj.position; vec3 p = ray.origin + ray.direction * t - obj.position;
// Project hit point onto edges using dot product float e1 = dot(p, obj.vertex1);
float e1 = dot(p, obj.edge1); float e2 = dot(p, obj.vertex2);
float e2 = dot(p, obj.edge2);
// Check if point is inside quad using edge lengths float l1 = dot(obj.vertex1, obj.vertex1);
float l1 = dot(obj.edge1, obj.edge1); float l2 = dot(obj.vertex2, obj.vertex2);
float l2 = dot(obj.edge2, obj.edge2);
bool inside = e1 >= 0.0 && e1 <= l1 && e2 >= 0.0 && e2 <= l2; bool inside = e1 >= 0.0 && e1 <= l1 && e2 >= 0.0 && e2 <= l2;
@ -58,6 +54,60 @@ bool intersectQuad(Ray ray, GPUObject obj, out hitInfo hit)
return (inside); return (inside);
} }
// bool intersectTriangle(Ray ray, GPUObject obj, out hitInfo hit)
// {
// vec3 pvec = cross(ray.direction, obj.vertex2);
// float det = dot(obj.vertex1, pvec);
// vec3 tvec = ray.origin - obj.position;
// float invDet = 1.0 / det;
// float u = dot(tvec, pvec) * invDet;
// vec3 qvec = cross(tvec, obj.vertex1);
// float v = dot(ray.direction, qvec) * invDet;
// float t = dot(obj.vertex2, qvec) * invDet;
// bool valid = abs(det) > 1e-8 &&
// u >= 0.0 && u <= 1.0 &&
// v >= 0.0 && (u + v) <= 1.0 &&
// t > 0.0;
// hit.t = t;
// hit.position = ray.origin + ray.direction * t;
// hit.normal = obj.normal * sign(-dot(ray.direction, obj.normal));
// return (valid);
// }
bool intersectTriangle(Ray ray, GPUObject obj, out hitInfo hit)
{
vec3 pvec = cross(ray.direction, obj.vertex2);
float det = dot(obj.vertex1, pvec);
if (abs(det) < 1e-8) return (false); // det < 0.0
float invDet = 1.0 / det;
vec3 tvec = ray.origin - obj.position;
float u = dot(tvec, pvec) * invDet;
if (u < 0.0 || u > 1.0) return (false);
vec3 qvec = cross(tvec, obj.vertex1);
float v = dot(ray.direction, qvec) * invDet;
if (v < 0.0 || u + v > 1.0) return (false);
float t = dot(obj.vertex2, qvec) * invDet;
if (t <= 0.0) return (false);
hit.t = t;
hit.position = ray.origin + ray.direction * t;
vec3 normal = obj.normal;
hit.normal = dot(ray.direction, normal) < 0.0 ? normal : -normal;
return (true);
}
bool intersect(Ray ray, GPUObject obj, out hitInfo hit) bool intersect(Ray ray, GPUObject obj, out hitInfo hit)
{ {
if (obj.type == 0) if (obj.type == 0)
@ -66,6 +116,8 @@ bool intersect(Ray ray, GPUObject obj, out hitInfo hit)
return (intersectPlane(ray, obj, hit)); return (intersectPlane(ray, obj, hit));
if (obj.type == 2) if (obj.type == 2)
return (intersectQuad(ray, obj, hit)); return (intersectQuad(ray, obj, hit));
if (obj.type == 3)
return (intersectTriangle(ray, obj, hit));
return (false); return (false);
} }

View File

@ -1,9 +1,9 @@
float randomValue(inout uint rng_state) float randomValue(inout uint rng_state)
{ {
rng_state = rng_state * 747796405 + 2891336453; rng_state = rng_state * 747796405u + 2891336453u;
uint result = ((rng_state >> ((rng_state >> 28) + 4)) ^ rng_state) * 277803737; uint result = ((rng_state >> ((rng_state >> 28u) + 4u)) ^ rng_state) * 277803737u;
result = (result >> 22) ^ result; result = (result >> 22u) ^ result;
return (result / 4294967295.0); return (float(result) * (1.0 / 4294967295.0));
} }
float randomValueNormalDistribution(inout uint rng_state) float randomValueNormalDistribution(inout uint rng_state)
@ -26,3 +26,30 @@ vec3 randomHemisphereDirection(vec3 normal, inout uint rng_state)
vec3 direction = randomDirection(rng_state); vec3 direction = randomDirection(rng_state);
return (direction * sign(dot(normal, direction))); return (direction * sign(dot(normal, direction)));
} }
#define M_PI 3.1415926535897932384626433832795
// vec3 randomHemisphereDirection(vec3 normal, inout uint rng_state)
// {
// float r1 = randomValue(rng_state);
// float r2 = randomValue(rng_state);
// float phi = 2.0 * M_PI * r1;
// float cos_theta = sqrt(1.0 - r2);
// float sin_theta = sqrt(r2);
// // Create orthonormal basis
// vec3 tangent, bitangent;
// if (abs(normal.x) > abs(normal.z)) {
// tangent = normalize(vec3(-normal.y, normal.x, 0.0));
// } else {
// tangent = normalize(vec3(0.0, -normal.z, normal.y));
// }
// bitangent = cross(normal, tangent);
// return normalize(
// tangent * (cos(phi) * sin_theta) +
// bitangent * (sin(phi) * sin_theta) +
// normal * cos_theta
// );
// }

View File

@ -38,7 +38,7 @@ void Camera::updateCameraVectors()
void Camera::update(float delta_time) void Camera::update(float delta_time)
{ {
delta_time = std::min(delta_time, 0.1f); delta_time = std::min(delta_time, 0.01f);
_velocity += _acceleration * delta_time; _velocity += _acceleration * delta_time;

View File

@ -93,8 +93,15 @@ void Scene::updateGPUData()
else if (obj->getType() == Object::Type::QUAD) else if (obj->getType() == Object::Type::QUAD)
{ {
auto quad = static_cast<const Quad *>(obj); auto quad = static_cast<const Quad *>(obj);
gpu_obj.edge1 = quad->getEdge1(); gpu_obj.vertex1 = quad->getEdge1();
gpu_obj.edge2 = quad->getEdge2(); gpu_obj.vertex2 = quad->getEdge2();
}
else if (obj->getType() == Object::Type::TRIANGLE)
{
auto triangle = static_cast<const Triangle *>(obj);
gpu_obj.vertex1 = triangle->getVertex2();
gpu_obj.vertex2 = triangle->getVertex3();
gpu_obj.normal = triangle->getNormal();
} }
_gpu_objects.push_back(gpu_obj); _gpu_objects.push_back(gpu_obj);

View File

@ -31,6 +31,12 @@ SceneParser::SceneParser(Scene *scene) : _scene(scene)
try { return (new Quad(ss)); } try { return (new Quad(ss)); }
catch (const std::exception &e) { throw; } catch (const std::exception &e) { throw; }
}; };
object_parsers["tr"] = [](std::stringstream &ss) -> Object *
{
try { return (new Triangle(ss)); }
catch (const std::exception &e) { throw; }
};
} }
void SceneParser::parseMaterial(std::stringstream &line) void SceneParser::parseMaterial(std::stringstream &line)