Commit Graph

650 Commits

Author SHA1 Message Date
Sébastien Loriot 6c2ef90a21 remove default constructor 2012-05-10 16:41:23 +00:00
Sébastien Loriot 8a3d8e1d01 rename cache_primitive -> cache_datum 2012-05-10 16:18:33 +00:00
Sébastien Loriot be1de01b22 *update AABB_primitive: the property maps must operate on Id!
*correct and complete implementation for HalfhedgeGraph models
2012-05-10 15:51:45 +00:00
Sébastien Loriot 388d53e0a3 correct enable_if 2012-05-10 08:19:38 +00:00
Sébastien Loriot 31d6ebe9bf *add primitive types for HalfedgeGraph and FaceGraph (wip)
*clean up triangle and segment primitive
2012-05-09 17:11:09 +00:00
Sébastien Loriot 6efd7f7954 * remove a template parameter to primitive caching
* add a generic class that has two property map as template parameter to define a aabb_tree primitive
2012-05-09 07:14:49 +00:00
Sébastien Loriot 6e72bfd1a7 add a point property map to access reference_point, with a default that uses datum() 2012-05-04 14:59:14 +00:00
Sébastien Loriot ed6ac1f4fd rename Property maps template parameter
set primitive caching to false by default
2012-05-04 14:49:27 +00:00
Sébastien Loriot 58156fb1e9 merge from next 2012-05-04 12:24:50 +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 b435af6afd Add svn:eol-style=native. Rewrite EOLs accordingly. 2012-02-15 13:03:09 +00:00
Laurent Rineau e0bc688832 Bug fix
<CGAL/internal/AABB_tree/nearest_point_segment_3.h> was doing stupid things
if there was a degenerate segment in the AABB tree.
2012-02-15 13:02:25 +00:00
Laurent Rineau 09d86739d0 Recode eol of two files: dos2unix, and add the eol-style=native svn property 2012-02-14 10:43:34 +00:00
Laurent Rineau 8f59fd9592 Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Philipp Möller 376b6309f4 Adapted AABB_tree to the new concept and documented the API changes 2011-11-15 17:13:09 +00:00
Philipp Möller bddbfcc8e4 Adapted AABB_tree for new intersections 2011-11-10 16:00:22 +00:00
Andreas Fabri 77b9fd79db Remove ETHZ copyright, as Camille's contribution during his postdoc was minor 2011-09-29 15:34:00 +00:00
Sébastien Loriot 5e0c09d8ce For backward compatibility reasons and according to this article:
http://gotw.ca/gotw/006.htm, accelerate_distance_queries and 
clear_search_tree should be const.

To guarantee the read-only thread-safety, a mutex for the construction
of the internal kd-tree is used.
At the same time, optimize accelerate_distance_queries() to not
redo computation if nothing has changed in the aabb_tree.

Note that clear_search_tree does not need to be thread-safe as it is private.
2011-09-09 08:31:38 +00:00
Sébastien Loriot c93ba3a215 remove temporary comment 2011-09-08 16:03:23 +00:00
Sébastien Loriot f8449dcec4 more efficient usage of mutex. The lock is only done
if the build need to be done. We have an extra "if (m_need_build)"
but otherwise we would need to use mutex::try_lock() which results
in more code and as efficient.
2011-09-08 15:54:44 +00:00
Sébastien Loriot a09f6640f5 remove non-const version of root_node added in r65337
for backward compatibility. It is not documented and not
used (in a non-const context).
2011-09-08 12:02:06 +00:00
Sébastien Loriot 795ab80486 use a mutex in const function root_node to protect the non const call to
build()

The class AABB_tree is now read-only thread-safe
2011-09-08 08:56:16 +00:00
Sébastien Loriot eed2074f7f Fix constness issues in AABB_tree
*remove mutable data members
  *accelerate_distance_queries is not const
  *clear_search_tree is not const
  *root_node() const returns a const Node*
  *add root_note() non-const version
  *update documentation of AABB_tree class. function constness was not documented
  *update changes.html
2011-09-07 09:55:59 +00:00
Sébastien Loriot 578d41a962 deprecate AABB_polyhedron_*_primitive
add triangle and segment property_map from polyhedron simplices
update examples to use these property maps with modified primitive classes.
2011-07-25 06:22:05 +00:00
Sébastien Loriot 7a0b2326e1 add property_map as template parameter of segment and triangle primitive
and add a template parameter to enable or disable the caching of the
or object inside the primitive.

