Commit Graph

684 Commits

Author SHA1 Message Date
Simon Giraudot fdfebe43f8 Correction of push_back and clear functions 2016-02-17 14:44:59 +01:00
Simon Giraudot d243980a73 Add useful accessors and modifiers to Point_set_3 2016-02-17 11:53:20 +01:00
Simon Giraudot 1ebe99f9de Bugfix: check multiple swaps when applying indices change 2016-02-10 10:51:32 +01:00
Simon Giraudot 3413680a23 Bugfix: if test was inverted 2016-02-10 08:09:01 +01:00
Simon Giraudot 66c9b18012 WIP: use directly Properties instead of Surface_mesh in Point_set_3 2016-02-09 14:46:05 +01:00
Simon Giraudot 8ad613cdcf Simplify Ply_read_number using templates instead of explicit specialization 2016-02-03 11:53:45 +01:00
Simon Giraudot b800b12b55 Update doc with new API 2016-02-03 11:34:44 +01:00
Sebastien Loriot 4f737d4682 Merge pull request #702 from afabri/CGAL-source-GF
Use source() not prefixed with boost::
2016-02-03 09:45:01 +01:00
Simon Giraudot 7e77304239 Simplify API of PlyInterpreter introducing a Ply_reader class 2016-02-02 18:38:29 +01:00
Andreas Fabri b126649f37 less boost:: 2016-02-01 20:12:43 +01:00
Andreas Fabri 4c9c668dc9 deal with deprecated code 2016-02-01 15:52:52 +01:00
Andreas Fabri c772598ae6 Use source() not prefixed with boost:: 2016-02-01 09:56:57 +01:00
Simon Giraudot fd2e2e6395 Update namespaces with Properties moved out of Surface_mesh 2016-01-29 15:18:37 +01:00
Simon Giraudot 9362ca342c Fix warning: uninitialized variable 2016-01-29 07:14:23 +01:00
Simon Giraudot 490b90650b Improve readability of class Point set 2016-01-28 09:59:54 +01:00
Simon Giraudot c9bf1e1d12 Remove useless debug display 2016-01-28 08:44:48 +01:00
Simon Giraudot 6d16b5cb12 Bugfix: use reference on pmap for points instead of copy 2016-01-28 07:20:47 +01:00
Simon Giraudot 490de56688 Add missing SKIP_IN_MANUAL cond 2016-01-26 12:53:57 +01:00
Simon Giraudot 50bd422d1d More on manual 2016-01-26 11:52:47 +01:00
Andreas Fabri 6af27d6033 Add a typedef 2016-01-25 17:28:27 +01:00
Simon Giraudot 3e09542e0e Replace push_pmap with generalized template version 2016-01-25 15:28:32 +01:00
Andreas Fabri 59a2acf16b Add const to & 2016-01-25 12:56:01 +01:00
Andreas Fabri 006dcf0c97 cast to get rid of warnings 2016-01-25 11:31:33 +01:00
Simon Giraudot 262c697fb5 Fix how to access points and normals 2016-01-25 10:26:37 +01:00
Simon Giraudot 28f879eddf Use iterator on indices as default 2016-01-25 09:54:49 +01:00
Simon Giraudot ba40408f67 Erase function based on indices 2016-01-25 09:44:06 +01:00
Simon Giraudot b5bbafb2f4 Add index property map + functors for back insertion and point/normal push pmap 2016-01-22 15:43:52 +01:00
Simon Giraudot fdf3857226 Separate CGAL::Point_set_3 from Point_set_3 in polyhedron demo 2016-01-21 11:41:45 +01:00
Simon Giraudot 449ce4de7e Bugfix: incorrect types 2016-01-21 11:24:11 +01:00
Simon Giraudot db06ace31d More on reference manual 2016-01-20 15:58:48 +01:00
Simon Giraudot 1fafd34d32 Simplify Ply_interpreter writing for users 2016-01-20 11:42:13 +01:00
Andreas Fabri 97134babbf remove/add #includes 2016-01-20 10:19:08 +01:00
Simon Giraudot 5bfd8ba23e Warning fix: missing static_cast 2016-01-19 18:00:37 +01:00
Simon Giraudot 24270dd358 Remove obsolete comment 2016-01-19 16:26:48 +01:00
Andreas Fabri 993abde037 Add header todo: split it in just the point set and what is needed in the Polyhedron demo 2016-01-19 15:51:12 +01:00
Andreas Fabri 2b01b1763e move Point_set_3.h 2016-01-19 15:47:29 +01:00
Simon Giraudot 44eeb83a73 Add missing include 2016-01-14 15:33:10 +01:00
Simon Giraudot a3f03a0094 Move PLY reader and PLY interpreter out of internal 2016-01-14 11:14:57 +01:00
Simon Giraudot e3f201d881 Function to use custom interpreter + error messages + better naming 2016-01-14 11:10:04 +01:00
Simon Giraudot b8a74bf30f Add test to check if interpreter is applicable to current ply file 2016-01-14 10:55:27 +01:00
Simon Giraudot 907006ef0f Externalize functor to interpret ply input 2016-01-14 10:45:59 +01:00
Simon Giraudot 3a704227ee Reorganize code, separate header/content reading 2016-01-14 08:58:45 +01:00
Simon Giraudot 5649b0dd58 Protect std::min with parenthesis (illegal token error with VS) 2016-01-14 07:57:38 +01:00
Simon Giraudot 93637a28ef Warning fixes: conversions from double to std::size_t 2016-01-13 15:17:25 +01:00
Simon Giraudot 24f98d687f Bugfix: only compute centroid if non-empty point container 2016-01-13 09:09:11 +01:00
Simon Giraudot 5bfa2fdd7f Add missing include (limits) 2016-01-13 08:03:02 +01:00
Simon Giraudot 40257fefb5 Merge branch 'Point_set_processing_3-Point_set_structuring-GF-old' into Point_set_processing_3-Point_set_structuring-GF 2016-01-12 11:53:09 +01:00
Simon Giraudot f079c7538a Disable VC++ warning 2016-01-11 14:44:31 +01:00
Simon Giraudot 3fd7a3fb81 Warning fix: use std::size_t instead of int 2016-01-11 08:38:18 +01:00
Simon Giraudot 8c55b470ee Merge branch 'Point_set_processing_3-Point_set_structuring-GF' of github.com:CGAL/cgal-dev into Point_set_processing_3-Point_set_structuring-GF 2016-01-11 07:36:54 +01:00
Simon Giraudot 3a8937259c Remove #define CGAL_PSP3_VERBOSE and add condition to warning displays 2016-01-11 07:36:09 +01:00
Andreas Fabri f22051c8d0 Point -> const Point& 2016-01-09 10:21:11 +01:00
Andreas Fabri f7c0dd44d2 fix VC++ problem with max() 2016-01-09 10:12:50 +01:00
Simon Giraudot a33f7f89a8 Use std::numeric_limits<std::size_t>::max() instead of (std::size_t)(-1) 2016-01-06 15:13:58 +01:00
Andreas Fabri d497120e5f clean Point_set_processing 2016-01-05 17:17:10 +01:00
Sébastien Loriot 81d638341a prevent internal namespace to be documented 2015-12-28 10:51:49 +01:00
Simon Giraudot d2bf68506d Speed up computation of corners 2015-12-14 11:56:42 +01:00
Simon Giraudot 5f771f6732 Bugfix: break instead of continue made some corners badly defined 2015-12-11 17:56:35 +01:00
Simon Giraudot 55b01dda63 Speed up computation of corners (early ending added) 2015-12-11 15:14:39 +01:00
Simon Giraudot 8d55bb7a58 Add a coherence_type enum for clearer result meanings 2015-12-09 11:58:19 +01:00
Simon Giraudot 7c0006c4e8 Bugfix: do not run algorithm if no plane available 2015-12-04 08:44:20 +01:00
Simon Giraudot 0cc0550067 Remove useless accessor + more specific coherence values 2015-12-03 14:06:30 +01:00
Simon Giraudot 2a9d90728b Simplify notations by cleaning point set after algorithm 2015-12-02 14:08:11 +01:00
Simon Giraudot 82a08e343c Handle freeform coherence + public access methods 2015-12-02 12:59:08 +01:00
Simon Giraudot 26477bdf37 Change name of variable 2015-12-01 15:44:41 +01:00
Simon Giraudot 04b20c04a5 Add citation of point set structuring paper 2015-12-01 15:30:54 +01:00
Simon Giraudot 9e581355a3 Beginning of work on manual 2015-12-01 15:22:34 +01:00
Simon Giraudot 7d7d1073b1 Cleaning comments and add verbose ifdef 2015-12-01 12:53:02 +01:00
Simon Giraudot 2b97a3063f Also generate normals when structuring point set 2015-11-30 11:03:36 +01:00
Simon Giraudot d3016c5185 Bugfix: deactive corner if too far away from point set 2015-11-30 08:24:37 +01:00
Simon Giraudot 7ba0d499bf Filter Delaunay coherent facet with size parameter 2015-11-27 15:37:07 +01:00
Simon Giraudot 72a83bcbca Method to get coherent Delaunay facets 2015-11-27 11:51:28 +01:00
Simon Giraudot ca129b6684 Keep track of edge/corner indices 2015-11-27 09:38:37 +01:00
Simon Giraudot 5aac533a56 Merge branch 'Point_set_processing_3-Point_set_structuring-GF-old' into Point_set_processing_3-Point_set_structuring-GF 2015-11-26 14:48:54 +01:00
Simon Giraudot 37b446fc4e Projection bugfix + empty corners bugfix + missing distance test added 2015-11-26 09:53:42 +01:00
Simon Giraudot 7fb11280e2 Corner directions + sampling refinement 2015-11-25 12:50:37 +01:00
Simon Giraudot a1da4ab306 Refine sampling (WIP) 2015-11-25 10:47:43 +01:00
Simon Giraudot 30c352f025 Bugfix: OFF reader should accept comments and empty lines 2015-11-25 09:18:15 +01:00
Simon Giraudot 1f4191bbc7 Remove debugging code portion 2015-11-13 14:28:31 +01:00
Simon Giraudot 4602910059 Bugfix: wrong indices in loop 2015-11-13 14:02:47 +01:00
Simon Giraudot 6a0ee7e673 Method to get detailed output 2015-11-13 12:36:27 +01:00
Simon Giraudot 38b6c428f3 Simplified API + function to get output points 2015-11-13 11:11:39 +01:00
Simon Giraudot a7d7efbb22 Plane resampling 2015-11-13 10:50:04 +01:00
Simon Giraudot 8b8f97217b Merging corners 2015-11-13 10:02:14 +01:00
Simon Giraudot 06814e1a8a Corner computation 2015-11-13 09:13:10 +01:00
Simon Giraudot dcf06b4a13 Creation of edge points and anchor points 2015-11-12 14:58:43 +01:00
Simon Giraudot b1d9d6b611 Computing edges 2015-11-12 10:48:05 +01:00
Simon Giraudot ee247e6f90 Bugfix: inserting *it and not *begin in loop 2015-11-12 09:51:39 +01:00
Simon Giraudot cc934e45bb WIP: finding pairs of adjacent primitives 2015-11-10 15:43:32 +01:00
Simon Giraudot 6b0cccad0b File for point set structuring + general structure 2015-11-10 10:49:47 +01:00
Simon Giraudot 99d4fc84bd Merge branch 'Point_set_processing_3-IO_ply-GF-old' into Point_set_processing_3-IO_ply-GF 2015-10-15 14:27:57 +02:00
Laurent Rineau 18cac48bae Merge pull request #367 from sgiraudot/Point_set_processing-hierarchical_clustering-sgiraudot
New point set processing algorithm: Hierarchical clustering
2015-10-14 10:54:37 +02:00
Clement Jamin 145131e2e6 Use Real_timer in PSP3 and T3 since the algorithms might be parallel 2015-10-08 15:34:40 +02:00
Simon Giraudot 09d2c9e5a4 Revert removal of hack to handle char properly (std::stream treats boost::int8_t as char) 2015-10-08 10:18:16 +02:00
Simon Giraudot 39eef61847 Add headers 2015-10-08 10:08:39 +02:00
Simon Giraudot f614ce4ea1 Remove useless includes 2015-10-08 10:08:20 +02:00
Simon Giraudot 833982a32f Use boost fixed-width integer types for portability (and remove hack for reading ASCII 'char') 2015-10-08 09:52:45 +02:00
Simon Giraudot eb430e2397 Harmonize template indentation and remove outdated header 2015-10-08 09:24:35 +02:00
Simon Giraudot 79ca962159 Merge branch 'Point_set_processing_3-IO_ply-GF-old' into Point_set_processing_3-IO_ply-GF 2015-10-08 08:48:39 +02:00
Simon Giraudot 512273ae5f Update doc and tests 2015-10-08 08:47:14 +02:00
Simon Giraudot 0916c32ded Fix numeric_limits::max bug (conflict with other max) 2015-10-08 07:59:56 +02:00
Simon Giraudot b35e34238a Bugfix: if 2 input points are equal, avoid infinite loop and terminate non-empty cluster 2015-10-07 16:00:54 +02:00
Simon Giraudot a068249ac5 Minor code cleaning/rewriting 2015-10-07 16:00:53 +02:00
Simon Giraudot e6054bfdeb Rename function and files in accordance to content 2015-10-07 16:00:53 +02:00
Simon Giraudot 20698d4dde Make the algorithm a simplification algorithm instead of a clustering one 2015-10-07 16:00:53 +02:00
Simon Giraudot 28cf05f189 Remove duplicate code (use PCA_util.h to assemble covariance matrix) 2015-10-07 16:00:52 +02:00
Simon Giraudot 648c19b6f6 Remove unused typedef warning 2015-10-07 16:00:52 +02:00
Simon Giraudot b16f7605d6 Enhancement: keep current cluster an only build one side instead of two 2015-10-07 16:00:52 +02:00
Simon Giraudot cf9b7230d8 Algorithm is faster if the plane is not constructed 2015-10-07 16:00:52 +02:00
Simon Giraudot 5df527d2f0 Correct preconditions 2015-10-07 16:00:52 +02:00
Simon Giraudot bf8d876d6d More on user manual and reference manual 2015-10-07 16:00:51 +02:00
Simon Giraudot e6c757f463 Begin working on reference manual 2015-10-07 16:00:51 +02:00
Simon Giraudot 14567ae261 Add variant with default diagonalize traits 2015-10-07 16:00:51 +02:00
Simon Giraudot fea22733ee Speed up using list instead of queue (avoid multiple copies) + bugfix 2015-10-07 16:00:51 +02:00
Simon Giraudot 5ab793531c Bugfix: if one of the two sides is empty, only treat the non-empty side 2015-10-07 16:00:51 +02:00
Simon Giraudot ed2d3167e2 Stack is faster than queue in this case 2015-10-07 16:00:51 +02:00
Simon Giraudot 7babff9f05 Optimizations (using splice for lists and reference for queue.front()) 2015-10-07 16:00:51 +02:00
Simon Giraudot eb7266a42d Cleaning/reorganizing code, use diagonalize_traits and add variants with default parameters and template deduction 2015-10-07 16:00:50 +02:00
Simon Giraudot e8dd34cb21 Implemented the efficient computation of the second centroid.
The hierarchical clustering algorithm gets about 15% faster
(on test Eglise Fontaine, from 91s to 76s).
2015-10-07 16:00:50 +02:00
Simon Giraudot ee1e7ee714 Added the alternative implementation of hierarchical clustering using
the Eigen library.

