Laurent Rineau
a3587eabf3
A version with less branches and more numerical computation
2012-06-15 15:12:04 +00:00
Laurent Rineau
41ba29e19a
Factorize code of Do_intersect(Bbox_3, <something>)
...
Uniform use of do_intersect_bbox_segment_aux(..) with various Boolean
template arguments.
2012-06-15 15:06:34 +00:00
Laurent Rineau
a72bd80380
Pass the bbox as argument instead of the six coordinates
...
That increased the perfs! :-)
2012-06-14 17:04:35 +00:00
Laurent Rineau
503d441f1e
merge changes from next
2012-06-13 15:51:29 +00:00
Sébastien Loriot
ace74a2bab
Object::empty() is !variant::operator bool ()
2012-04-24 16:57:58 +00:00
Philipp Möller
17797b7271
Merge next into this branch. There have been conflicts in the
...
AABB_tree documentation, Intersections_3 and Arrangement_on_surface_2.
The merge also introduced a regression for a bug fixed in R68387 which
fixed a bug in Triangle_3 Segment_3 intersections. The relevant
testcase is in triangle_other_intersection_test.cpp.
2012-04-24 15:06:19 +00:00
Laurent Rineau
6c705ab777
Fix the test
...
One cannot expect exact intersections computations results when the kernel
is not. This patch fixes the test: the equality between the result and the
expected result is tested with an epsilon unless the kernel has exact
constructions.
2012-04-23 22:17:15 +00:00
Sébastien Loriot
8db3036330
BUGFIX
...
correct error in intersection computation of triangle_3 segment_3
when the segment is collinear with a triangle edge.
2012-04-05 11:57:58 +00:00
Sébastien Loriot
ab57806db7
missing enum_cast
2012-03-22 11:08:05 +00:00
Sébastien Loriot
ba760bbdb2
need to use an enum for having the different cases:
...
when the end point is on the facet, any ray have the endpoint in the
plane of the facet.
2012-03-22 10:39:23 +00:00
Sébastien Loriot
b058a2a4f3
modify the internal do_intersect Ray_3 vs Triangle_3 function
...
to be able to known whether the endpoint of the ray lies inside the
plane of the triangle. The running time is the public do_intersect function
should remain the same.
2012-03-21 18:20:04 +00:00
Laurent Rineau
672d2dd292
Commit work in progress
2012-03-21 16:58:29 +00:00
Laurent Rineau
439dd0abb9
Fix typo
...
- Remove a line that was rewritten but not removed.
- Add a comment
2012-03-21 14:34:53 +00:00
Laurent Rineau
b5d987a4b5
Increasing the perf of the filtered predicate
...
When FT is Interval_nt, it is better that the
Do_intersect_bbox_segment_aux_is_greater returns a Uncertain<bool> instead
of a bool. That can delay the conversion of Uncertain<bool> to bool, and
hence better perf.
2012-03-21 14:24:31 +00:00
Laurent Rineau
e940d97a75
Prepare the code factorization with the static filter of Do_intersect_3
2012-03-21 13:59:45 +00:00
Laurent Rineau
0e6dbc4b40
Reorganize expressions that are evaluation of the sign of a determinant
...
There are six of them in do_intersect(Bbox_3, Segment_3)
2012-03-21 11:49:30 +00:00
Laurent Rineau
c291e92442
Less tests of sign of expressions
...
Followup to previous commit.
I have managed to transform most of the tests to simple comparison of input
coordinates. That will ease the writing of static filters. Only six
determinant signs have to be exactly determined.
2012-03-21 11:40:29 +00:00
Laurent Rineau
671464db4c
Less tests of sign of expressions
...
I have managed to transform most of the tests to simple comparison of input
coordinates. That will ease the writing of static filters.
2012-03-21 11:13:19 +00:00
Laurent Rineau
e54df14afb
Code optimized for all x-, y-, and z-axis
2012-03-20 17:47:55 +00:00
Laurent Rineau
0358937f01
Code optimized for x-axis
2012-03-20 16:56:13 +00:00
Laurent Rineau
b0cfb5bc1f
Fix a stupid copy-paste error
2012-03-19 14:12:05 +00:00
Laurent Rineau
02acd80611
Better test and bench for do_intersect(BBox_3, Ray_3|Segment_3)
2012-03-19 14:11:45 +00:00
Laurent Rineau
1aa69b5a8b
Factorize the _aux function for do_intersect(BBox_3, Ray_3|Segment_3)
2012-03-19 12:07:20 +00:00
Laurent Rineau
b5703e9cf8
Add a note about a test that is already covered by previous test.
2012-03-16 16:14:47 +00:00
Laurent Rineau
58809c064a
Full test suite of do_intersect(Bbox_3, Segment_3).
...
I have tested with gcov that all branches of the predicates are tested.
2012-03-16 16:10:44 +00:00
Laurent Rineau
3d36a2e4c3
Display coordinates with full precision
2012-03-15 15:47:36 +00:00
Laurent Rineau
bd09875fea
Add a few test cases.
...
One of then use boost::math::nextafter to move around a critical
case. That is strange that even non-exact FT can deal with that without
filtering.
2012-03-15 15:45:31 +00:00
Laurent Rineau
611a2c439b
Naively translate and scale the inputs, for test of do_intersect(Bbox, ..)
2012-03-15 15:09:05 +00:00
Laurent Rineau
8dbae2494a
Beginning of an intensive test suite of do_intersect(Bbox_3, Segment_3)
2012-03-15 14:48:12 +00:00
Laurent Rineau
71d1ba01e1
This version should be correct.
2012-03-15 13:27:06 +00:00
Laurent Rineau
c0a37addfb
Also test with Sc<Gmpq>.
...
Simple_cartesian<Gmpq> is a non-filtering kernel whose FT is not a IEEE 754
type. That number type is interesting to test with.
2012-03-15 11:11:47 +00:00
Laurent Rineau
c8bc77e46d
Submit work in progress. The old code was really wrong!
2012-03-14 16:41:03 +00:00
Laurent Rineau
300057e17a
Test also with Filtered_kernel without static filters
...
And count the percentage of intersection among random objects
2012-03-14 16:24:41 +00:00
Laurent Rineau
68b48a7151
Commit current version
...
To be reviewed fully.
2012-03-14 15:54:19 +00:00
Andreas Fabri
6c9625e514
Fix for <windows.h> bug
2012-01-21 08:33:51 +00:00
Andreas Fabri
f834260e4c
Fix for Windows 'min/max' bug
2012-01-19 08:03:51 +00:00
Andreas Fabri
be573d2316
Fix for Windows 'min/max' bug
2012-01-18 09:52:23 +00:00
Laurent Rineau
a37c74d534
Add license files, per package
2012-01-16 15:54:22 +00:00
Laurent Rineau
5b5dd33848
merge changes from next
2012-01-09 12:33:39 +00:00
Laurent Rineau
5685e10669
reintegrate \^/branches/features/Static_filter_do_intersect-GF
2011-11-25 17:45:11 +00:00
Laurent Rineau
fb796dbc97
Missing match for Intersect_3::operator()(Ray_3, Triangle_3)
...
There was only Intersect_3::operator()(Triangle_3, Ray_3).
The specializations for CGAL::intersection were for both order however.
2011-11-25 17:40:02 +00:00
Laurent Rineau
ede47077ce
cleanup
2011-11-24 14:43:25 +00:00
Andreas Fabri
c4c4a24029
cleanup
2011-11-24 14:15:32 +00:00
Laurent Rineau
e0c80037ae
merge changes from next
2011-11-23 15:53:51 +00:00
Laurent Rineau
fc5a23bc06
Comments to help debugging
2011-11-21 14:53:16 +00:00
Philipp Möller
3fe7c7b9dd
Removed cruft from Intersection_traits and Kernel_d now uses the macros do declare global functions
2011-11-21 13:52:39 +00:00
Sébastien Loriot
59f5cc0ba0
optimise Bbox_3-line_3 do_intersect (prevent filter failures)
2011-11-21 13:43:45 +00:00
Laurent Rineau
1ea6830233
New version of Do_intersect_3 static filter
...
This time we hope it is correct.
2011-11-18 15:34:26 +00:00
Philipp Möller
ee09ef2297
Overloading intersection and do_intersect now work by introducing a better match for every possible function
2011-11-18 14:14:41 +00:00
Philipp Möller
450f438518
IT shortcut not circumvents specifying a kernel making it an actual shortcut and nicer for exposure in APIs
2011-11-10 11:06:26 +00:00