Pb to handle: in case the object is not cached, point() might be
expansive
2011-07-20 21:59:14 +00:00
Laurent Rineau 72f323a5dd The bbox() of AABB_tree can return a const reference. 2011-04-07 12:54:35 +00:00
Laurent Rineau 6f390c482e Add a missing #include of OpenGL headers. 2011-01-10 16:26:44 +00:00
Sébastien Loriot 12e8540bbe merge from candidate branch. 2011-01-10 10:46:16 +00:00
Laurent Rineau 8b08eb2b5b Fix -pedantic error. 2010-09-28 21:23:13 +00:00
Sébastien Loriot 1daecf3943 move BBox vs {sphere,plane,triangle} do_intersect from AABB_tree to Intersections_3,
and update accordingly include directives. Update testsuite

remove unneed CMakeLists.txt from AABBtree testsuite

Remove Triangle_3_Plane_3 intersection from AABB_tree (I define it in Intersections_3 some days ago, thus a conflict)
2010-09-01 08:49:24 +00:00
Sébastien Loriot 4aa953888f all polyhedron primitives to be constructed from non compact container iterators 2010-08-31 13:45:38 +00:00
Stéphane Tayeb 813d775fba Add missing #include. 2010-07-08 07:35:44 +00:00
Andreas Fabri 54f913051c int -> size_type/std::size_t 2010-06-21 15:38:26 +00:00
Sébastien Loriot 52317dd49f add python script (replace_CGAL_NAMESPACE.py) to replace CGAL_BEGIN_NAMESPACE and CGAL_END_NAMESPACE
by namespace CGAL { and } //namespace CGAL. in all .h and .cpp files
in a directory.
Apply it to all packages in the trunk
Remove macro definition from the config.h file.
2010-06-09 07:37:13 +00:00
Stéphane Tayeb afdd14bb62 Fix compilation on x86-64_Linux-2.6_llvm-clang-with-g++-4.4.1_F11: use fully qualified name for cross_product call. 2010-05-20 07:02:05 +00:00
Laurent Rineau a65e49133b Fix: in <CGAL/AABB_intersections.h>,
Kernel::Do_intersect_3()(Triangle_3, Bbox_3) was available
but not Kernel::Do_intersect_3()(Bbox_3, Triangle_3).
2010-05-05 14:54:49 +00:00
Sébastien Loriot 15557626cc remove not needed break instructions (avoid warning with g++ (Debian 4.3.4-6) 4.3.4) 2010-03-31 08:45:58 +00:00
Andreas Fabri 0758e61952 fix for the case that one of the triangle vertices is on the plane 2010-02-25 11:55:20 +00:00
Sylvain Pion 85dc12f2a7 Remove empty lines at beginning and end of files
(apply Scripts/developer_scripts/remove_empty_lines.pl).
2010-02-01 12:55:28 +00:00
Stéphane Tayeb 90288a058b Move do_intersect(Bbox,Bbox/Line/Ray/Seg) and intersection(Triangle,Line/Ray/Seg) to Intersections_3. 2009-12-18 15:13:30 +00:00
Stéphane Tayeb e476966856 Change License to LGPL. Fix Copyrights. 2009-12-18 14:35:34 +00:00
Stéphane Tayeb cab2982563 Implement Sylvain's comments:
+ add missing includes
  + avoid object copies
  + replace CGAL_kernel_assertion(false) by CGAL_error()
  + use is() function of CGAL::Object
  + improve style (remove spaces, white lines...)
2009-12-16 17:03:17 +00:00
Stéphane Tayeb ab503ac11f * Fix triangle_other test
* Fix Triangle_3_Ray_3_intersection.h header
2009-11-24 13:07:45 +00:00
Stéphane Tayeb 7ff50b95a0 * Rename test files which have to be moved to kernel
* Fix header protection names
2009-11-20 17:02:39 +00:00
Stéphane Tayeb 836d042180 Fix previous commit (thanks to compiler cache...). 2009-11-20 16:57:44 +00:00
Stéphane Tayeb 6550224744 Move and rename files (prepares integration into kernel). 2009-11-20 16:38:02 +00:00
Stéphane Tayeb 854fef2f8a * Update (triangle, seg/line/ray) intersection computation
* Enrich (triangle, seg/line/ray) test suite
* Minor formatting change in Bbox_3_line_3_do_intersect.h
2009-11-20 13:09:08 +00:00
Stéphane Tayeb 4f50028d7b Minor formatting clean. 2009-11-18 08:51:51 +00:00
Stéphane Tayeb c095f38e66 Rewrite (seg/ray/line - bbox) predicates without divisions. 2009-11-17 16:41:57 +00:00
Stéphane Tayeb 3f1a416bc0 Fix syntax error. 2009-11-16 12:48:11 +00:00
Stéphane Tayeb f7a63d0ec5 revert r52901-52902 (moving predicate from AABB_tree to Intersections_3) 2009-11-10 16:58:02 +00:00
Stéphane Tayeb b869d0956d Move intersection predicates and constructions from AABB_tree to Intersection_3. 2009-11-09 12:10:23 +00:00
Pierre Alliez ca4f73b860 fix #ifdefs 2009-10-29 10:42:53 +00:00
Laurent Rineau 83912b2952 Massive fix of svn:keywords properties, and $URL$ keyword. 2009-10-20 08:59:26 +00:00
Laurent Rineau 7bf0990dbb Minor fix: the correct way to construct a FT from 0 or 1, that is
documented to work with all FT, is FT(0)/FT(1), and not
(FT)(0.0)/(FT)(1.0). The concept Field refines FromIntConstructible:
See:
  http://www.cgal.org/Manual/last/doc_html/cgal_manual/Algebraic_foundations_ref/Concept_Field.html