For now, both implementations are available (switchable with a
2015-10-07 16:00:50 +02:00
Pierre Alliez 00fad8756a Add comments in hierarchical clustering and fix indentations 2015-10-07 16:00:50 +02:00
Simon Giraudot b87d1bbc3e Very first version of the hierarchical clustering added (work in
progress).

It contains somes functions that may be more relevant in some other
package :
* 2 functions to compute the covariance matrix of a 3D point set
* 2 functions to split a point set according to a plane

Also the function of the actual hierachical clustering algorithm.
2015-10-07 16:00:50 +02:00
Sebastien Loriot 62644a62aa Merge pull request #318 from sgiraudot/CGAL-Solver-package-GF
Regroup solver interface in Solver_package
2015-10-07 15:54:48 +02:00
Simon Giraudot 30323c816a Write PLY headers 2015-10-07 15:34:08 +02:00
Simon Giraudot 1e068b0844 Skeleton of write_ply_points.h file 2015-10-07 15:12:19 +02:00
Simon Giraudot 0004aed5bc Bug fix: explicitly ask an integer when reading char/uchar from stream 2015-10-07 15:06:08 +02:00
Simon Giraudot a8bea5e6d9 Handle detailed types (e.g. int16 instead of short) 2015-10-07 14:19:26 +02:00
Simon Giraudot f732c100c3 Fix warnings and use union instead of reinterpret_cast 2015-10-07 14:08:03 +02:00
Simon Giraudot c2e38b72a6 Merge branch 'Point_set_processing_3-IO_ply-GF-old' into Point_set_processing_3-IO_ply-GF 2015-10-07 13:52:06 +02:00
Simon Giraudot fddcb24197 Polyhedron demo ply_to_xyz reader 2015-10-07 13:50:57 +02:00
Simon Giraudot 850f28ed07 Ply reader for point sets 2015-10-07 12:10:29 +02:00
Simon Giraudot 867a731d48 WIP: processing PLY header 2015-10-06 15:36:35 +02:00
Simon Giraudot ac3dbad721 Skeleton of new read_ply_points.h file 2015-10-06 15:01:50 +02:00
Simon Giraudot ac591cf257 Merge branch 'Point_set_processing_3-TBB-GF-old' into Point_set_processing_3-TBB-GF 2015-09-29 13:50:17 +02:00
Sébastien Loriot da650cbd1c Merge branch 'old/CGAL-Solver-packages-GF' into CGAL-Solver-package-GF 2015-09-26 15:47:54 +02:00
Simon Giraudot 13e4a76cd8 Merge branch 'Point_set_processing_3-TBB-GF-old' into Point_set_processing_3-TBB-GF 2015-09-24 12:45:58 +02:00
Sébastien Loriot cdfc7f1c31 Merge branch 'old/CGAL-split_packages-GF' into CGAL-split_packages-GF 2015-09-23 10:08:41 +02:00
Sébastien Loriot 68aa21292a Merge branch 'old/CGAL-Solver-packages-GF' into CGAL-Solver-package-GF 2015-09-21 07:34:18 +02:00
Simon Giraudot a4f242a0cc Replace Internal_diagonalize_traits by Diagonalize_traits + corrections in Concepts/Models 2015-09-16 11:41:26 +02:00
Andreas Fabri 58b7dc7319 fix typo 2015-09-16 09:29:09 +02:00
Simon Giraudot b840307161 Generate compile-time error if Parallel_tag is used without TBB 2015-09-08 15:31:28 +02:00
Simon Giraudot 2c6e6e5e57 Update Reference Manual with additional template parameter 2015-09-08 12:38:34 +02:00
Simon Giraudot 935956a10f Merge branch 'Point_set_processing_3-TBB-GF-old' into Point_set_processing_3-TBB-GF 2015-09-08 11:11:07 +02:00
Simon Giraudot 0afe0249f9 Bugfix: badly placed #ifdef caused bug if TBB was not used 2015-09-08 10:42:47 +02:00
Simon Giraudot 63f77a05a5 Merge branch 'CGAL-Solver-package-GF-old' into CGAL-Solver-package-GF 2015-09-07 10:01:12 +02:00
Simon Giraudot 136de97318 Bugfix: DiagonalizeTraits now really returns largest eigenvalue + inversion of parameters in voronoi_covariance is corrected. 2015-09-04 16:01:46 +02:00
Simon Giraudot dd271ecca5 Revert "Bugfix: function extract_largest_(...) is now called extract_smallest_(...) to be consistent with what is actually extracted."
This reverts commit 8410aab93c.
2015-09-04 15:13:57 +02:00
Simon Giraudot 8410aab93c Bugfix: function extract_largest_(...) is now called extract_smallest_(...) to be consistent with what is actually extracted. 2015-09-03 18:55:19 +02:00
Laurent Rineau 9bae0c0e63 Merge pull request #270 from sgiraudot/Polyhedron_demo-WLOP_plugin-sgiraudot
Polyhedron demo point set processing plugins
2015-09-03 17:22:54 +02:00
Simon Giraudot 26aab5fc5c Use default diagonalization interface for VCM functions 2015-09-03 14:36:47 +02:00