Commit Graph

397 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé a3748b35f8 Remove dead header include 2021-06-29 16:29:40 +02:00
Mael Rouxel-Labbé 4d9ec82b1a Fix formula for the 'c' coefficient of the quadric 2021-06-29 15:35:18 +02:00
Mael Rouxel-Labbé 2ef3ccdef7 Erase includes to removed header 2021-06-29 15:34:59 +02:00
Julian Komaromy 5767964365 resolve todos and add default values 2021-06-28 15:24:38 +02:00
Julian Komaromy 3fd015595b remove cout 2021-06-28 14:44:19 +02:00
Julian Komaromy 887bcf7fce fix and incorporate review 2021-06-15 12:11:29 +02:00
Julian Komaromy 1b468fe620 implement probabilistic quadrics 2021-06-09 21:50:55 +02:00
Julian Komaromy afb98de8af use traits class construtions 2021-06-09 21:50:37 +02:00
Julian Komaromy d96f8986be fix constructors and uncomment lines 2021-06-09 21:10:04 +02:00
Julian Komaromy a4b75fbe85 remove obsolote files 2021-06-08 21:13:43 +02:00
Julian Komaromy df368bcabe make quadric detail customizable 2021-06-08 21:12:32 +02:00
Julian Komaromy 4d9b6f13bb move quadric construction into new header 2021-05-31 22:05:32 +02:00
Dmitry Anisimov bd600286ee surface mesh simplification range loop analysis copy to ref warning fixed 2021-01-08 10:20:34 +01:00
Andreas Fabri 8ae9070e5d Fix warnings 2020-12-30 09:06:19 +00:00
Andreas Fabri ac1200fe28 Cleanup of GetFilter 2020-11-10 10:52:53 +00:00
Andreas Fabri 041502a60c Move Envelope_filter to PMP 2020-11-05 08:43:33 +00:00
Andreas Fabri e1c1e1fbb6 capitalize file name in the #include (VC++ did not care) 2020-11-04 11:28:02 +00:00
Andreas Fabri 5ff48521d1 Use TLS; Fix SMS example 2020-11-04 09:53:38 +00:00
Sébastien Loriot 87b8f66e14 update from master 2020-10-20 09:19:13 +02:00
Andreas Fabri 89c9ed68b6 change namespace and add doc 2020-10-20 09:17:16 +02:00
Andreas Fabri a9b78f97a5 Add the test of SMS using the Envelope 2020-10-20 09:17:16 +02:00
Andreas Fabri deeff23907 Rename header file 2020-10-20 09:17:14 +02:00
Andreas Fabri e957de2993 Make the filter a named parameter 2020-10-20 09:17:09 +02:00
Jane Tournois bfd4e9915f rename named parameter graph_visitor to visitor 2020-09-15 15:42:24 +02:00
Andreas Fabri f31b7fe4e1 SMS: Use FastEnvelope to bound the error 2020-09-09 17:02:03 +01:00
Sébastien Loriot d6d8fbeb8b the placement must store the triangles has the AABB-tree does not copy them 2020-04-27 16:06:43 +02:00
Sébastien Loriot 3e75af4fcd remove useless calls to accelerate_distance_queries 2020-04-23 17:00:12 +02:00
Mael Rouxel-Labbé 618a72b739 Merge remote-tracking branch 'cgal/master' into PMP-soup_to_mesh_add_vpm 2020-03-17 20:00:31 +01:00
Mael Rouxel-Labbé ad62f89a20 Use the new index map initializer functions and fix doc 2020-03-06 15:25:38 +01:00
Mael Rouxel-Labbé 26463ded7a Update NPs using default constructed default values to new API
+ misc cleaning
2020-02-28 11:55:17 +01:00
Mael Rouxel-Labbé 80f1583fa8 Minor doc improvements 2020-01-28 12:45:29 +01:00
Mael Rouxel-Labbé 46e7a8f930 Make it optional to pass the AABB tree 2020-01-28 12:45:29 +01:00
Mael Rouxel-Labbé 5ab92fef26 Keep the squared value in memory instead of recomputing it on every call 2020-01-28 12:45:29 +01:00
Mael Rouxel-Labbé d556bcc5d6 Fix compilation / test 2020-01-28 12:45:29 +01:00
Mael Rouxel-Labbé 32e78834eb Clean header 2020-01-28 12:45:29 +01:00
Sébastien Loriot fd43d44fa5 do an initial try with the closest point since do_intersect is with a sphere and not a ball 2020-01-28 12:45:29 +01:00
Maxime Gimeno a17c5b1eb2 Update 2020-01-28 12:45:29 +01:00
Maxime Gimeno 5907ec9a18 Add Policy for bounded distance placement 2020-01-28 12:45:29 +01:00
Maxime Gimeno 4351ecfb5e Add test for bench 2020-01-28 12:45:29 +01:00
Mael Rouxel-Labbé 9a7c98f26c Minor code fixes 2019-11-29 11:42:18 +01:00
Mael Rouxel-Labbé 6cbb0d0712 Make the VertexCostMap a member of the policy
If the dynamic property map isn't attached to the mesh, this could not
work previously.
2019-11-29 09:30:54 +01:00
Mael Rouxel-Labbé 55bb46a383 Use DontAlign property for garland heckbert matrices
See discussion in: https://github.com/CGAL/cgal/pull/4279

