Commit Graph

396 Commits

Author SHA1 Message Date
Sébastien Loriot 03f9c56c76 Make the code matching the submission
- rename first_intersection_and_primitive to first_intersection
 - update examples and test
 - switch on the function doc
 - add implementation for first_intersected_primitive
2016-04-26 17:12:15 +02:00
Andreas Fabri 37e4ddb107 const& 2016-04-26 17:12:15 +02:00
Andreas Fabri 84ebe802ae Add the second function implementation skeleton 2016-04-26 17:12:14 +02:00
Andreas Fabri 2fabd2c170 Add the second function; change changes.html 2016-04-26 17:12:14 +02:00
Andreas Fabri 285341bb57 Rename ray_intersection() to first_intersection() 2016-04-26 17:12:14 +02:00
Philipp Möller e4e4e48ea5 Unused object warning 2016-04-26 17:12:14 +02:00
Philipp Möller 54d8839ac9 Comment out the do_intersect tests
They caused a performance problem when used with the tweaked AABB_traits
of Surface_mesh_segmentation.
2016-04-26 17:11:09 +02:00
Philipp Möller 3f4d185b1d Use branchless min/max 2016-04-26 17:11:06 +02:00
Philipp Möller 7cd8369ab2 Prevent division by zero 2016-04-26 17:11:04 +02:00
Philipp Möller ce6501a291 Use the original algorithm 2016-04-26 17:11:03 +02:00
Philipp Möller b086fc6ec6 Return 0. for t_near < 0.
If t_near is smaller than 0. it means that the ray starts inside the
bounding box. t_near is the intersection point at the outside of the
box, but the actual intersection is at the start of the ray.
2016-04-26 17:11:02 +02:00
Philipp Möller 0db0027414 Performance bug 2016-04-26 17:11:01 +02:00
Philipp Möller bfb36df712 Add the ability to use skip functor 2016-04-26 17:10:59 +02:00
Philipp Möller 83d7396cd8 Throw in some const 2016-04-26 17:10:57 +02:00
Philipp Möller 4d08cf6d33 Add a do_intersect test before intersection 2016-04-26 17:10:55 +02:00
Philipp Möller b6e60ba6dc Make the correct part of Node_ptr const 2016-04-26 17:10:54 +02:00
Philipp Möller 901c27724b Use boost::priority_queue 2016-04-26 17:10:53 +02:00
Philipp Möller 8eded0292f use visitation instead of get 2016-04-26 17:10:51 +02:00
Philipp Möller ced2b87170 static_assert type equality
Ray is just a template parameter to avoid instantiation of this
function, make sure it is the type we expect.
2016-04-26 17:10:47 +02:00
Philipp Möller e3fdda3bc0 Integrate changes from the submission 2016-04-26 17:10:46 +02:00
Philipp Möller f94a74b93a Document that AABB_traits can also model AABBRayIntersectionTraits 2016-04-26 17:10:41 +02:00
Philipp Möller 08f7efd1d2 Only use functors in Intersection_distance 2016-04-26 17:10:39 +02:00
Philipp Möller 2148ae6d4f Directly use Ray type and avoid a function template 2016-04-26 17:10:37 +02:00
Philipp Möller 4466eb5df3 Simplify types a bit 2016-04-26 17:10:36 +02:00
Philipp Möller 5aef4c4ca5 Add missing base cases 2016-04-26 17:10:35 +02:00
Philipp Möller 33bc6f125f Make child and data of a Node public
This is necessary so that other algorithms can traverse the hierarchy.
2016-04-26 17:10:34 +02:00
Philipp Möller 2540612e97 Drop-in for as_ray_parameter
This needs to be replaced with a non-hacky solution.
2016-04-26 17:10:33 +02:00
Philipp Möller f4a506ed73 Fix wrong identifier names 2016-04-26 17:10:30 +02:00
Philipp Möller 69d7662ddc Fix wrong template arguments 2016-04-26 17:10:29 +02:00
Philipp Möller 0e883861b5 Move Intersection_distance into its own base
This is necessary so that we only define it if the GeomTraits meet the
necessary requirements.
2016-04-26 17:10:27 +02:00
Philipp Möller b1e99b3c71 Add is_ray_intersection_geomtraits
This meta-function can be used to make a somewhat accurate guess if the
argument is a model of the yet to be written
AABBRayIntersectionGeomTraits.
2016-04-26 17:10:26 +02:00
Philipp Möller f6bed4128e Forgot copy-right header 2016-04-26 17:10:25 +02:00
Philipp Möller 7c26fcb8b8 Parenthesis for max and min 2016-04-26 17:10:24 +02:00
Philipp Möller a8f5e3f867 Use the slab method to compute intersection_distance
This code still relies on the types to be CGAL types.
2016-04-26 17:10:22 +02:00
Philipp Möller 01ef95783d Add prototype for Intersection_distance 2016-04-26 17:10:21 +02:00
Philipp Möller 88acc3d1b3 Fix indentation of class intersection
Wrong indentation on nested classes made this tricky to decipher and
worth the change.
2016-04-26 17:10:20 +02:00
Philipp Möller 90542aa0ab Add the doc for ray_intersection 2016-04-26 17:10:18 +02:00
Philipp Möller 2af2aa324d Handle case 2 and 3 2016-04-26 17:10:16 +02:00
Philipp Möller 5cd89bd981 fixup 2016-04-26 17:10:15 +02:00
Philipp Möller e7b3a7a97c Handle both inner nodes 2016-04-26 17:10:13 +02:00
Philipp Möller 3abe4ed2c2 Add basic algorithm outline 2016-04-26 17:10:12 +02:00
Philipp Möller 4cc9d34cb5 Add prototypes and implementation file 2016-04-26 17:10:11 +02:00
Sébastien Loriot b2196fca0c remove non-needed OpenGL instructions 2016-01-18 13:17:41 +01:00
Andreas Fabri 56bfaa2746 merge 2016-01-05 17:06:04 +01:00
Andreas Fabri 88596c38ce bugfix: the datum was a segment not a triangle 2015-12-16 16:58:27 +01:00
Andreas Fabri 0b2b5ee1e6 Add an AAB tree primitive for C3T3 facets 2015-12-11 16:15:36 +01:00
Andreas Fabri 547be5cd2a Use wrapper for the very basic mutex locking 2015-09-04 08:42:34 +02:00
Maxime Gimeno 89348a1ab9 cut_plugin fixed
- replaced the missing modified files by the originals
- added a reference to a vector of floats in traits so that it fills it instead of drawing the bboxes
2015-04-24 15:59:23 +02:00
Sébastien Loriot 1cc4f732f6 use Default for vertex point property map 2015-01-19 12:16:47 +01:00
Sébastien Loriot 67414ef0c8 fix default point property map used in BGL primitives 2015-01-19 11:57:43 +01:00
Sébastien Loriot aeaed0d18a remove deprecated constructor that conflict with the new one 2014-10-24 10:12:16 +02:00
Sébastien Loriot e5a44099e9 add additional constructor to allow building a primitive from a descriptor 2014-10-23 17:03:48 +02:00
Sébastien Loriot 9999dc8f0e add missing include so that tags are defined 2014-07-04 17:24:06 +02:00
Sébastien Loriot dfe0b88d2f AABB tree primitives should not include Polyhedron specific files
I also renamed a file only used in these primitives
2014-07-04 17:24:05 +02:00
Sébastien Loriot 5d9219c96d AABB-tree bugfix: perfect forward of arguments in C++11 and by ref otherwise
this was a bug because the shared data were copied
2014-07-02 12:23:52 +02:00
Sébastien Loriot 326b604e58 add missing shared data constructor from 2 args 2014-07-02 11:29:32 +02:00
Sébastien Loriot e412f6c2e5 fix the const correctness of FaceGraph and HalfedgeGraph primitives
The BGL is not const correct by design choice. Passing a const Graph as
  template parameter to the primitive type is error prone.
  This will make the life easier to the user.
