Correct how filterIntersections work, seems c++ don't like how thing were done.

This commit is contained in:
Godzil
2020-03-09 13:44:10 +00:00
parent cd93b67274
commit 8550d4068f
3 changed files with 6 additions and 9 deletions

View File

@@ -34,7 +34,7 @@ protected:
bool intersectionAllowed(bool leftHit, bool inLeft, bool inRight);
Intersect filterIntersections(Intersect &xs);
void filterIntersections(Intersect &xs, Intersect &ret);
void updateBoundingBox();
BoundingBox getBounds();

View File

@@ -101,13 +101,11 @@ bool CSG::intersectionAllowed(bool leftHit, bool inLeft, bool inRight)
return false;
}
Intersect CSG::filterIntersections(Intersect &xs)
void CSG::filterIntersections(Intersect &xs, Intersect &ret)
{
bool inl = false;
bool inr = false;
Intersect ret = Intersect();
int i;
for(i = 0; i < xs.count(); i++)
@@ -128,8 +126,6 @@ Intersect CSG::filterIntersections(Intersect &xs)
inr = !inr;
}
}
return ret;
}
void CSG::dumpMe(FILE *fp)

View File

@@ -31,8 +31,8 @@ public:
return this->intersectionAllowed(leftHit, inLeft, inRight);
};
Intersect doFilterIntersections(Intersect &xs) {
return this->filterIntersections(xs);
void doFilterIntersections(Intersect &xs, Intersect &ret) {
this->filterIntersections(xs, ret);
}
CSGTest(OperationType operation, Shape *left, Shape *right) : CSG(operation, left, right) {};
@@ -186,7 +186,8 @@ TEST(CSGTest, Filtering_a_list_of_intersections)
for(i = 0; i < testCount; i++)
{
c.setOperation(testList[i]);
Intersect result = c.doFilterIntersections(xs);
Intersect result = Intersect();
c.doFilterIntersections(xs, result);
ASSERT_EQ(result.count(), 2);
ASSERT_EQ(result[0], xs[testResults[i][0]]);