Commit Graph

1448 Commits

Author SHA1 Message Date
Pierre Alliez 0dfc500ff0 AABB tree:
- few fixes on the doc.
2009-05-14 11:27:42 +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 0c348f8539 history 2009-05-14 09:22:18 +00:00
Camille Wormser cddf634d13 forgot to add this file 2009-05-14 08:49:21 +00:00
Camille Wormser 0fca80fcba links to the models in AABBPrimitive 2009-05-14 08:27:10 +00:00
Camille Wormser ea1d578227 forgot to save this one before 2009-05-14 08:23:12 +00:00
Camille Wormser cc5f9e604f sorry, unintended change 2009-05-14 08:22:32 +00:00
Camille Wormser f47e9f1f67 one more primitive,
more consistent names
2009-05-14 08:20:50 +00:00
Camille Wormser cb74ff6524 removed redondant typedefs 2009-05-14 07:59:09 +00:00
Camille Wormser f6de9a1ec4 Caps in titles,
AXIS_X -> X_AXIS
Split_... returns void
2009-05-14 07:51:11 +00:00
Andreas Fabri 51de43bfca capitalize words in headings 2009-05-14 07:39:17 +00:00
Camille Wormser 0bdb3f5504 a model for the concept AABBPrimitive.
This is just an example, we can think later about what the most useful 
primitives for typical users could be.
2009-05-14 01:21:28 +00:00
Camille Wormser 765b55a41d detailed explanation of the hint story 2009-05-14 00:44:29 +00:00
Camille Wormser aa101e0caf Laurent's remark: passing the traits as parameter of constructors 2009-05-13 22:47:29 +00:00
Camille Wormser 075911ec75 Laurent's remark: add the bounding box stuffs 2009-05-13 22:35:39 +00:00
Camille Wormser 380e2c76ed uniformizes the consts. I am not sure what the policy is,
but I put them.
2009-05-13 21:45:20 +00:00
Camille Wormser 2ca7d70e2d AABBGeomTraits can now accept Kernels as models,
IF we add Compute_closest_point.
2009-05-13 21:27:43 +00:00
Camille Wormser b8b6bd5d9f no reference to the hints in the user manual (except in details.tex, where we
tell the user what this is about).

More explicit presentation of what an id is: usually a real unique id, but
the user is free to use it differently if he sees a need for it.
2009-05-13 15:53:12 +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 c733708add while finishing to conform the code to the documentation,
I realized it made sense to let the traits do the sorting.
2009-05-11 23:17:01 +00:00
Camille Wormser 2cd6895b0c a rule of thmb for using the KD-tree:
use it always, except if you are really confident about your hints.
2009-05-11 20:23:29 +00:00
Camille Wormser 7184e5d681 les deux remarques d'Andreas 2009-05-11 20:16:00 +00:00
Camille Wormser 9087e9b14b updated documentation with functors in the AABBTraits concept.
Should we keep the const& in the description of the functors ? 
I kept them in AABBTraits, but we do not have them in AABBGeomTraits...
What should be the policy?

Note that the functors do not have the "_3" in AABBTraits, 
but have it in AABBGeomTraits. This is on purpose.
2009-05-11 11:54:50 +00:00
Pierre Alliez d24dec3727 AABB tree: fix compilation issue 2009-05-11 08:23:03 +00:00
Pierre Alliez 74dfd60a12 AABB tree:
- cleanup examples
- shorten a bit ref manual of tree.
2009-05-11 08:20:32 +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 55dc498d00 AABB tree: one global pass on the narrative. 2009-05-09 21:52:02 +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 49bdb725f6 AABB tree
factorize some code for the tests into AABB_test_util.h
2009-05-09 07:20:07 +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 64b5882ffb I know exclude the case where the hint is returned from the inconsistencies.
It may be more interesting.
2009-05-08 22:49:55 +00:00
Camille Wormser 32678c876e interesting benchmarks for the hint strategies in distance queries 2009-05-08 19:54:28 +00:00
Camille Wormser c063b0bd32 details for the requirements for the Id. 2009-05-08 15:00:13 +00:00
Camille Wormser 1c3c01951f oops, forgot to save this file. Old changes... 2009-05-08 14:18:21 +00:00
Camille Wormser f0d1f31f11 Since Pierre wanted this feature (providing points without primitive to the KD_tree),
and it does not cost much in terms of implementation, and it is useful for cases like the
Polyhedron, I put it back. 

The code already supports that (as can be seen from the fact that the test suite runs).

