Commit Graph

299 Commits

Author SHA1 Message Date
Sven Oesau 3e218a2c07 adapted torus to traits concept
ToDo: Collinear_2 needs to be adapted
2015-07-10 00:14:09 +02:00
Sven Oesau bb2998e11f bugfix 2015-07-10 00:12:32 +02:00
Clement Jamin 00e48dd169 Added right header in comments 2015-07-09 10:27:14 +02:00
Clement Jamin 7ee1ac7c41 Fix warnings 2015-07-09 10:22:43 +02:00
Clement Jamin 33d1b9f971 Doc: updated requirements for the shapes 2015-07-09 10:01:45 +02:00
Clement Jamin 7c45024d90 Dispatched utilities 2015-07-09 09:38:08 +02:00
Clement Jamin 40fd40cc0e Missing param 2015-07-09 09:20:25 +02:00
Clement Jamin b1a8059dc3 Fix warning 2015-07-09 08:58:43 +02:00
Clement Jamin daaa0a87d1 Update the real traits class 2015-07-09 08:58:22 +02:00
Clement Jamin 36d7bfa2c8 Compute_cross_product_3 => Construct_cross_product_vector_3 2015-07-09 08:57:27 +02:00
Clement Jamin 6dc0ff6ada Reordering 2015-07-09 08:28:07 +02:00
Clement Jamin 545756f2fc Merge branch 'Point_set_shape_detection_3-cjamin' of github.com:CGAL/cgal-dev into Point_set_shape_detection_3-cjamin 2015-07-09 08:09:13 +02:00
Clement Jamin 0968103236 Removed warning 2015-07-09 08:08:58 +02:00
Sébastien Loriot a2c1f72164 fix compilation issue 2015-07-09 08:07:49 +02:00
Clement Jamin 5d5b60d130 Revert "Make the utilities public"
This reverts commit 230c4aea14.
2015-07-09 07:47:36 +02:00
Clement Jamin 230c4aea14 Make the utilities public 2015-07-09 07:45:53 +02:00
Clement Jamin c2b35a7834 WIP: use functors from the trait class and update the concept
Temporarily replaced the actual traits class by a fake one to test the concept
Only a few examples compile for now
2015-07-08 19:45:54 +02:00
Sven Oesau d73676eb8f renamed several variables to follow CGAL standard
changed main loop: after search probability for min_points is surpassed, no more candidates are generated and the remaining ones are searched. Duplicate candidates are filtered.