and follow the "refines" chain until:
  http://www.cgal.org/Manual/last/doc_html/cgal_manual/Algebraic_foundations_ref/Concept_FromIntConstructible.html
2009-10-20 07:34:13 +00:00
Stéphane Tayeb 1e4358dc07 Fix warning. 2009-10-20 07:03:58 +00:00
Stéphane Tayeb 99a5c3160a Fix compilation error. 2009-10-15 06:40:45 +00:00
Stéphane Tayeb aa3e601755 Computation and code factorization (to avoid early roundings). 2009-10-14 08:22:24 +00:00
Stéphane Tayeb cfa88ab257 * Fix Triangle_3_line_3_intersection.h (implementation inspired from Triangle_3_line_3_do_intersect.h)
* Add test for triangle_3/line_3 intersection (should be enriched maybe) in file aabb_intersection.cpp
* Test exact_exact kernel in aabb_do_intersect_test.cpp
2009-10-09 14:09:14 +00:00
Stéphane Tayeb 9ba530384f * Fix Triangle_3_segment_3_intersection.h (implementation inspired from Triangle_3_segment_3_do_intersect.h)
* Add test for triangle_3 segment_3 intersection (should be enriched maybe)
* Test more kernels in aabb_do_intersect_test.cpp
2009-10-05 09:41:47 +00:00
Stéphane Tayeb 5f464aec46 Merge [r51090:51960]
From branches/CGAL-3.5-branch/AABB_tree to trunk/AABB_tree

r51953 | stayeb | 2009-09-16 13:17:12 +0200 (Wed, 16 Sep 2009) | 1 line
* Fix AABB_tree missing default ctor.

r51936 | stayeb | 2009-09-14 19:37:18 +0200 (Mon, 14 Sep 2009) | 2 lines
* Fix ray_bbox & line_bbox do_intersect predicates for filtered kernels
* add a small test for do_intersect(seg/ray/line, bbox) queries

r51932 | lrineau | 2009-09-14 15:32:24 +0200 (Mon, 14 Sep 2009) | 3 lines
* Fix predicates of <CGAL/AABB_intersection.h>, so that they are correctly filtered when called from the global function template CGAL::do_intersect

r51931 | stayeb | 2009-09-14 15:22:12 +0200 (Mon, 14 Sep 2009) | 1 line
* Fix bbox_3_segment_3 intersection for filtered kernels.

r51868 | lrineau | 2009-09-07 17:01:48 +0200 (Mon, 07 Sep 2009) | 2 lines
* Fix the non-filtering of BBox_3-Segment_3 intersection.
2009-09-18 12:49:03 +00:00
Pierre Alliez 63d3ba8f0d default constructor. 2009-09-15 10:36:40 +00:00
Pierre Alliez bfaee9aae4 adds default constructor. 2009-09-15 10:01:58 +00:00
Sylvain Pion 8573fe26ce Rename CGALi to internal. 2009-08-24 17:10:04 +00:00
Laurent Rineau ccd0fcc73f Merged revisions 51083 via svnmerge from
svn+ssh://scm.gforge.inria.fr/svn/cgal/branches/CGAL-3.5-branch

........
  r51083 | stayeb | 2009-08-06 09:48:42 +0200 (Thu, 06 Aug 2009) | 1 line
  
  Minor fix: include CGAL/intersections.h instead of CGAL/intersection_3.h.
