Commit Graph

267 Commits

Author SHA1 Message Date
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
Andreas Fabri e9edf5efac bug fix 2014-04-11 09:46:42 +02:00
Sébastien Loriot 720e3d3578 make the order of vertices in the link similar as bcb7cc03 2014-04-10 15:54:01 +02:00
Sébastien Loriot 97b5300a66 clean up 2014-04-10 15:32:27 +02:00
Sébastien Loriot c867c1d2e2 remove unused variable 2014-04-10 15:22:20 +02:00
Andreas Fabri d4f88fd138 bugfix. endleft and endright were not initialized if the surface has a border 2014-04-10 15:09:09 +02:00
Andreas Fabri 0ca4d8de85 Use the border property map (not the top level provided one, but the one obtained with get(edge_border...) 2014-04-10 10:44:26 +02:00
Andreas Fabri bcb7cc0332 Rewrite of Extract_triangles_and_link() using no map 2014-04-10 10:11:33 +02:00
Andreas Fabri e986d53df6 typo 2014-04-10 09:17:01 +02:00
Andreas Fabri c45eb40191 Check initially if the surface has borders 2014-04-09 17:18:45 +02:00
Andreas Fabri 6f278a3837 Rewrite of Extract_borders()
Don't use a map, but start from the edge that we want to contract
and turn around the two vertices by looking at each edge exactly once
2014-04-09 15:34:25 +02:00
Andreas Fabri cf28acb826 Use less index maps 2014-04-09 15:04:33 +02:00
Andreas Fabri 0b63624b1e Move the reserve to the right spot
Don't use a vertex index map
2014-04-09 13:51:15 +02:00
Andreas Fabri 3558831f22 reserve 2014-04-09 13:43:37 +02:00
Panagiotis Cheilaris 0edd0e2943 put a field access in assertion code
This fix removes a warning in compilation of mesh_simplification_plugin
in demos (in some environments).
2014-03-07 15:42:54 +01:00
Panagiotis Cheilaris 6812889b8f use a value from insert in Edge_profile_impl
This fix removes a warning in compilation of mesh_simplification_plugin
in demos (in some environments).
2014-03-06 19:20:09 +01:00
Sébastien Loriot 5786041a31 uniformly use surface mesh in the documentation, the API and the examples
This induces a renaming of the Concept EdgeCollapsableMesh to
  EdgeCollapsableSurfaceMesh and the same for the constrained version.
2014-02-13 16:33:45 +01:00
Sébastien Loriot 9b79c9a842 make sure all edges removable are removed
After the collapse of an edge the 2-ring of edges incident
  to the remaining vertex are reinserted in PQ when no longer in PQ.
  An exemple is also updated to show the issue if we remove the fix.
2014-02-13 16:32:47 +01:00
Sébastien Loriot 8384c6be3c fix warnings in the testsuite 2014-01-31 12:02:17 +01:00
Sébastien Loriot 9dcd94d753 do not use a halfedge after it has been removed 2014-01-30 15:28:19 +01:00
Sébastien Loriot c5b7ccef71 remove warning 2014-01-30 15:27:57 +01:00
Sébastien Loriot 9311883c97 rename Constrained_placement_wrapper to Constrained_placement 2014-01-30 14:39:30 +01:00
Sébastien Loriot b28fadc2c3 handle zero-length edges and constrained correctly
Handle constrained edges of length 0
Remove from the queue edges removed (not related to constraints)
Avoid calling Collapse directly to avoid updating neighbors
2014-01-30 14:08:29 +01:00
Sébastien Loriot e2ad879473 update debug print function to use pmap instead of assuming id() is available 2014-01-30 13:23:37 +01:00
Sébastien Loriot a5c75e732c take into account the constrained edges and ensure they will not disappear
The code is fully backward compatible and is written to not
penalize the runtime when no edge is constrained
2014-01-29 19:05:10 +01:00
Sébastien Loriot 8135ef739c add some debug code to get intermediate mesh during simplification 2014-01-29 19:05:09 +01:00
Sébastien Loriot 0c14664977 Add a is-constrained edge map without using it for now 2014-01-29 19:04:55 +01:00
Sébastien Loriot a503a77aee remove an edge if topology stays the same+don't process an already removed edge 2013-09-25 13:23:06 +02:00
Sébastien Loriot 82b2ebc865 apply the cpp0x namespace renaming in all files 2012-12-19 11:33:17 +01:00
Sébastien Loriot 1fec6c7ca1 remove edges of length 0 instead of ignoring them 2012-09-07 14:19:24 +00:00
Philipp Möller 8f1ce2412c Removed all places where the CGAL_CFG_NO_TMPL_IN_TMPL work-around was
used. Those were mostly in Polyhedron and HalfedgeDS but some places
in Arrangement_2 used it, too. Neither of the parts of Arrangement_2
have been documented.
2012-04-13 13:13:30 +00:00