Still, I need the Id to have a default constructor. How do you document that?
2009-05-08 14:17:38 +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
Camille Wormser 811f08256b added missing types to the AABBTraits concept.
(I have added the missing methods for the distance queries too)
2009-05-08 11:28:10 +00:00
Camille Wormser 1f4c9a150e cleaning of the traits. Not finished yet.
I've removed all references to the Sphere (it was used only internally anyway), 
because we will not use it anymore: we replace its use by direct calls to is_closer.
2009-05-08 11:20:14 +00:00
Camille Wormser fa539afc07 in the description of do_intersect and intersection, in the GeomTraits,
primitive --> geometric object
(some are queries, some are primitives)
2009-05-08 10:37:07 +00:00
Camille Wormser 4f329a0761 the GeomTraits does not provide the query types at all. 2009-05-08 10:34:03 +00:00
Camille Wormser 61aee20d79 typos + clearer explanation of the role of the ids
(used to refer to the primitives in the outputs, but need not be unique)
2009-05-08 10:16:54 +00:00
Camille Wormser 38da93cbca text improvement and typos for distances 2009-05-08 09:55:28 +00:00
Camille Wormser a03de6bb32 we do not need intersection for any_intersected_primitive 2009-05-08 09:46:34 +00:00
Camille Wormser 794157450f allocation detail in the constructor 2009-05-08 09:45:46 +00:00
Camille Wormser 8358202dde The requirement on the constructor was a bit too strong: we do not need
the fact that the iterator range is a container of objects of type Datum.

Quite the contrary: it can be halfedges_begin/end. Hence, we should keep 
only the requirement that Primitive is constructible from it (that's 
really what we use in practice).
2009-05-08 09:36:47 +00:00
Camille Wormser 31e85b74de still polishing (just typos) 2009-05-08 09:27:27 +00:00
Camille Wormser 986f01d0d5 doing some polishing on the documentation... (not finished yet, going through the whole thing) 2009-05-08 09:19:48 +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
Camille Wormser bf4043be63 replaced Point_and_primitive by Point_and_primitive_id and Object_and_primitive_id 2009-05-07 13:18:02 +00:00
Camille Wormser 6316ee39fe I revert the change, because this is, in my view, really important for having a sound design.
Otherwise, what do you do if the sphere has no intersection with the data?
2009-05-07 11:51:00 +00:00
Pierre Alliez 8e754e6e7c AABB tree: (ref manual): all hints back to point types in distance queries - I believe that's little relevant to ask a primitive as hint. 2009-05-07 11:33:26 +00:00
Camille Wormser 4b720e0c06 documentation compilation issues 2009-05-07 11:30:29 +00:00
Pierre Alliez 5d609213af AABB tree: distance tests now pick random query points in tree bbox. 2009-05-07 11:11:36 +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
Pierre Alliez 0f225c01cf AABB tree: rename projection to distance in the tests 2009-05-07 09:50:44 +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
Camille Wormser fe06803b35 I think that it is useful to mention that the KD-tree method allows
not to have all the primitives sampled: otherwise, the user may have 
the feeling that at least one sample per primitive is a requirement.