........
2009-08-18 14:13:54 +00:00
Pierre Alliez d987180d75 fix copyrights. 2009-08-07 18:57:08 +00:00
Sylvain Pion 7e0db3191b Fix & homogenize Copyright header lines :
- Copyrigth -> Copyright
- ETHZ (Suisse) -> ETH Zurich (Switzerland)
2009-08-07 11:18:32 +00:00
Laurent Rineau f81561f3d4 Add copyright and license header 2009-07-31 21:06:50 +00:00
Laurent Rineau 968b31d684 Move the non-documented AABB_polyhedral_oracle.h to the polyhedron demo. 2009-07-22 14:06:10 +00:00
Stéphane Tayeb 0a784e8d1f Fix AABB_polyhedral_oracle (needed by Polyhedron_demo). 2009-07-22 08:18:13 +00:00
Pierre Alliez 8baebaeded some cleaning 2009-07-16 12:39:08 +00:00
Camille Wormser 6261018859 memory check 2009-07-16 12:25:46 +00:00
Pierre Alliez eb645bed0c AABB tree: fix quibble in comment. 2009-07-16 06:11:29 +00:00
Pierre Alliez cd199a7504 AABB tree: added one message to track the last remaining error in the test suite. 2009-07-16 06:07:41 +00:00
Stéphane Tayeb b92c3902f5 Fix a bug for demo benchmark. KD-Tree is now build right after its construction (instead of at the first query). 2009-07-09 11:46:28 +00:00
Pierre Alliez 72ef5cb900 AABB tree: intersection benchmark code made much shorter and more accurate (the random generation of queries is made once for all before benchmarking, hence the timings are more precise). 2009-07-08 22:27:55 +00:00
Laurent Rineau 0d7cc0b6b5 Fix: AABBTraits must not require size_type. The size_type is an
implementation detail of the class template AABB_tree, and traits classes
cannot know that type.
2009-07-08 16:16:15 +00:00
Pierre Alliez 1b26c8d562 AABB tree: fix one table line of the benchmark. 2009-07-08 12:17:31 +00:00
Pierre Alliez de47ee0a27 AABB tree: do_intersect now calls the First_primitive traversal traits (much faster)
performance section updated
2009-07-08 12:02:28 +00:00
Pierre Alliez 7b0f96ca06 aabb tree: attempt to fix warning:
message is Triangle_3_segment_3_intersection.h:93: warning: control reaches end of non-void function
laurent (R) - can you take a look at it?
2009-07-06 19:40:54 +00:00
Pierre Alliez 9772610e5f AABB tree: benchmark across kernels and updated intersection tests (more accurate).
need to fix compilation issue with EPIC kernel (I guess one include missing)
2009-07-05 13:58:00 +00:00
Pierre Alliez 1d6e776431 AABB tree: some more cleanup. 2009-07-01 20:49:03 +00:00
Pierre Alliez bc80ee2e5c AABB tree: point out some (level 4) warnings for L.Rineau. 2009-07-01 20:23:41 +00:00
Pierre Alliez 78d040c39a aabb tree demo: fix one strange compilation error that happens only with VC2005 (took me hours to understand that it's probably a compiler bug).
benchmark distance queries in the demo and updated user manual (perf section)
2009-06-30 21:18:31 +00:00
Pierre Alliez 35170ac299 aabb tree: added performance section [to be completed with distance queries and curves] 2009-06-29 21:06:26 +00:00
Pierre Alliez dfa149a2d7 aabb tree: more code cleanup 2009-06-27 15:19:29 +00:00
Pierre Alliez 4c19729e16 aabb tree: a bit of code cleanup 2009-06-27 06:44:31 +00:00
Pierre Alliez a46598daa8 aabb tree: polishing user manual 2009-06-26 17:55:17 +00:00
Stéphane Tayeb c8dc1d84f7 Add a CGAL_assertion (prevents std::bad_alloc). 2009-06-26 11:58:17 +00:00
Pierre Alliez 330640c7e2 aabb tree: more on tests 2009-06-25 20:45:09 +00:00
Pierre Alliez 597f9459d5 aabb tree: some cleanup 2009-06-25 20:08:51 +00:00
Pierre Alliez 88c549f6b1 aabb tree: more on tests 2009-06-23 20:26:45 +00:00
Stéphane Tayeb 761a218fff * Fix configuration error (boost_system is now optional)
* Fix singular iterator copy construction error (build with -D_GLIBCXX_DEBUG)
2009-06-09 08:10:21 +00:00
Stéphane Tayeb c337944925 Add typedef on template parameter AABBTraits in class AABB_node (CC-5.90_F7 error). 2009-06-08 08:29:46 +00:00
Camille Wormser e03e9fb4fd changes needed for the Polyhedron demo to compile 2009-06-05 18:04:47 +00:00
Stéphane Tayeb c83f4d6812 Remove compiler warnings. 2009-06-03 09:40:47 +00:00
Pierre Alliez c9964aa7ac AABB tree: more on tests 2009-05-18 20:33:04 +00:00
Stéphane Tayeb 729ba7be05 Test suite code factorization. Minor fix (return type) in AABB_tree.h. 2009-05-18 14:26:29 +00:00
Stéphane Tayeb 04b5499caf Improve clip in triangle_ray/line/seg intersection construction. There is more to do i think. 2009-05-15 17:22:03 +00:00
Stéphane Tayeb 8bde72f327 * remove workaround for weighted point from AABB_traits
* simplify code of AABB_tree::First_intersection_traits
* change intersection(ray,triangle) and intersection(line,triangle):
returned object is now an empty object, a point or a segment
* remove do_intersect test from Intersection::operator() of
AABB_traits: intersection(ray,triangle) and
intersection(line,triangle) do it.
2009-05-14 10:07:55 +00:00
Camille Wormser f47e9f1f67 one more primitive,
more consistent names
2009-05-14 08:20:50 +00:00
Pierre Alliez 75a82ec32d AABB tree:
- rebuild now returns void.
2009-05-13 07:32:41 +00:00
Laurent Rineau df0e2ec0bc size_type must be lowercase. 2009-05-12 14:29:36 +00:00
Camille Wormser 993c393cd4 forgotten detail 2009-05-11 23:30:04 +00:00
Camille Wormser 0d63e6c207 the Traits now conforms fuly to the documentation 2009-05-11 23:17:40 +00:00
Camille Wormser 614f220eb1 One last warning was missing: it appears only in the examples and not in the test suite.
It means we should add the Plane query case to the test suite.
2009-05-10 16:15:24 +00:00
Camille Wormser 74beff3b13 removed all warnings (-Wall -Wextra).
IMPORTANT THINGS

- We need to add Compute_squared_distance_3 (at least for Point_3, Point_3) to the traits requirements

- Since we use the (decorated) Traits as a template parameter for the Search_traits_3, we need to add
this as a requirement. Currently, the Search_traits_3 requests that the template parameter be a CGAL
kernel. This is much too strong!
2009-05-10 16:05:48 +00:00
Camille Wormser 0f376fb294 removed the warnings, except in one of the test cases. Working on it. 2009-05-10 15:24:04 +00:00
Pierre Alliez 0d2880a413 AABB tree:
- more on examples
- description
- removed leftover traces of projection after grep (two found)
2009-05-09 22:24:39 +00:00
Pierre Alliez 988c746c29 AABB tree:
- first pass on examples to simplify a bit
- TODO: better show variety of queries offered instead of just #intersections
2009-05-09 22:04:33 +00:00
Pierre Alliez 5b992f0ffa AABB tree: more on distance tests with anisotropic triangle mesh model (added finger.off)
remove one warning
some remains in the KD-tree... was unable to remove them for now.
2009-05-09 19:57:37 +00:00
Camille Wormser 5dc7c35be3 distance queries conform to the spec 2009-05-09 10:22:45 +00:00
Pierre Alliez 4a6eb544a8 AABB tree
- rename m_data into m_primitives in Tree
- rename m_p_root into m_p_root_node in Tree
put back squared_distance into distance test
2009-05-09 06:57:36 +00:00
Camille Wormser 8414b99e9a now the test suite compiles and runs! :) 2009-05-08 14:06:51 +00:00
Camille Wormser 01d0293bc5 Code is now almost up to the specification: Primitive::Id everywhere,
the KD-tree uses decorated points to return the Id too. 