added Shape_base::is_same(): compares to shapes by testing distance and normal deviation from random points from other shape
2015-07-08 18:55:52 +02:00
Sven Oesau f550b731ce changed Shape_base::squared_distance to const 2015-07-08 18:38:09 +02:00
Clement Jamin 385b5ee6ac Fix warnings + CGAL_M_PI => CGAL_PI 2015-07-07 16:54:27 +02:00
Clement Jamin 61eb5e7640 Fix PI macros 2015-07-07 12:06:45 +02:00
Sven Oesau 8db1f99353 bugfix 2015-07-07 12:06:45 +02:00
Sven Oesau 44a01d3b4c removed cross filtering kernel 2015-07-07 12:06:45 +02:00
Sven Oesau 81033fd37d added connected component for cones
2 case handling:
flat cones (opening angle > PI/4) are mapped onto circles
acute cones are mapped onto rectangular parameter space
2015-07-07 12:06:45 +02:00
Sven Oesau b58bc98206 added cross kernel for connected component labeling 2015-07-07 12:06:45 +02:00
Sven Oesau fbdfc61922 corrected the default value of the min_points parameter as specified in documentation (1% of input points), but not less than 10 points 2015-07-07 12:06:44 +02:00
Sven Oesau 8949009469 moved pi defines to Shape_base 2015-07-07 12:06:44 +02:00
Sven Oesau a2dc47ca3e fixed warning 2015-07-07 12:06:44 +02:00
Sven Oesau 73e28e6798 some bugfixes 2015-07-07 12:06:44 +02:00
Sven Oesau c1669667d3 added connected component for Sphere
removed few warnings
2015-07-07 12:06:44 +02:00
Sven Oesau 3300eb746b changed connected component (more flexible for other shape types) 2015-07-07 12:06:43 +02:00
Sven Oesau dc3eb93332 avoiding crash if Efficient_RANSAC instance is released after releasing the input data range 2015-06-29 15:46:51 +02:00
Sven Oesau ab7a764f53 Revert "changed connected component"
This reverts commit f525f447b2bd1aa2f004d2be0705c7749eef235b.
2015-06-29 15:40:54 +02:00
Sven Oesau 365d114ac0 changed connected component
removed wraps_u_wraps_v
adapted plane and cylinder
2015-06-29 11:13:22 +02:00
Sven Oesau d9ab3eec09 prevent spheres to be detected as tori (decision based on chosen epsilon) 2015-06-29 10:47:07 +02:00
Sven Oesau 0365e18bc9 small simplification of subset random number generation 2015-06-29 10:01:30 +02:00
Sven Oesau 8ce8ebaff2 fixed memory leak 2015-06-26 14:50:57 +02:00
Clement Jamin 136c6c6886 Use std::distance + reduce some line lengths 2015-06-22 11:30:13 +02:00
Clement Jamin b6e3c417aa Fix warnings 2015-06-22 11:15:11 +02:00
Clement Jamin 1335a1eaf7 Use CGAL::abs everywhere 2015-06-22 11:09:23 +02:00
Clement Jamin 40df02cc75 Removed "template" keyword + quick note in the doc
"template" should only be added before "add_shape_factory"
when the call is within a template
2015-06-22 10:43:21 +02:00
Sven Oesau f139720b8d added unit test for scenes
accesses all points assigned to a shape
retrieves the unassigned point range
validates coverage
requires cube.pwn
2015-06-22 00:04:31 +02:00
Sven Oesau 17caccffea added calls to all specific shape functions
added remaining connected component unit tests
small bugfixes (small datasets, cylinder parameter space mapping)
2015-06-21 22:58:18 +02:00
Andreas Fabri 27aa60c2dc more fixes 2015-06-19 10:04:36 +02:00
Andreas Fabri 8615f1b874 protect max() 2015-06-19 09:06:06 +02:00
Sven Oesau 3c50ebbb95 64 bit compatibility
changed random index selection in Octree to Random::uniform_int
switched hypergeometrical_dist from int to std::ptrdiff_t
2015-06-17 17:36:07 +02:00
Sven Oesau dfba7e2ce0 changed variable naming in several classes to match CGAL standard
octree now uses size_t instead of singed integers
added missing Plane::d() function to retrieve d parameter from plane equation (= - distance from origin)
changed many variables from int to size_t to remove 64 bit warnings
2015-06-17 10:27:14 +02:00
Clement Jamin dd855e0a43 Missing "template" 2015-06-15 14:26:32 +02:00
Clement Jamin 83cbb3b2f4 Use CGAL::Random instead of C++11 2015-06-15 14:01:07 +02:00
Sven Oesau d42aa18936 bugfix for clang (removed empty Filter_unassigned_points constructor)
removed several warnings
switch to CGAL::sqrt
2015-06-15 11:21:08 +02:00
Clement Jamin be9a7921eb Revert "Missing parenthesis"
This reverts commit 5a620cb873d2665eeac0f2d948fd03b578e9b127.
2015-06-12 17:39:17 +02:00
Clement Jamin 1e39860061 Missing parenthesis 2015-06-12 17:06:45 +02:00
Clement Jamin a5e017a7c3 Remove "SIZE_MAX" 2015-06-12 16:51:32 +02:00
Sven Oesau 4fbb438a8a fixed memory leak 2015-06-02 13:15:15 +02:00
Sébastien Loriot 0b77c9bf7e use CGAL::default_random instead of std::mt19937 2015-05-15 09:13:49 +02:00
Sébastien Loriot f7804127e9 give the shapes access to the traits 2015-04-29 15:28:15 +02:00
Sébastien Loriot dbf54bc4f4 the constructor of the default traits takes the geometric traits as parameter 2015-04-29 15:27:43 +02:00
Sébastien Loriot 37922582ff remove a More in the doc 2015-04-29 15:19:09 +02:00
Sébastien Loriot 4bc3ed055b fix compilation issues and warnings 2015-04-29 14:54:02 +02:00
Sébastien Loriot 7c757b8d8c fix the return type of point() and normal() 2015-04-29 14:36:44 +02:00
Sébastien Loriot 782a21822c clean do not call clear_shape_factories 2015-04-29 14:33:42 +02:00
Sven Oesau 41de18ca64 added traits class to Shape_base (set via compute)
removed clear_shape_factories()
removed unused member
2015-04-29 12:22:29 +02:00
Sébastien Loriot 13ef35d8e6 remove extra comma 2015-04-28 21:11:20 +02:00
Sébastien Loriot 3f6eba7993 improve wording 2015-04-28 21:10:40 +02:00
Sven Oesau e3761ae9d2 added example call to Efficient_RANSAC::add_shape_factory() documentation 2015-04-28 17:49:38 +02:00
Sven Oesau 83b7a30f8f changed 0.05 to 5% (documentation) 2015-04-24 16:26:24 +02:00
Andreas Fabri 6a7500a881 polish 2015-04-24 16:10:07 +02:00
Andreas Fabri 6a81833648 polish 2015-04-24 16:04:46 +02:00
Sébastien Loriot b0f50afafe fix citation 2015-04-24 15:26:38 +02:00
Sébastien Loriot 50cba4f5cb uniformize 2015-04-23 09:13:59 +02:00
Sébastien Loriot 08f17c33eb update doc 2015-04-23 08:43:57 +02:00
Sébastien Loriot 87ec11c370 Search_traits_3 requires a Kernel as template parameter 2015-04-23 08:42:56 +02:00
Andreas Fabri 676fd7d1c4 renamed assigned_points_indices to indices_of_assignd_points 2015-04-22 20:08:37 +02:00
Andreas Fabri b282414acf renamed unassigned_points_indices to indices_of_unassigned_points 2015-04-22 19:43:41 +02:00
Andreas Fabri 0676c53db4 fixes so that the examples compile again 2015-04-22 19:24:19 +02:00
Andreas Fabri fbf6926585 polish 2015-04-22 18:40:35 +02:00
Andreas Fabri 3aabefb150 refer to the property maps 2015-04-22 17:39:29 +02:00
Andreas Fabri 75622f39e4 Point ->Point_3 2015-04-22 17:39:29 +02:00
Andreas Fabri 62da6b4082 WIP concerning feedback of reviewers 2015-04-22 16:32:27 +02:00
Andreas Fabri cd693f27cb typos 2015-04-22 12:35:39 +02:00
Sven Oesau 6f9ac59ec5 renamed unassigned_points() to unassigned_points_indices() 2015-04-21 10:03:14 +02:00
Sven Oesau 7aeecf742b changed Shape_range and unassigned_points to Iterator_range 2015-04-20 23:26:18 +02:00
Sven Oesau 7dce2f8303 changed term 'spatially neighbored' to 'connected component' 2015-04-20 13:45:51 +02:00
Sven Oesau 64f2036e69 remove Geom_traits from Efficient_RANSAC_traits
added used classes to Efficient_RANSAC_traits
boost::shared_ptr are now used for shapes retrieved from Efficient_RANSAC
renamed build_octrees to preprocess
renamed set_input_data to set_input
2015-04-20 13:34:35 +02:00
Andreas Fabri 4a0f1e7926 cleanup 2015-04-10 09:04:06 +02:00
Andreas Fabri ff4807c86c prefix with namspace to get the links right 2015-04-07 19:43:29 +02:00
Sven Oesau adbe110d44 removed unused variable (remnant of debugging code)
made variable naming more consistent
2015-04-03 10:08:42 +02:00
Clement Jamin e2eb54590c Pass on the doc 2015-03-27 11:17:13 +01:00
Sébastien Loriot dba58b759a fix typo 2015-03-26 23:47:58 +01:00
Sébastien Loriot b7bd609b20 do not document unused types 2015-03-26 23:44:43 +01:00
Sébastien Loriot 201e76025a use an input range instead of an input iterator in the traits 2015-03-26 23:40:25 +01:00
Sébastien Loriot c0f0b1cd32 rename property map 2015-03-26 23:08:03 +01:00
Sébastien Loriot fd69bbcb4c rename template parameter 2015-03-26 22:58:19 +01:00
Sébastien Loriot 63eb246f93 rename traits 2015-03-26 22:54:42 +01:00
Sébastien Loriot 9958f98341 fix include directives 2015-03-26 22:23:18 +01:00
Sébastien Loriot 995bdbe3f9 move the traits into its own file 2015-03-26 22:21:31 +01:00
Sébastien Loriot 580ebebd03 add traits concept and use a group for the shapes 2015-03-26 22:19:37 +01:00
Sébastien Loriot 47a3023244 add todo 2015-03-26 21:54:58 +01:00
Sébastien Loriot 381cb4edf8 rephrase citation 2015-03-26 21:43:00 +01:00
Sébastien Loriot 9172a349f8 move RANSAC algo header to subdirectory and add convenience header 2015-03-26 20:22:34 +01:00
Sébastien Loriot c6153f1c3c make the demo plugin working again 2015-03-26 20:13:12 +01:00
Sébastien Loriot 61e664c5d2 uppercase RANSAC 2015-03-26 19:35:39 +01:00
Sébastien Loriot bc2555be33 remove warnings and add todos 2015-03-26 19:29:34 +01:00
Sébastien Loriot ea824c5794 fix compilation error 2015-03-26 19:22:33 +01:00
Sébastien Loriot ca36c1da05 fix include header format 2015-03-26 19:18:00 +01:00
Sébastien Loriot 1f92b66621 try to improve doc 2015-03-26 19:12:08 +01:00
Sven Oesau 0e7604f32b removed _3 from all class names as _3 is included in the namespace name
added checking for degenerate cases
updated examples to new interface
use of iterator range for input points
2015-03-19 16:51:58 +01:00
Sven Oesau 865f841fbf added suffix _3 to shape and the internal octree class names
removed some unused headers
renamed Shape_base::assigned_points to assigned_point_indices
renamed Shape_base::required_samples to minimum_sample_size
changed interface of Efficient_RANSAC according to discussion of 1st round
adapted examples
2015-03-16 23:40:55 +01:00
Sven Oesau 44955deed0 created own namespace
moved shape classes to subfolder
all shape classes are now included by Efficient_RANSAC_3
2015-03-15 21:19:58 +01:00
Sven Oesau 07a89a654b renamed Shape_detection_3 to Efficient_RANSAC_3
replaced Shape_Factory by template method of Efficient_RANSAC_3
renamed several functions and variables (from camel case to use of underscores)
2015-03-15 19:56:32 +01:00
Sven Oesau 4ed62c9931 version sent to PhD student in Aachen (Leif Kobbelts group) for review 2015-03-15 15:52:57 +01:00
Sébastien Loriot 4198ecabbb add tmp documentation only interface functions 2015-02-19 16:41:35 +01:00
Sébastien Loriot 1fd27e1cb9 use backticking 2015-02-19 16:02:56 +01:00
Sébastien Loriot 92970c81ac add missing parameter name 2015-02-19 16:01:18 +01:00
Sébastien Loriot 7474efeeb3 prevent generating a detailed description 2015-02-19 16:01:18 +01:00
Sébastien Loriot a3a3dee4cd add missing header files 2015-02-19 16:01:18 +01:00
Sébastien Loriot fb8f400adb add missing groups and bibtex id 2015-02-19 16:01:18 +01:00
pierre alliez 3a13c570cb fighting with virtual class (does not compile) 2015-02-19 16:00:15 +01:00
pierre alliez f1f805a0f1 fighting with abstract class 2015-02-19 15:37:37 +01:00
pierre alliez 5fdfa20a83 Merge branch 'Point_set_shape_detection_3-cjamin' of ssh://scm.cgal.org/var/git/cgal into Point_set_shape_detection_3-cjamin 2015-02-19 14:56:31 +01:00
pierre alliez 015f11d971 shut up warning 2015-02-19 14:54:41 +01:00
pierre alliez 3f806b8069 Now compiles on Linux (Manish) 2015-02-19 14:51:02 +01:00
Sven Oesau 37152aebe4 removed inheritance from documentation 2015-02-17 10:27:35 +01:00
Clement Jamin 004f7fe445 Added a remark 2015-02-16 10:36:56 +01:00
pierre alliez 031c6dd5fc provide -> compute 2015-02-15 11:19:34 +01:00
pierre alliez f8c89c01d7 some comments for code review 2015-02-15 10:19:06 +01:00
Sven Oesau 156e1401f4 added two protected methods in Shape_base for convenient point and normal access
removed some unnecessary includes
2015-02-12 14:22:28 +01:00
Sven Oesau 350b4be5a7 included 'Arbitrary shapes" section to documentation
adapted documentation/images to comments from reviewer
added examples.txt
removed unused types from documentation in shapes
added own planar shape example
2015-02-12 13:01:16 +01:00
Pierre Alliez 50e9182746 few changes in comments 2014-10-30 15:51:33 +01:00
Sven Oesau 49f64a06b4 squared_distance method on single points of Shape_base is now public
added default parameters (partially based on the input data)
changed some data types from size_t to int
2014-10-27 09:27:46 +01:00
Sven Oesau 4c05f487d3 changed Shape_detection_3::add_shape_factory to remove reference to internal class 2014-10-21 11:32:01 +02:00
Sven Oesau 578b380d80 removed Shape_base::parameterExtend()
fixed spelling extend -> extent in Shape_base::connected_component
removed redundant variables in Sphere_shape and Plane_shape
2014-10-21 10:51:55 +02:00
Sven Oesau 57e6d4f5c8 adapted the code to the feedback
- replacing float/double by Kernel::FT
- changed maximum line length to 80 characters (with expection of some doxygen comments)
- size_t is now used for sizes and indexing
2014-10-17 17:16:52 +02:00
Clement Jamin 763ce3d135 Some fixes in the doc + renaming of some variables 2014-07-18 15:56:04 +02:00
Clement Jamin 30f4037b73 Replace a const pointer by a const ref 2014-07-18 14:54:16 +02:00
Clement Jamin 679edffd72 Rename types to follow coding conventions 2014-07-18 14:51:46 +02:00
Sven Oesau 2dc771d03a encapsulated std::max and std::min because of a conflict with a macro 2014-07-15 10:01:55 +02:00
Sven Oesau 55f4585a34 added another graph (performance depending on probability parameter) in documentation
small changes in source
2014-05-23 17:14:51 +02:00
Sven Oesau 3370e5f8e9 redesigning the interface
doxygen documentation of the public api
user manual
example added
2014-05-13 15:07:59 +02:00
Sven Oesau 7c0ed9c010 renaming of files
removed dependency on schnabels ransac
2014-05-13 14:57:37 +02:00
Sven Oesau dfb30c068b fixed connected component for cylinders (was not working correctly for large radii) 2014-02-19 09:06:00 +01:00
Sven Oesau 86834b7f2c implementation of torus and cone primitive
small bugfix in updatePoints in Efficient_ransac.h (crash)
2014-01-20 16:10:42 +01:00
Sven Oesau 0f46847b9f added profiling to implementation
StopProbability for candidate generation fixed (closer to schnabels implementation)
2013-11-25 11:32:03 +01:00
Sven Oesau a24d771308 connected component takes bitmap extend now from extracted parameters (instead from bbox)
cylinder maps sample point to axis instead of using Line::point from CGAL
added some profiling to Primitive.h
2013-11-25 11:30:34 +01:00
Sven Oesau b53fd21fc7 removed some unused code
added saving of primitives as ply
added operator for sorting to Primitive.h and Efficient_ransac.h (reference and pointer versions)
replaced point on primitive for planes with one of the samples instead of using the CGAL function
added destructor to Octree.h for memory cleanup
2013-11-25 09:36:22 +01:00
Sven Oesau be3208074d cleaned up:
- removed unnecessary types
- removed unused code
2013-10-22 08:29:25 +02:00
Sven Oesau 6f6c738f54 implementation of octree
sphere and cylinder primitive detection
connected component for planes and cylinders (non developable surfaces are more difficult)
several bugfixes (scoring of candidates, selection of samples
2013-09-30 16:12:08 +02:00
Yannick Verdie 2951ce4b85 some change to move cost function up in the hierarchy 2013-07-16 13:25:55 +02:00
Clement Jamin a5d14eb6e5 First experimental prototype of Efficient Ransac (written by Yannick)
Plane detection only.
Some work to do to make it CGAL-conforming.
2013-04-18 18:18:03 +02:00