10
10
#include " Merger.hpp"
11
11
#include " Parser.hpp"
12
12
#include " Display.hpp"
13
+ #include " quadtree/QuadTree.hpp"
13
14
14
15
using namespace std ;
15
16
@@ -48,6 +49,9 @@ void applyTrans(Shape& a, Shape& b, double alpha, double beta, double offset, Bo
48
49
* (uses precomputed boxA)
49
50
*/
50
51
double getClose (Shape& shapeA, Shape& shapeB, Box& boxA) {
52
+ // QuadTree& q1 = dynamic_cast<QuadTree &>(shapeA);
53
+ // QuadTree& q2 = dynamic_cast<QuadTree &>(shapeB);
54
+
51
55
// Dichotomy to find closest non-intersecting position (by translating on the x-axis)
52
56
double x1, x2, mid;
53
57
x1 = boxA.min_corner ().x ();
@@ -73,6 +77,8 @@ vector<vector<unsigned> > SimpleTransformer::transform() {
73
77
LOG (info) << " Merging shapes" ;
74
78
vector<vector<unsigned > > ret;
75
79
vector<bool > mergedV (_shapes.size (), false );
80
+
81
+ cerr << " USE QUADS :" << _shapes.useQuads () << endl;
76
82
// Initial shufle
77
83
random_shuffle (_shapes.begin (), _shapes.end ());
78
84
@@ -85,7 +91,7 @@ vector<vector<unsigned> > SimpleTransformer::transform() {
85
91
double bestAlpha = 0 ., bestBeta = 0 ., bestMid = 0 ; // Best rotations
86
92
int bestOffset = 0 .; // Best translation
87
93
double bestArea = 0 .; // Best area of merged couples of shapes
88
- unsigned j = i + 1 ;
94
+ unsigned j = i + 1 ;
89
95
unsigned bestJ = j;
90
96
// Move shapes
91
97
bool merged = false ; // Check if a merge occured
@@ -95,9 +101,11 @@ vector<vector<unsigned> > SimpleTransformer::transform() {
95
101
for (int beta = 0 .; beta < 360 ; beta += _rotateStep) { // Rotate second shape
96
102
for (int offset = 0 ; offset < _translateNb ; ++offset) { // Trying different offsets
97
103
Box boxA, boxB;
98
- Shape shapeA, shapeB;
99
- shapeA = _shapes[i];
100
- shapeB = _shapes[j];
104
+ Shape shapeA = _shapes[i];
105
+ Shape shapeB = _shapes[j];
106
+ // QuadTree& q1 = dynamic_cast<QuadTree &>(_shapes[i]);
107
+ // QuadTree& q2 = dynamic_cast<QuadTree &>(_shapes[j]);
108
+
101
109
applyTrans (shapeA, shapeB, alpha, beta, static_cast <double >(offset) / _translateNb, boxA,
102
110
boxB, 0 , true );
103
111
double mid = getClose (shapeA, shapeB, boxA);
0 commit comments