Initial warning: https://cgal.geometryfactory.com/CGAL/testsuite/results-5.1-Ic-11.shtml#Surface_mesh_simplification_Examples
2019-11-29 09:29:48 +01:00
Mael Rouxel-Labbé 5057df5cb7 Properly forward a parameter 2019-11-20 09:09:05 +01:00
Mael Rouxel-Labbé 0813fd740b Move partial specializations outside of the Edge_collapse.h class 2019-11-19 11:04:14 +01:00
Mael Rouxel-Labbé ddf9be579b Fix conversion warnings 2019-11-15 11:44:04 +01:00
Mael Rouxel-Labbé a0db18b0bb Fix code typo 2019-11-15 11:43:49 +01:00
Mael Rouxel-Labbé a1763c8789 Mark expensive assertions as expensive 2019-11-15 11:43:32 +01:00
Mael Rouxel-Labbé 11e49e817c Fix compilation of SMS trace code 2019-11-15 11:17:19 +01:00
Mael Rouxel-Labbé ea3736ab20 Fix using full specialization of functions within non namespace scopes 2019-11-15 11:11:04 +01:00
Mael Rouxel-Labbé 6f96731156 Fix header license text 2019-10-28 09:41:51 +01:00
Mael Rouxel-Labbé ff09c5d0c8 Merge branch 'SMS-Add_GH_simplification-GF-old' into SMS-Add_GH_simplification-GF 2019-10-25 16:35:53 +02:00
Mael Rouxel-Labbé 1fc58a433f misc code cleaning 2019-10-21 15:31:07 +02:00
Mael Rouxel-Labbé 9b30a557f8 Remove incorrect comment about null placements 2019-10-21 15:21:27 +02:00
Mael Rouxel-Labbé 7be4775087 Fix old assertion that had not been updated when constraints were introduced 2019-10-21 00:22:09 +02:00
Mael 082732ee59
Fix missing include 2019-10-20 01:37:45 +02:00
Mael Rouxel-Labbé 19c02bdd0b Fix missing include 2019-10-19 18:06:05 +02:00
Mael Rouxel-Labbé c488a14d96 Regroup both GH policies within a single class
Simpler API (users don't have to explicit the vertex cost map) + clearer
that they must go together.
2019-10-19 18:03:01 +02:00
Sébastien Loriot c4c1a0b317 Remove license notice in headers manually 2019-10-19 16:00:05 +02:00
Sébastien Loriot 254d60f642 First pass on removing license notice in header for GPL files 2019-10-19 15:23:19 +02:00
Sébastien Loriot 7356421d80 introduce Commercial license SPDX tag 2019-10-19 12:15:19 +02:00
Mael Rouxel-Labbé 09bd731ff9 Finish documentation 2019-10-18 23:09:21 +02:00
Sébastien Loriot 9bd9c68b83 update LGPL[23]+ and GPL[23]+ SPDX tags
ack -l --no-svg "SPDX-License-Identifier: GPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-3.0+/SPDX-License-Identifier: GPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-3.0+/SPDX-License-Identifier: LGPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: GPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-2.0+/SPDX-License-Identifier: GPL-2.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-2.0+/SPDX-License-Identifier: LGPL-2.0-or-later/"
2019-10-18 21:57:54 +02:00
Mael Rouxel-Labbé eb2942bc37 No more lies about the concept EdgeProfile, it does not exist.
Users cannot actually set any model, it is hardcoded to be SMS::Edge_profile
2019-10-17 16:19:47 +02:00
Mael Rouxel-Labbé 4ec28cb79b Add a traits class member to Surface_mesh_simplification
Can be passed via named parameters, must be compatible with the VPM
2019-10-17 15:35:56 +02:00
Mael Rouxel-Labbé d7e26020f4 Minor cleaning (no real changes) 2019-10-17 12:53:04 +02:00
Mael Rouxel-Labbé 7b1547d1f0 Continue improving Surface_mesh_simplification
- Use BGL functions
- Simplify trivially simplifiable code
- Use proper nomenclature (no camel code, stop using capital
  on members, etc.)
- Fix Edge and Halfedge being mixed (edge_index_map
  being a halfedge index map, etc.)
- Get rid of package specific macros so that assertions are
  actually doing something
- Minor indentation changes
2019-10-16 16:01:26 +02:00
Mael Rouxel-Labbé a88382283b Clean weird and useless converter shenanigans in OpenMesh-based simplification
Profile::Point is by definition equal to Profile::VPM::value_type,
so it is not converting anything.

Users are free to pass a custom VPM, and in that case things will break
because there is no proper geom traits being passed, but this is an
independent issue that must be fixed.
2019-10-16 15:32:45 +02:00
Mael Rouxel-Labbé e4b2be3e4b Merge branch 'SMS-Add_GH_simplification-GF-old' into SMS-Add_GH_simplification-GF 2019-10-16 12:32:30 +02:00
Mael Rouxel-Labbé f121c194b4 Fixes for GH:
- Actually use the VPM
- Do not compute the planes needlessly: loop faces rather than vertices
- Some minor fixes
2019-10-16 11:06:12 +02:00
Mael Rouxel-Labbé ae3f7d1e1a Revert unpractical change (forces having to specify template parameters) 2019-10-15 14:00:55 +02:00
Mael Rouxel-Labbé d5a05392b0 Fix type 2019-10-15 13:59:09 +02:00
Mael Rouxel-Labbé c0b61fbace Mirror commit c6fc4568fe 2019-10-15 13:59:09 +02:00
Mael Rouxel-Labbé f026201511 Misc SMS cleaning 2019-10-15 13:59:09 +02:00
Mael Rouxel-Labbé 63e8bf841a Fix wrong sign 2019-10-15 13:59:09 +02:00
Mael Rouxel-Labbé cb3c68eca2 Rework the storing of cost marices for GH simplification 2019-10-15 13:59:09 +02:00
Mael Rouxel-Labbé 7b3a59f355 Remove undesired files 2019-10-15 13:59:07 +02:00
Mael Rouxel-Labbé d7f615dd6e Clean code 2019-10-15 13:58:13 +02:00
Baskin Senbaslar a662c97f00 map_type change to state_type 2019-10-15 13:58:13 +02:00
Mael Rouxel-Labbé bfdaf7f2de Do not return a cost if there is no placement (GH) 2019-10-15 13:58:13 +02:00
Baskin Senbaslar 2c37b32f92 borders are handled based on edges instead of vertices 2019-10-15 13:58:13 +02:00
Baskin Senbaslar 0e0c312bf4 garland&heckbert border bad simplification issue solved 2019-10-15 13:58:13 +02:00
Baskin Senbaslar cd7fd75efc GarlandHeckbert_cost_stop_predicate added 2019-10-15 13:58:13 +02:00
Baskin Senbaslar 9438b6c168 several changes, fix the issue with plane normal normalization 2019-10-15 13:58:10 +02:00
Sébastien Loriot c6fc4568fe do not collapse an edge is the placement cannot be computed 2019-08-19 13:45:45 +02:00
Sébastien Loriot 25a05e9f4c Merge branch 'CGAL-named_function_parameters-4.14' into master
Conflicts resolved by hand
2019-07-28 23:46:43 +02:00
Sébastien Loriot 560c77f567 rename named function parameter class 2019-07-15 06:25:02 +02:00
Sébastien Loriot cebf0657d8 Use a full CGAL version of named function parameters
no longer rely on boost
2019-07-14 22:45:47 +02:00
Baskin Senbaslar b4e313e323 garland&heckbert null-face problem solved, 1 more example added for polyhedron meshes 2019-06-13 16:09:06 +03:00
Baskin Senbaslar 0c893d8167 garland&heckbert non invertible derivative matrix handled with alternative optimization 2019-06-11 17:39:22 +03:00
Baskin Senbaslar 22e02f0d65 Add garland&heckbert mesh simplification first structure and implementation 2019-06-07 22:59:59 +03:00
Mael Rouxel-Labbé b2cb2e708d Clean interal code
- Get rid of abusive and often useless 'using'
- Rename Detail to internal to align with conventions
- put internal code in 'internal' namespace
- Put include headers where they matter rather than in Common.h
2019-05-09 11:41:58 +02:00
Mael Rouxel-Labbé 2e178c106b Remove "convenience" headers that are actually just cluttering things up 2019-05-09 09:40:36 +02:00
Mael Rouxel-Labbé 6d8d0b564c Clean SMS code (whitespace, indentation, variable names, clumsy for loops, etc) 2019-05-09 09:31:35 +02:00
Mael Rouxel-Labbé 4747f8ccaf Improve reader sanity
- Re-indent to more normal standards
- Remove usage of *_impl.h
- Clean useless and trailing whitespace
- some minor code readability changes
2019-05-03 14:56:21 +02:00
Sébastien Loriot ce126b87c6 remove cpp11::copy_n, cpp11::prev, and cpp11::next and use std instead 2019-03-29 13:28:32 +01:00
Sébastien Loriot e474d61fa7 handle the case of degenerate volumes in the link condition
a volume is degenerate if it consists only of twice the same face
with opposite orientation
2018-09-04 10:09:08 +02:00
Sebastien Loriot c09e6ec7bc
Merge pull request #2741 from sloriot/SMS-clean_up_doc
Cleanup documentation
2018-05-07 11:29:48 +02:00
Maxime Gimeno 7fa4b380d2 fixes in includes logic. 2018-02-02 12:08:05 +01:00
Sébastien Loriot f2b1e70d80 rename ECM -> TM in code 2018-01-16 10:03:06 +01:00
Sébastien Loriot ee297db460 Merge remote-tracking branch 'cgal/releases/CGAL-4.11-branch' 2017-12-21 15:16:10 +01:00
Sébastien Loriot 09a7f58410 Merge remote-tracking branch 'cgal/releases/CGAL-4.10-branch' 2017-12-21 15:15:20 +01:00
Sébastien Loriot 989264e32b only the counts must be tight
lSize must be num_edges as we use an array for edge property
we access using halfedge index properties
2017-12-21 15:08:20 +01:00
Laurent Rineau f37630bc0f Merge branch 'releases/CGAL-4.11-branch'
# Conflicts:
#	Kernel_23/test/Kernel_23/include/CGAL/_Result_of_kernel.h
#	Kernel_23/test/Kernel_23/test_result_of.cpp
2017-12-05 18:14:23 +01:00
Laurent Rineau 9513533b68 Merge pull request #2643 from sloriot/SMS-use_tight_edge_numbers
Use a tight count for the number of edges
2017-12-05 17:58:25 +01:00
Sébastien Loriot 4e8639edb9 workaround a warning with MSVC 2017-12-04 11:50:52 +01:00
Sébastien Loriot c0eb7c33e1 use a tight count for the number of edges 2017-11-29 14:54:12 +01:00
Sébastien Loriot ee57fc2d6c add SPDX identifier for files under the GPL-3+ license 2017-11-12 10:17:51 +01:00
Andreas Fabri 5b69ef7783 Add typedef .. ECM so that one can wrap the Midpoint_placement 2017-10-05 08:39:31 +01:00
Laurent Rineau e5f49829cd Merge pull request #2350 from sloriot/SMS-fix_link_computation
Fix the link computation for edges on the border
2017-08-28 12:57:15 +02:00
Sébastien Loriot 4d68958d82 fix the link computation
the only tedious point is what to do with the target vertices
of endleft and endright that might be the target of the
halfedges used to start the link extraction
(that is opp(prev(v0v1)) and opp(prev(v1v0)))
The fix consists in checking whether such a vertex will be (were) added
by the next (previous) while-loop.
2017-08-24 11:07:03 +02:00
Andreas Fabri 6c0323fc8a fix typos and indentation 2017-07-17 16:39:27 +02:00
Maxime Gimeno d019010144 Fix exemple 2017-06-28 11:28:05 +02:00
Simon Giraudot 4749fda6a1 Bugfix: missing typename 2017-06-26 11:08:34 +02:00
Andreas Fabri b21d6a18aa Fix and comment as Mael suggested 2017-06-26 11:08:34 +02:00
Andreas Fabri 836ca79279 Fix Bounded_normal_change_placement.h 2017-06-26 11:08:34 +02:00
Andreas Fabri c55f66a170 WIP: document new placement 2017-06-26 11:08:34 +02:00
Andreas Fabri 00f3c27eae Add a placement class that avoids a change of >90deg of facet normals 2017-06-26 11:08:33 +02:00
Andreas Fabri 3f46969e88 resolve merge conflict 2017-06-26 11:08:33 +02:00
Sébastien Loriot e9395aba6f move enum for named parameters inside internal_np namespace 2017-02-13 10:25:28 +01:00
Maxime Gimeno e1430aa6ac Use CGAL::parameters in edge_collapse.h for parameters. 2017-02-10 10:20:32 +01:00
Sébastien Loriot 50510c05ea add include directive for license of all GPL header files
done using:
ack-grep "^GPL" */package_info/*/license.txt -l | awk -F "/" '{print $1}' > /tmp/gpl_packages
for i in `cat /tmp/gpl_packages | \
          grep -v Operations_on_polyhedra | \
          grep -v Algebraic_kernel_for_circles | \
          grep -v Algebraic_kernel_for_spheres | \
          grep -v Polyhedron_IO`;
do
  echo $i
  python Scripts/developer_scripts/add_license_in_pkg_header.py $i
done
python Scripts/developer_scripts/add_license_in_pkg_header.py Operations_on_polyhedra Polygon_mesh_processing
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_circles Circular_kernel_2
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_spheres Circular_kernel_3
python Scripts/developer_scripts/add_license_in_pkg_header.py Polyhedron_IO Polyhedron
2017-01-19 15:20:25 +01:00
Laurent Rineau 3b04501a63 Merge pull request #1698 from sloriot/SMS-missing_ns
Add missing namespace
2016-12-02 11:35:34 +01:00
Sébastien Loriot 16f1b07adc add missing namespace 2016-11-16 22:13:21 +01:00
Sébastien Loriot 6325b309f3 add a stop predicate to collapse all short edges 2016-10-21 14:43:33 +02:00
Andreas Fabri c45730530c Fix package Surface_mesh_simplification: include headers 2016-09-30 15:23:14 +02:00
Sébastien Loriot cd60cfc2d2 named parameters are in parameters namespace 2015-03-17 16:20:37 +01:00
Andreas Fabri f242567a3f fix wording and indentation 2014-12-30 16:04:01 +01:00
Andreas Fabri 4937d02271 make the trace code work for Surface_mesh 2014-12-30 11:57:05 +01:00
Andreas Fabri cb62891f8e Use size_type of the graph 2014-12-29 12:55:37 +01:00
Andreas Fabri 9f6807b005 Add Tds_2::collapse_edge() 2014-12-18 08:25:57 +01:00
Andreas Fabri 896add20d3 fix implementation of number_of.. 2014-11-12 17:03:54 +01:00
Andreas Fabri cc20bf42a8 bug fixes 2014-11-12 15:42:21 +01:00
Sébastien Loriot 0da71942d1 is_topologically_valid is aware of pinching and handle it as topological feature 2014-08-28 10:47:42 +02:00
Sébastien Loriot 5f4813b64d properties_Polyhedron_3.h is now included by graph_traits_Polyhedron_3.h 2014-07-04 17:24:05 +02:00
Andreas Fabri 00be4cd8fa Don't use const Point& but property_traits<..>::reference 2014-07-02 17:44:10 +02:00
Andreas Fabri c836b21521 no typename needed 2014-06-19 18:45:29 +02:00
Andreas Fabri 4ba2eae6bf replace copy pasted specific code by a call to a generic function 2014-06-19 13:42:38 +02:00
Sébastien Loriot 432bf75c3c remove extra template paramater 2014-06-11 14:15:00 +02:00
Andreas Fabri 51990f53e3 Remove border property map and switch from halfedge to edge constraints.
The latter has a bug as edge_constrain_sharp_edges removed constrained edges
2014-06-04 13:03:31 +02:00
Andreas Fabri 02ba12b686 fix Constrained_placement 2014-06-03 17:41:55 +02:00
Andreas Fabri e1b6990d42 Add a vertex-point property map so that we can use the mesh simplification with OpenMesh 2014-06-03 16:37:40 +02:00
Andreas Fabri ec5dceb0e7 BGL style in assertions 2014-06-03 09:55:59 +02:00
Andreas Fabri b866447f54 Add an example for simplifying an OpenMesh 2014-05-30 16:19:28 +02:00
Andreas Fabri 0e02466b2b remove halfedge_collapse_Polyhedron_3.h 2014-05-28 12:13:48 +02:00
Andreas Fabri c753fc97ff add Euler::collapse_edge taking into account constrained edges 2014-05-28 11:46:24 +02:00
Andreas Fabri a26b6ef84c #if 0 the low level implementation of collapse_edge as it has a bug 2014-05-28 10:30:36 +02:00
Andreas Fabri 1949cd5122 first changes in the manual 2014-05-27 17:52:08 +02:00
Andreas Fabri de34478f85 fix the mesh_simplification_plugin 2014-05-27 17:10:43 +02:00
Andreas Fabri c552dce7c6 first pass to switch to the BFL API 2014-05-27 16:02:42 +02:00
Sébastien Loriot ecc86d3bd7 add code for backward compatibility
Note that the result is still the same without the patch.
Indeed, the uniqueness of link vertices is guaranteed if the
collapse of the edge is topologically valid.
This patch is just to avoid users having cost/placement
relying on the former behavior even for non-topologically
valid collapse (which seems unlikely to happen)
2014-05-23 17:13:27 +02:00