We don't do it on the fly to avoid additional rescaling, it is done only once per point
This also changes occasionally some number-of-points in testcases (now more cleaned)
Function now renamed to segments_collinear, and the other to segments_crosses
We calculate opposite now only in "direction", where it is used to pass through.
That one also checks on equality
Test 5103 now (or with previous action for touches) also passes again.
This is a large commit. It replaces enriched.distance with factor. Factor
is based on integer calculations, calculated in cart_intersect, from the
passed robust points, so always trustable.
We had to do this because without certain tests failed because of FP
problems with distance (calculated with FP).
This commit also greatly simplifies relate_collinear, where most things and checks
are replaced by simple unified calculations. This is also based on robust
fractions (but could have been done earlier).
Many (but not all) testcases commented in previous commit are now uncommented
again, they now work thanks to the fractions. There are also testcases
uncommented which now work correctly using clang/Linux
This commit breaks compiling disjoint (because of rescale), and running buffer
(also because of rescale), and some more (probably all because or rescaling),
this has to be fixed soon after.
A robust type is integer for float/double. The rescaled points will only
be used for side-information and equality and distance-comparisons, not
to calculate the intersection points themselves.
Currently the code is #ifdefed
It now also used the passed side information in direction.hpp, which saves calculations and is shorter.
In the end the performance is similar.
One (of many) situations in ticket 9081 is added in multi unit tests.
[SVN r85867]
collinear is now symmetric (it could happen that A was collinear w.r.t. B but not vice versa, that is now resolved);
vertical/horizontal (nearly collinear) segments are now checked later (this and previous bug were found by buffer-high-volume tests).
Added testcases (buffer_rt_f did cause problems with previous implementation, fixed now). Updated testcases (some cases are quite sensitive to implementation while output is still valid)
[SVN r77296]
append,assign,buffer,comparable_distance,convert,correct,disjoint,distance,envelope,for_each,make,reverse,simplify,transform,unique
plus all vcproj files
[SVN r69336]
Adaptions to test with respect to new namespace model
Removed GMP/CLN and, where it was present, replaced by TTMATH
Small fix in comparable_distance test
All testfiles use bg as alias now
[SVN r66811]
-> added many testcases
Various updates in testcases for support of open polygons
recursive_boxes.cpp, added triangles as well (dropped corner)
[SVN r66450]