2014-07-02 11:28:58 +02:00
Sébastien Loriot 6638bff59a add the missing 2 args version 2014-07-02 10:56:10 +02:00
Sébastien Loriot 4791498376 fix availability of a constructor for Polyhedron backward compatibility 2014-07-01 16:43:26 +02:00
Sébastien Loriot 97342ad6f6 backward compatibility with const Polyhedron 2014-06-24 16:38:03 +02:00
Andreas Fabri 67fa385190 A FaceGraph is any model of the concept face graph 2014-06-11 15:15:09 +02:00
Andreas Fabri 56f58c1945 Add backward compatibility code 2014-06-11 10:22:46 +02:00
Sébastien Loriot d0dfac3caa facet_handle -> face_descriptor 2014-06-05 21:29:01 +02:00
Andreas Fabri 3d7d596e6b Use vertex_point property map so that it now also compiled with OpenMesh 2014-06-05 15:29:49 +02:00
Andreas Fabri 2c4c38809d switch internally to BGL API in mesh segmentation. We still have to deal with the point property maps 2014-06-05 12:05:54 +02:00
Andreas Fabri 4a37f74122 switch to new BGL API 2014-06-04 21:28:59 +02:00
Andreas Fabri e95c3d452c Switch to new BGL API in package AABB_tree 2014-05-24 08:55:43 +02:00
Andreas Fabri 2ed7784521 trivial fix for master 2014-04-15 18:22:22 +02:00
Laurent Rineau 48f9c4c06c Fix AABB_tree use of set_shared_data
That function set_shared_data is never tested in CGAL, happened not to
be callable using its documented API. I do not understand why there is
an additional template parameter 'PrimtiveType'. That commit removes it.