There are just a few boost::optional to add in the traits, where we still
use the old bool intersection(..., Result&) approach, and some modernization 
to do in the distance computation things.

Everything compiles.

I have removed the funtion closest_primitive from the code and documentation, 
since it would not be consistent with the rest of the interface, and would not
be faster than closest_point_and_primitive.

I think we are almost done, not only for the documentation, but for the code too.
2009-05-08 12:59:22 +00:00
Pierre Alliez 154ff8cfa0 AABB tree: more on distance queries
it remains to fix the Distance_traits
2009-05-07 21:22:24 +00:00
Pierre Alliez c26e8531e1 AABB tree: intersections now return CGAL::Objects. 2009-05-07 21:03:21 +00:00
Pierre Alliez e034d54b75 AABB tree: more on distance queries
- experiments with primitive vs point hints.
2009-05-07 13:18:17 +00:00
Pierre Alliez db287f0e56 AABB tree: more on internal KD-tree used to accelerate the distance queries. 2009-05-07 10:51:01 +00:00
Camille Wormser 55021bdb9f KD-tree forbids copies -> a pointer now. 2009-05-07 09:41:38 +00:00
Camille Wormser 439292a46c solved the compilation problem for Point_and_primitive
temporarily disabled the kd-tree construction, not to mix two separate compilation issues. I replug it in a minute.
2009-05-07 09:24:41 +00:00
Pierre Alliez fd017c5595 AABB tree: first version of boost::optional for any*
obscure compilation issue for now.
more on doc too
2009-05-07 06:44:59 +00:00
Pierre Alliez db918ecafe AABB tree: undo folder restructuring 2009-05-05 11:51:48 +00:00
Pierre Alliez fbb8eefc2c more on examples 2009-05-04 20:19:22 +00:00
Pierre Alliez a6cf326154 AABB tree:
- examples primitive files in a separate folder
- more on doc from second review.
2009-05-04 20:08:00 +00:00
Gaël Guennebaud 10f9aa181c fix compilation 2009-05-04 15:15:46 +00:00
Camille Wormser 6f050ab6ca tentative API for dealing correctly with the degenerate cases:
it changes NOTHING to the existing code, except that 
number_of_intersections is renamed into number_of_intersected_primitives.
2009-05-02 18:02:11 +00:00
Pierre Alliez 7bc16c5c48 AABB tree: made two sub-folders to store intersections and (later) traversal_traits 2009-05-02 12:13:32 +00:00
Pierre Alliez 2d22df1c41 AABB tree: more on Point_and_primitive in traversal traits 2009-05-02 09:45:20 +00:00
Pierre Alliez b23fd11c04 AABB tree: document size, bbox and empty of the tree
note: we could rename root_bbox as simply bbox
2009-05-01 06:41:10 +00:00
Pierre Alliez 23f94c802b AABB tree: started to implement new API
CAREFUL: does not compile anymore - will fix this next week.
2009-04-30 22:26:53 +00:00
Stéphane Tayeb 6575fdb2e8 Fix compilation error. 2009-04-30 14:06:46 +00:00
Stéphane Tayeb fde6e4f260 * add workaround for weighted point (TOFIX)
* add AABB_const_polyhedron_edge_primitive
2009-04-30 14:04:45 +00:00
Pierre Alliez fbc8c064d1 AABB tree: type fix. 2009-04-29 15:10:16 +00:00
Pierre Alliez 519782b2af AABB tree: nearest_point_segment_3 added - all examples now compile fine
one file renamed
note: "origin" is a reserved term - better to rename it to query?
2009-04-29 15:01:36 +00:00
Pierre Alliez b96d8c442c AABB: fix clear_and_insert
remove lucy model (too big)
2009-04-28 20:04:23 +00:00
Pierre Alliez a86c346e54 AABB: implemented two new functions suggested by Andreas:
void clear(void)
bool clear_and_insert(begin,beyond)
2009-04-28 15:29:37 +00:00
Stéphane Tayeb cf794d7a17 add forgotten file (r48979). 2009-04-28 15:14:34 +00:00
Stéphane Tayeb 7d85cbdd57 * Remove ad-hoc code from AABBTraits:
- add nearest_point_3(Point_3, Triangle_3, Point_3)
  - updates Projecting_traits of AABB_tree
