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