(cherry picked from commit 99790a0d39864c3d2e72d18876f41603ab94a5a5)
2014-01-13 18:56:48 +01:00
Laurent Rineau cb6ce3f448 Fix a typo: missing space 2014-01-10 16:44:33 +01:00
Sébastien Loriot ee3ce8985f fix the way the specialization of graph_traits are documentated 2013-12-03 12:03:00 +01:00
Andreas Fabri 5c454cec64 add missing includes 2013-09-13 12:43:01 +02:00
Sébastien Loriot f5f6b034a6 Merge branch 'AABB_tree-fix_graph_primitives-local'
This fixes the graph primitives that were only model of
AABBPrimitiveWithSharedData, and also remove the artificial compatibility
with deprecated primitives that are not needed since we want to make users
use the new method.

Successfully tested in CGAL-4.3-Ic-107
  One example on the platform i686_Linux-2.6_g++-4.1.2_CentOS-5.1-O3 indicates
  an error, but after checking it is a floating point computation threshold
  issue. The example expects an error to be below 1e-10 and it is 1.1e-10.
Approved by the interim release manager
2013-07-31 17:32:15 +02:00
Sébastien Loriot 5666173947 typos and missing static 2013-07-30 07:38:41 +02:00
Sébastien Loriot a5eb2fa0b4 missing backquote 2013-07-30 07:15:11 +02:00
Sébastien Loriot b6737e6b0f fix the graph primitive when they don't have shared data 2013-07-29 18:47:17 +02:00
Sébastien Loriot 0864336a66 remove compatibility with original polyhedron primitives
there is no need to maintain such an artificial compatibility, the old
primitives are still in CGAL.
2013-07-29 17:17:56 +02:00
Sébastien Loriot 29a64aca9c bugfix: OneHalfedgeGraphPerTree was not correctly forwarded 2013-07-29 10:18:02 +02:00
Sébastien Loriot 88f265be1c re-document OneFaceGraphPerTree 2013-07-29 10:16:27 +02:00
Sébastien Loriot ddda698034 inline the nested class Intersection_and_primitive_id in the documentation 2013-07-24 17:06:35 +02:00
Sébastien Loriot c2fc43a8df make doxygen picking the correct return type 2013-07-24 16:59:01 +02:00
Sébastien Loriot 79442d98ee doc typo 2013-07-24 16:43:07 +02:00
Sébastien Loriot 9c0808cad1 fix name of classes that do not respect CGAL naming conventions
AABB_HalfedgeGraph_segment_primitive -> AABB_halfedge_graph_segment_primitive
AABB_FaceGraph_triangle_primitive -> AABB_face_graph_triangle_primitive
2013-07-23 17:46:50 +02:00
Sébastien Loriot 2bf7690f57 rename template parameter cache_datum to CacheDatum
template parameter should be camel case
2013-07-22 14:52:16 +02:00
Sébastien Loriot f61c8acc07 fix warning in the documentation 2013-07-04 19:16:58 +02:00
Sébastien Loriot 6735255fd0 The vertex point property map can be external for non-CGAL graph implementation
This is a bugfix of the API
2013-07-03 12:51:09 +02:00
Sébastien Loriot 940cd2bf33 bugfix: use the traits data member otherwise the shared_data cannot be used 2013-06-27 20:55:16 +02:00
Sébastien Loriot 42dbc14ffe use class in the forward declaration too 2013-06-24 08:45:39 +02:00
Sébastien Loriot f6c016257d fix encoding problem in license header 2013-06-24 08:39:43 +02:00
Sébastien Loriot 45c61f0061 remove Id template parameter from graph primitives that cannot be changed 2013-06-21 17:51:27 +02:00
Sébastien Loriot baac01b0b7 add missing template keyword
detected by Apple clang
2013-06-21 09:42:56 +02:00
Sébastien Loriot df7daacddc fix constness issue 2013-06-20 10:35:44 +02:00
Sébastien Loriot d2bf82c8e5 document FaceGraph triangle primitive to be only for Polyhedron 2013-06-19 19:28:19 +02:00
Sébastien Loriot 9822a1a403 document operations for backward compatibility 2013-06-19 19:15:58 +02:00
Sébastien Loriot c64e8b00cf Revert "backward compatibility is ensured by the 2nd template parameter set to Tag_true"
This reverts commit ca32c286f6.
2013-06-19 19:07:56 +02:00
Sébastien Loriot 9934b020c6 fix the triangle FaceGraph primitive to work with Polyhedron 2013-06-19 18:02:05 +02:00
Sébastien Loriot ca32c286f6 backward compatibility is ensured by the 2nd template parameter set to Tag_true 2013-06-19 17:42:38 +02:00
Sébastien Loriot f395759b35 the segment and triangle primitive are now compatible with the former classes
even if they were not documented, they were used in examples
2013-06-19 16:55:29 +02:00
Sébastien Loriot caf3bdfac8 fix copy-paste error 2013-06-19 16:55:06 +02:00
Sébastien Loriot 876b2c6cfc add a default constructor to AABB_tree 2013-06-19 16:54:21 +02:00