* Fix test compilation (linux x64).
2009-04-28 15:12:51 +00:00
Pierre Alliez 6c4f25b95b AABB: rename to less_x/y/z 2009-04-27 18:13:06 +00:00
Pierre Alliez b563d29270 AABB tree: the projection does not construct the KD-tree at the first projection query anymore. for efficient projection queries either the user calls for its explicit construction during the AABB construction or calls "construct_search_Tree()". otherwise the first primitive reference point is used as (naive) hint. 2009-04-27 15:36:35 +00:00
Stéphane Tayeb 50a9d76db0 Fix polyhedral oracle. Add class AABB_const_polyhedron_triangle_primitive. 2009-04-27 13:25:46 +00:00
Stéphane Tayeb 836f48cd9c Fix compilation errors (linux x64). 2009-04-27 12:42:04 +00:00
Pierre Alliez 9401251b51 AABB tree: attempt to fix compilation on Linux 2009-04-27 11:45:38 +00:00
Laurent Saboret 9c77d89703 Fixed compilation errors (Linux/g++) 2009-04-27 10:40:34 +00:00
Pierre Alliez 18c93be7bc AABB tree: replace xref/yref/zref and point_on by a single reference_point() function for primitive.
NOTE: the reference point is used both for sorting the primitives and for constructing the search KD-tree
2009-04-27 08:58:19 +00:00
Pierre Alliez b9c28d07aa AABB tree: rename is_smaller to is_contained
another code cleanup
2009-04-26 21:48:18 +00:00
Pierre Alliez a8188eb668 AABB tree: test all intersection types for triangles 2009-04-26 21:29:47 +00:00
Pierre Alliez 73364294e5 AABB tree: fix CR. 2009-04-26 18:24:15 +00:00
Pierre Alliez c55ae25215 AABB tree: more on projection (added all point_on() functions to primitives) 2009-04-26 18:19:05 +00:00
Pierre Alliez 8cf7099289 AABB tree: rename intersection file 2009-04-26 18:09:40 +00:00
Pierre Alliez 3a3c75c66e AABB tree: rename intersection files 2009-04-26 17:32:34 +00:00
Pierre Alliez 9df9f8a9f1 AABB tree: added internal search tree (CGAL K-orth search tree) to accelerate the projection queries.
substantial complication... may be improved.
2009-04-26 16:22:46 +00:00
Pierre Alliez e52c14ffc9 AABB tree: more on doc. 2009-04-26 14:39:35 +00:00
Pierre Alliez 4018a88be9 polyhedron demo: fix compilation of remeshing plugin 2009-04-26 14:25:30 +00:00
Pierre Alliez 24e3bc0c22 AABB tree: added two primitive types for triangle and segment to make two examples simpler.
rename Object type to Datum type within primitive as it was conflicting with CGAL Object type
2009-04-26 13:46:48 +00:00
Pierre Alliez cde6fb8ad0 AABB tree: added fourth examples with (segment) edges of a polyhedron 2009-04-26 09:27:42 +00:00
Pierre Alliez 3358154717 AABB tree: start adding tests. 2009-04-25 22:21:53 +00:00
Pierre Alliez 3316b50890 AABB tree: more comments on examples - added one projection 2009-04-24 22:09:40 +00:00
Pierre Alliez aea8cce7ad AABB tree: one more example with segment 2009-04-24 21:47:52 +00:00
Pierre Alliez ce4a6039f5 AABB tree: added two examples (one compiles fine) 2009-04-24 14:11:17 +00:00
Pierre Alliez aeb4889551 AABB tree: move files up 2009-04-24 13:35:41 +00:00
Pierre Alliez bc218b5d22 AABB tree: doc 2009-04-24 13:00:46 +00:00
Pierre Alliez f28804008c fix link to examples 2009-04-24 12:30:56 +00:00
Pierre Alliez 476cf9aeb1 AABB tree: rename triangle primitive to polyhedron triangle primitive 2009-04-24 11:51:03 +00:00
Pierre Alliez 3e25916b51 AABB tree: added two examples and alter doc where the data type is now the Object type. 2009-04-24 11:29:00 +00:00
Pierre Alliez f01b6e147f AABB tree: important pass on the documentation from A.Fabri's review and several discussions with S.Tayeb, L.Rineau and C.Wormser.
remove all _type suffixes to types
distinguish datum from data
A primitive wraps a "geometric object" and an Id - not a primitive and an ide (confusing)
added any_intersected_primitive() to be consistant
2009-04-24 09:42:43 +00:00
Stéphane Tayeb c4b6628106 * Projection query correction.
* Remove old code.
2009-04-23 07:38:53 +00:00
Stéphane Tayeb 333e2f0401 First step to CGAL 3.5 specs. 2009-04-22 08:11:45 +00:00
Pierre Alliez 31992dd000 AABB tree: things to be fixed (intersections) 2009-04-21 12:29:26 +00:00
Laurent Rineau 3654111856 Ooops: fix a bug I introduced myself since revision 48240, which was:
" - Rewrite of longest_axis(), which was quite strange, and switch to double,
      as CGAL::Bbox_3 coordinates are always double."