Imagine a scene with many small objects. It makes perfect sense to 
sample each of these objects with just one point.
2009-05-06 10:54:07 +00:00
Pierre Alliez e4cb94b35e AABB tree: update doc
- change shark image to anchor model
- remove references to projection
2009-05-05 20:25:20 +00:00
Pierre Alliez 4c7161e67b AABB tree: fix opcode 2009-05-05 15:48:12 +00:00
Laurent Rineau 0aea10fb4d - Fix a compilation error (a missing ':'),
- s/size_t/size_type/
2009-05-05 12:07:15 +00:00
Camille Wormser af8b5b8c1a Following Larent's remarks 2009-05-05 11:58:05 +00:00
Pierre Alliez db918ecafe AABB tree: undo folder restructuring 2009-05-05 11:51:48 +00:00
Camille Wormser 202b7c95d5 Laurent's remarks 2009-05-05 11:27:29 +00:00
Camille Wormser f87800c489 removed all references to "projection", except in the very first paragraph of the intro, where it fits well.
(see Laurent's remark)
2009-05-05 11:16:00 +00:00
Camille Wormser 16383ce57f presentation of the KD-tree system in the API. 2009-05-05 11:06:21 +00:00
Camille Wormser 6e89ca8d8a presentation of the KD-tree system in the API. 2009-05-05 11:05:28 +00:00
Camille Wormser b40571b407 most of Andreas requested changes.
See the wiki for details.tex
I did not address Laurent's changes, except for the rebuild thing.
2009-05-04 20:46:10 +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
Pierre Alliez 5d97e6dc26 AABB tree: commented out nb_traversal_intersections in user manual 2009-05-04 11:01:14 +00:00
Pierre Alliez fef3e5f981 AABB tree: commented out nb_traversal_intersections in ref manual 2009-05-04 09:58:49 +00:00
Camille Wormser d34c90f793 Useful polish. 2009-05-03 17:09:01 +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 b4cff1bb34 AABB tree: more on ref manual 2009-05-02 09:27:05 +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
Pierre Alliez 159e2428db AABB tree: prepare material for illustrations 2009-04-30 15:38:12 +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 1533aa072f AABB tree (ref manual): added nested types 2009-04-30 13:51:41 +00:00
Pierre Alliez 2c7033c74a AABB tree (ref manual): added headings 2009-04-30 13:45:11 +00:00
Pierre Alliez b30d94df7c AABB tree (user manual): fix compilation issue. 2009-04-30 13:42:12 +00:00
Pierre Alliez 8b8cf8132a AABB tree (user manual): fix compilation issue. 2009-04-30 13:40:41 +00:00
Pierre Alliez f4f4bf4d8a AABB tree (user manual): fix compilation issue. 2009-04-30 13:38:48 +00:00
Pierre Alliez b11fba8345 AABB tree (user manual): change API for projections. 2009-04-30 13:22:41 +00:00
Pierre Alliez d2c99fc698 AABB tree: split user manual into several .tex files.
more on API.
2009-04-29 20:38:40 +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 3ed02768c8 AABB tree: more on user doc.
also, added closest_primitive(query) in addition to closest_point()
2009-04-29 14:11:24 +00:00
Pierre Alliez 5074de058e AABB tree: rename segment to edge 2009-04-29 13:44:35 +00:00
Pierre Alliez 7c56be7711 AABB tree: more on tests 2009-04-29 13:43:38 +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 aabc226876 AABB: fix ref to opcode. and few fixes in introduction. 2009-04-28 14:47:22 +00:00
Pierre Alliez 052850c95f AABB: document two new functions suggested by Andreas:
void clear(void)
void clear_and_insert(begin,beyond)
(we let the append() function for another release)

tests: enrich todo list.
2009-04-28 09:44:08 +00:00
Pierre Alliez fd573fc4c8 AABB: more on testing: measure tree construction time, speed for all query types, across several kernels. 2009-04-27 20:37:47 +00:00
Pierre Alliez 6c4f25b95b AABB: rename to less_x/y/z 2009-04-27 18:13:06 +00:00
Pierre Alliez 911c74c590 AABB: more to fix Andreas remarks. 2009-04-27 18:00:27 +00:00
Pierre Alliez 38c6ba35e3 AABB: added 100k triangle lucy model for the tests (others are toys)
added it to dont_submit
2009-04-27 17:16:30 +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 2421c82abe AABB tree: added (commented) example of projection against a set of segments.
does not compile for now
2009-04-26 20:59:43 +00:00
Pierre Alliez 73364294e5 AABB tree: fix CR. 2009-04-26 18:24:15 +00:00
Pierre Alliez 8a09dd36c1 AABB tree: cleanup doc. 2009-04-26 18:22:02 +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 abaeb0ef5c AABB tree: rename Polyhedron_tree to Tree in examples and test 2009-04-26 14:15:27 +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 20e319a2b9 AABB tree: todo list on tests, remove one mesh data 2009-04-24 22:28:34 +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 e5696fa009 AABB tree: reuse existing file AABB_polyhedron_triangle_primitive.h for the example 2009-04-24 14:38:08 +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 19503da319 AABB tree: add CMake files for examples and tests 2009-04-24 13:20:18 +00:00
Pierre Alliez bc218b5d22 AABB tree: doc 2009-04-24 13:00:46 +00:00
Pierre Alliez be16a94b73 fix link to examples 2009-04-24 12:33:08 +00:00
Pierre Alliez f28804008c fix link to examples 2009-04-24 12:30:56 +00:00
Pierre Alliez f5724113f7 AABB tree: added shark in .eps format 2009-04-24 12:30:44 +00:00
Pierre Alliez 476cf9aeb1 AABB tree: rename triangle primitive to polyhedron triangle primitive 2009-04-24 11:51:03 +00:00
Pierre Alliez 07c87ae231 AABB tree: deleted TrianglePrimtive concept - there is no point to have it 2009-04-24 11:45:39 +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
Pierre Alliez ec08e7f711 ABABB tree : prepare folders for tests 2009-04-23 15:16:50 +00:00
Stéphane Tayeb c4b6628106 * Projection query correction.
* Remove old code.
2009-04-23 07:38:53 +00:00
Pierre Alliez 9f43b3a035 AABB tree: more on documentation. 2009-04-22 08:22:00 +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
Pierre Alliez 0e7d36fa48 AABB tree: add image for ps compilation and added .ppt source file to dont_submit 2009-04-17 08:41:11 +00:00
Pierre Alliez c057e74544 AABB tree: higher res image for user manual. 2009-04-17 08:24:21 +00:00
Pierre Alliez 2c8b9956cb AABB tree: user manual (added figure and implementation details section) 2009-04-16 15:08:01 +00:00
Pierre Alliez 37b3262e71 AABB tree: added doc 2009-04-16 11:22:16 +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 e23bac61be Move AABB_tree package info into a sub-directory. 2008-10-07 12:49:32 +00:00
Camille Wormser cfaee22bee just a CR. I think we are good to go with this description. 2008-10-01 13:29:53 +00:00
Pierre Alliez afec08d77e update description AABB tree 2008-10-01 10:28:32 +00:00
Camille Wormser 6212a25eac detail 2008-10-01 09:13:01 +00:00
Laurent Rineau e9a0d60c7f missing file 2008-10-01 09:11:39 +00:00
Camille Wormser 9d56e6528f Changes to the long description, putting a more relevant
bibliographic reference.
Changed the order for maintainers, since I would like to 
have a firsthand look at what is happening in this package.
2008-10-01 09:10:39 +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