That fix will re-improve the query time.
2009-04-10 17:02:54 +00:00
Laurent Rineau 58f1842820 Improve again the construction time of an AABB_tree (by factor of 5 to 1). 2009-04-10 17:00:10 +00:00
Laurent Rineau 7a340e9d8d Improve the construction time of an AABB_tree for free (by using
std::nth_element, instead of std::sort).
2009-04-09 19:50:51 +00:00
Laurent Saboret 425cc63967 Fixed compilation warnings with VC++ 2009-04-07 14:01:14 +00:00
Laurent Rineau 69cc456852 typo : lenght -> length
(Thanks to Sylvain Pion.)
2009-04-06 12:25:12 +00:00
Laurent Rineau 9b9d32c208 The polyhedral oracle can now be used by Mesh_3. 2009-04-06 12:10:42 +00:00
Laurent Rineau 85bd8c4adb Add a member function AABB_tree::count_intersections 2009-04-06 12:10:09 +00:00
Laurent Rineau d51fcf2fa2 Make AABB_node::max_lenght public, so that AABB_tree can use it. 2009-04-06 12:09:32 +00:00
Laurent Saboret cb2644dab9 Revert revision 48625 that does not compile with g++ 2009-04-03 17:26:19 +00:00
Laurent Saboret 7d659c7483 Fixed compilation warnings with VC++ 2009-04-03 12:38:46 +00:00
Laurent Rineau f86c071b04 - Add constness to AABB_tree,
- Add a method bbox() to AABB_tree, that returns its bounding box.
- Add a method size(), that returns the number of nodes.
- Add a method traversal to AABB_tree, so that one can call it with a
  user-made traversal traits class.
- Add a Drawing_traits traits class, that draws the tree with OpenGL.
- Add predicates and constructions so that one can call
  AABB_tree::intersection with Kernel::Plane_3 as query, and Segment_3 as
  result type.
- New query function AABB_tree::all_intersections.
- The member function AABB_node::intersection is now templatized with a new
  template parameter 'Result', so that the result is not hardcoded to be
  'Point'.
- Three new constructions, for the intersection (and not only do_intersect)
  between a Triangle_3 and (Plane_3, Ray_3, Segment_3).
  (NOTE: That has not been tested intensively. And the intersection with
  Ray_3 and Segment_3 does not handle co-planar intersections, for the
  moment.)
2009-03-30 14:15:33 +00:00
Laurent Rineau 9f3a3e323b Fixes for non-Windows compilers. 2009-03-30 14:05:56 +00:00
Laurent Rineau e13b94d625 Factorize the code between Ray/Line/Segment, using templates. 2009-03-02 11:10:37 +00:00
Laurent Rineau 288525ba5f - Rewrite of longest_axis(), which was quite strange, and switch to double,
as CGAL::Bbox_3 coordinates are always double.
2009-02-26 18:04:56 +00:00
Laurent Rineau 25d930749f - Move the traits First_intersection_traits from AABB_node to AABB_tree.
- Remove AABB_node::first_intersection which is useless.
- AABB_node::traversal is no longer templated by Result_type. Instead of
  passing as argument a 'result' object, and constructing a traits at each
  call, the traits object is constructed once, before calling traversal,
  and passed as argument.
2009-02-26 16:40:40 +00:00
Laurent Rineau 641fa903d8 Yet another move of a function, and add comments. 2009-02-26 11:48:17 +00:00
Laurent Rineau 8972f90ac3 Remove yet another PSC dependency: PSC::do_intersect does not exists! That
means that some do_intersect functions where never instantiated.
2009-02-26 11:39:40 +00:00
Laurent Rineau 249f582387 Move functions definitions into the class, so that one see more clearly, if
possible, the structure of the code.
2009-02-26 11:22:56 +00:00
Laurent Rineau d410bbe3b4 Cosmetic: CGAL_NAMESPACE is obsolete, now. No need to confuse editors and
IDEs by using it.
2009-02-26 10:55:11 +00:00
Laurent Rineau c2c562b508 Add two cosmetic "const" attributes to function of
"First_intersection_traits".
2009-02-26 10:28:40 +00:00
Laurent Rineau 5ec512b917 Remove the psc argument from recursive functions. That one is not used, and
not wanted (the aim is to remove the dependency to the type PSC).
2009-02-26 10:25:52 +00:00
Laurent Rineau f3262130bc Add a comment to explain the trick that uses boost::enable_if and
the Boost MPL:
 http://www.boost.org/doc/libs/release/boost/utility/enable_if.hpp
 http://www.boost.org/doc/libs/release/libs/mpl
2009-02-25 19:14:08 +00:00
Laurent Rineau b13221cfb3 Try a use of boost::mpl::vector, to see what will happen to the testsuite
of Polyhedron_Demo.
(2009-02-24 16:54:31 +0100)

Update: the testsuite of CGAL-3.5-I-32 has validated that change. Great:
let's go and use MPL!
2009-02-24 15:54:31 +00:00
Laurent Saboret 6e404a5e87 Partial merge with Gyroviz AABB_tree. Very minor changes. 2008-10-17 16:03:17 +00:00
Pierre Alliez 6ae6749ad0 cleanup AABB tree: update authors, remove #undef, local includes. 2008-10-14 12:15:10 +00:00
Pierre Alliez d0bf3a2245 AABB tree: remove knn and plucker. a bit of cleanup and update of authors. 2008-10-14 07:43:19 +00:00
Andreas Fabri 50cc203fac Added ETHZ and authors 2008-10-14 06:04:37 +00:00
Andreas Fabri ae5afa9774 cleanup 2008-10-13 18:45:02 +00:00
Andreas Fabri 2465573f24 Add license header 2008-10-13 18:41:47 +00:00
Laurent Rineau 9e80736743 Move AABB_tree in its own svn package (not documented for CGAL-3.4).
(TODO: one need copyright/license headers.)
2008-10-01 08:10:00 +00:00