Commit Graph

360 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé d62927d9e7 Removed empty lines from the constraint matrix
Default linear solvers are Umfpack and Eigen SparseLU
2017-06-22 16:15:57 +02:00
Andreas Fabri 92accde094 static_cast to avoid warnings 2017-06-22 16:15:57 +02:00
Mael Rouxel-Labbé 37e35eeea8 Misc minor changes 2017-06-22 16:15:57 +02:00
Mael Rouxel-Labbé df70fedbcf Small changes in matrix size in SMP's orbital
Preparation to clean the matrix A from its useless (but not harmful in practice)
empty lines.
2017-06-22 16:15:57 +02:00
Mael Rouxel-Labbé 9a148a4a06 Simplified SMP's CMakeLists.txt 2017-06-22 16:15:57 +02:00
Mael Rouxel-Labbé c62e503a39 Added Orbital Tutte parameterizer and an example
Only the orbifold type I method with MVC coefs is implented in this commit
2017-06-22 16:15:57 +02:00
Mael Rouxel-Labbé f910d2ee60 Misc minor changes 2017-06-22 16:15:57 +02:00
Mael Rouxel-Labbé ccdf3a6bf4 Added some safety guard when vertices are given to border paramterizers
to make sure that the given vertices are on the same border/connected component.
2017-06-22 16:15:57 +02:00
Mael Rouxel-Labbé de433db108 Fixed some headers still using vertices(mesh) or faces(mesh)
...which grabs too many entities while we only want a connected component.
2017-06-22 16:15:57 +02:00
Mael Rouxel-Labbé 20bcc9233c Improved the initial parameterization of ARAP
and gave bool_pmap its own header
2017-06-22 16:15:57 +02:00
Mael Rouxel-Labbé 8e77c99653 Fixed seam meshes not always picking the longest border in a connected component 2017-06-22 16:15:57 +02:00
Mael Rouxel-Labbé cde65fd465 Fixed validity tests considering all the faces of the mesh
and not a single connected component
2017-06-22 16:15:57 +02:00
Andreas Fabri 7e9ecd5cf2 more backticks 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 66a2119da6 Documentation changes for SMP 2017-06-22 16:14:55 +02:00
Andreas Fabri 59a04915db fixes 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé a8f82f4382 Merged the ParameterizedTraits_3 and BorderParameterizer_3 concepts
Incident changes:
- Angle computations helper, Error_code and kernel_traits<TriangleMesh> live in
  their own file
- Doc and examples changes
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 8922e36408 Fixed compilation after moving headers 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 4f811d1dbe Moved all headers into a Surface_mesh_parameterization folder
This is simply the move + adding a convenience file at the root, and no other
changes, thus it does not compile.
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé e96c474f78 Documentation changes for SMP 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 7ce8fdf3f6 Misc minor changes 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 2ee44c1c15 Added discrete authalic and ARAP to the Polyhedron demo 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé a8492d987f Reworked the way corner vertices are passed to the square_border_parameterizer
and added an example of usage.
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 0438d6d34d Fixed some doc warnings 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 6f40a05af1 Removed an unused error code 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé fcfe9662af Renamed the function parameterize_border() of border parameterizers
to the simpler "parameterize()"
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé a52040fb4e Added is_one_to_one_mapping() to all parameterizers 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 8da6683ef0 Misc minor changes
Some doc, some typos, some indentation...
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé b17c60f4d8 Fixed const correctness in SMP 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 62979fc9b5 Improved SMP's documentation 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé bb9230f4ff Fixed discrete authalic example
This example is now used to illustrate the use of various border parameterizers
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 656d996e6f Fixed Circular and Square border parameterizer
-- Reintroduced the uniform circular border parameterizer for consistency
-- Fixed the Square border parameterizer to work with BGL meshes
-- The square border parameterizer can now be given four vertices that will
   be used as corners of the square border
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 013e32d314 Replaced calls to num_vertices() 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé ae06b044ce Improved existing SMP code
-Factorized the different tools to construct vertices and faces container in
a single class.
-Updated all examples accordingly and replaced the polylines output by an OFF
output across all files.
-Some other minor changes (missing includes, indentation, typos, etc.)
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 3245d726e3 Misc minor changes 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé c71d8285d0 Updated the examples of the SMP to work with the new Seam mesh
Also a small change in the Polyhedron demo
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 922d072609 Added flip and non-valid parameterization tests
MVC post processor is only called in ARAP if the parameterization is no valid.
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 6d47ef3735 Fixed the MVC post processor overzealously constraining all borders
As for the 'real' MVC parameterizer, only one border must be constrained.
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé b8d7bd24c0 Fixed using ARAP's border parameterizer in the initial MVC parameterization 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 12344fd325 Fixed the brute force 'simpleness' test of the borders in the ARAP post processor 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé a7da445497 The initial parameterization in ARAP_param now depends on the number of borders 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé fcdc127a08 Fixed a function duplicated over different files 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 3644a91f82 Added a way to write uvmaps into OFF files 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 4a9f01685a Fixed not using the solver member in MVC_post_processing_3 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 30a7d7843f Updated Surface_mesh_parameterization's documentation 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé e5dcc1c9a0 Properly factorized the Containers_filler internal class 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 7e7ff03831 Changed some comments 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé e8d22d0f24 Some progress towards compilation of ARAP with a seam_mesh
Most of the issues come from the incomplete seam_mesh graph traits now.
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 320e40d6c4 Fixed some return type in the MVC post processor 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 8afe8af986 Fixed choice of fixed vertices for different types of lambda
Not too sure about that change, but it (sort of) makes sense to only
fix one point when lambda !=0, it works, and looking -now- at the other
branch on ARAP, they had done the same.
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 95bc5f4b91 Changed some comments 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 8a1688e13f Fixed include directives 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé b4c0784a67 Small changes to make ARAP work with a Surface_mesh
Note that this requires the boost hash maps of commit ec7aa45
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 23ac9a95c1 Fixed compilation of the ARAP paramaterizer
The location of Misc_conic.h was changed by the merge of master
2017-06-22 16:14:55 +02:00
Sébastien Loriot 8a8948ebed update doc 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 92496eacfc Split post processing functions away from ARAP parameterizer's class 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé a83fecb3c7 Changed some comments 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 0f10528369 Added post processing that (attempts to) fix potential flips in the ARAP param 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 17e3477151 Changed some comments 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé c73c0c904e Reworked the counter of the energy-minimizing loop 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé e738fc6dac Added a macro to choose which vertices are fixed 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé fd4e709c1b Added a way to compute 'a' using the algeabric kernel to solve the cubic eq 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 8cbd200250 Changed some comments 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 81cfaeb944 Fixed using the wrong coordinates in the RHS of the system and the energy
Global coordinates were used instead of UV coordinates...
2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 18091ce6df Removed superfluous references to property maps 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 4388da9582 Added draft of the local/global mesh parameterization algorithm 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 688340cf50 Fixed a comment 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 65b2708daf Removed the superfluous uv_map from ContainersFiller 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé c478443b3e Fixed const correctness 2017-06-22 16:14:55 +02:00
Mael Rouxel-Labbé 79490fd8b0 Cleaned code (indentation, whitespace, etc.) 2017-06-22 16:14:55 +02:00
Maxime Gimeno c403f3c688 Fix remaining bugs and add a "highlighting" of the current patch being projected. 2017-06-22 16:12:26 +02:00
Maxime Gimeno ee8f7d0dff Fix the LSCM Parameterizer 2017-06-22 16:12:26 +02:00
Maxime Gimeno fd8336ecf8 Implementation of the seaming. 2017-06-22 16:12:26 +02:00
Maxime Gimeno 407bb3e675 Restore Parameterization_plugin with the BGL API. 2017-06-22 16:12:26 +02:00
Andreas Fabri 63a5c1fd0b still WIP 2017-06-22 16:12:26 +02:00
Andreas Fabri c03ca8fb63 broken code, as I ask Sebastien to find the compile timer error 2017-06-22 16:12:26 +02:00
Andreas Fabri f6f52e01b0 cleanup and fix of Simple_parameterization.cpp 2017-06-22 16:12:26 +02:00
Maxime Gimeno 63abf210c9 WIP parameterization_plugin + fixes for parameterization files. 2017-06-22 16:12:26 +02:00
Andreas Fabri f7b826125b Add the possibility to pass the two vertices that are selected 2017-06-22 16:12:26 +02:00
Andreas Fabri 92be8f478d Add lscm.cpp 2017-06-22 16:12:26 +02:00
Andreas Fabri 45e19be366 Use property maps to store seam edges and vertices 2017-06-22 16:12:26 +02:00
Andreas Fabri 902ff15f87 fix target(halfedge, Seam_mesh) for when the halfedge is on the border of a seam edge 2017-06-22 16:12:26 +02:00
Andreas Fabri 9cc84e828c Add an initial User Manual section for Seam_mesh 2017-06-22 16:12:26 +02:00
Andreas Fabri 162759ca87 polish 2017-06-22 16:11:38 +02:00
Andreas Fabri ac11cf8032 deal correctly with a patch 2017-06-22 16:11:38 +02:00
Andreas Fabri 36530e3f98 polish 2017-06-22 16:11:38 +02:00
Andreas Fabri b11385455f Fix target(Seam_msh) 2017-06-22 16:11:38 +02:00
Andreas Fabri 82f2a2b4ca WIP 2017-06-22 16:11:38 +02:00
Andreas Fabri afc6476992 start rewriting the doc 2017-06-22 16:11:38 +02:00
Andreas Fabri fa68850338 Use Vertex_around_target_circulator again 2017-06-22 16:11:38 +02:00
Andreas Fabri 869dfbb1e9 finally it works with a Seam_mesh 2017-06-22 16:11:38 +02:00
Andreas Fabri a6a62bc4f6 index vertices inside parameterize() 2017-06-22 16:11:38 +02:00
Andreas Fabri b7c5d49689 clean Simple_parameterization.cpp 2017-06-22 16:11:38 +02:00
Andreas Fabri b077704d04 rename template parameter; remove files related to the mesh_patch class 2017-06-22 16:11:38 +02:00
Andreas Fabri 46ed3edf92 LSCM seems to work too 2017-06-22 16:11:38 +02:00
Andreas Fabri 6dc52b4166 port two parametrisation classes 2017-06-22 16:11:38 +02:00
Andreas Fabri 7901186856 remove Taucs support 2017-06-22 16:11:38 +02:00
Andreas Fabri 92a463bdcc split constructor of Seam_mesh in two functions 2017-06-22 16:11:38 +02:00
Andreas Fabri 99a3b99283 make connecteced_component work for Seam_mesh 2017-06-22 16:11:38 +02:00
Andreas Fabri 4a2344f0cc discrete authalic now works for Surface_mesh and for a Seam_mesh 2017-06-22 16:11:38 +02:00
Andreas Fabri e1089a9168 WIP: Add vertex_descriptor which is a kind of canonical halfede_descriptor 2017-06-22 16:11:38 +02:00
Andreas Fabri 1164cb14bf Discrete Authalic parametrisation now works for a Seam_mesh with borders and seams 2017-06-22 16:11:38 +02:00
Andreas Fabri b7cdb47463 WIP - lets get it working with the Seam_graph next 2017-06-22 16:11:38 +02:00
Andreas Fabri c746425f8c Authalic parametrization works with a Surface_mesh with border 2017-06-22 16:11:38 +02:00
Andreas Fabri 3d6b3ca909 fix 2017-06-22 16:11:38 +02:00
Andreas Fabri 4bd2f363d0 simplify code 2017-06-22 16:11:38 +02:00
Andreas Fabri b237249d0b deal with seam tree. so far seam must not touch the border 2017-06-22 16:11:38 +02:00
Andreas Fabri e90fbb9867 it seems to work with seams. need visual output next to inspect it 2017-06-22 16:11:38 +02:00
Andreas Fabri 871b831992 use halfedge and not vertex circulator 2017-06-22 16:11:38 +02:00
Andreas Fabri 37a32d6727 WIP 2017-06-22 16:11:38 +02:00
Andreas Fabri a09df5d2d2 simplify code 2017-06-22 16:11:38 +02:00
Andreas Fabri 9699e99162 make square border parameterizer work 2017-06-22 16:11:38 +02:00
Andreas Fabri d77bb6c242 make all parametrization methods work 2017-06-22 16:11:38 +02:00
Andreas Fabri f664cb4268 get it working for Surface_mesh 2017-06-22 16:11:38 +02:00
Andreas Fabri cb9f0aa21d fixes so that LSCM works as well 2017-06-22 16:11:38 +02:00
Andreas Fabri 3350d2871c simplify the border (will become complicated again later, but different) 2017-06-22 16:11:38 +02:00
Andreas Fabri 59dd85f56d simplify the border (will become complicated again later, but different) 2017-06-22 16:11:38 +02:00
Andreas Fabri 6399e49be0 use a property map for the uv values 2017-06-22 16:11:38 +02:00
Andreas Fabri 511add25fa introduce index property maps 2017-06-22 16:11:38 +02:00
Andreas Fabri 8721b58b1a towards a BGL API -- still a long way to go :< 2017-06-22 16:11:38 +02: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
Andreas Fabri 8bf639ab94 static -> CGAL_STATIC_THREAD_LOCAL_VARIABLE 2016-12-01 16:23:46 +01:00
Simon Giraudot da9422e77b Warning fix: variable may be used uninitialized 2015-12-17 10:54:36 +01:00
Simon Giraudot d77dd257ef Warning fix: unused parameter 2015-12-17 10:53:21 +01:00
Sébastien Loriot f151025380 fix the bad conflict resolution 2015-09-26 18:07:36 +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 ba619c8a0d Include Eigen default parameter in manual 2015-09-18 15:33:12 +02:00
Simon Giraudot 6ef242b7af Remove useless duplicate code, use default template parameter to call Eigen_solver_traits 2015-09-18 10:30:13 +02:00
Simon Giraudot 2b676edd1e Clean up least square solver wrapper 2015-08-24 15:02:51 +02:00
Simon Giraudot 6d1332c3fa Replace OpenNL by Eigen Conjugate Gradient (not least squares yet). More than 2x speed up. 2015-08-10 07:54:01 +02:00
Simon Giraudot db4a974f64 Eigen interface for LSCM 2015-08-07 11:55:00 +02:00
Andreas Fabri 8ae42933c7 Do not explain OpenNL and say that LSCM has no parameter for a solver 2015-04-13 16:37:40 +02:00
Laurent Rineau 495ed0b6ab Merge remote-tracking branch 'origin/CGAL-Less_warnings-GF'
Fix various warnings.

Tested in CGAL-4.5-Ic-97. Approved by the Release Manager.
2014-07-16 17:48:56 +02:00
Andreas Fabri c0be9a38d3 initialize to avoid warning 2014-07-11 09:27:10 +02:00
Sébastien Loriot 2892c2fb4e Merge branch 'Surface_modeling-new_package-GF-old' into Surface_modeling-new_package-GF
Conflicts:
	Documentation/biblio/geom.bib
	Documentation/doxyassist.xml
2014-04-08 14:41:09 +02:00
Sébastien Loriot 6f3c2d1151 pre-factor -> factor 2014-02-17 09:12:25 +01:00
Andreas Fabri 6ecba63bb1 Mostly add #includes 2013-09-14 19:31:13 +02:00
Sébastien Loriot b352ca7410 Merge branch 'Surface_modeling-new_package-GF-old' into Surface_modeling-new_package-GF 2013-08-06 16:34:47 +02:00
Sébastien Loriot d282ade623 use \cgalCite instead of \cite
using perl -i -pe 's/\\cite\s*{?([a-zA-Z0-9:-]+)}?/\\cgalCite{$1}/g'
2013-08-05 18:25:26 +02:00
Sébastien Loriot d9cf655db1 Merge branch 'Surface_modeling-new_package-GF-old' into Surface_modeling-new_package-GF
Conflicts:
	Documentation/doxyassist.xml
	Documentation/header_package.html
	Polyhedron/demo/Polyhedron/CMakeLists.txt
2013-06-27 08:55:59 +02:00
Andreas Fabri cfd69b1490 long/int -> size_t 2013-02-27 11:44:55 +01:00
Sébastien Loriot c8fb9844aa Merge branch 'gsoc2011-surface-modeling-Yzju' into Surface_modeling-new_package-GF
Conflicts:
	.gitattributes
	AABB_tree/doc_tex/AABB_tree_ref/AABBGeomTraits.tex
	AABB_tree/doc_tex/AABB_tree_ref/AABBTraits.tex
	AABB_tree/dont_submit
	AABB_tree/test/AABB_tree/AABB_test_util.h
	AABB_tree/test/AABB_tree/aabb_correctness_triangle_test.cpp
	Arrangement_on_surface_2/include/CGAL/Arr_point_location/Trapezoidal_decomposition_2_impl.h
	Boolean_set_operations_2/examples/Boolean_set_operations_2/bezier_traits_adapter2.cpp
	Installation/cmake/modules/CGAL_CreateSingleSourceCGALProgram.cmake
	Installation/cmake/modules/CGAL_Macros.cmake
	Installation/cmake/modules/CGAL_SetupDependencies.cmake
	Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_3_triangulation.cpp
	Maintenance/svn_server/hooks/Mail/Sender/CType/Ext.pm
	Polyhedron/demo/Polyhedron/CMakeLists.txt
	Polyhedron/demo/Polyhedron/Polyhedron_demo_normal_estimation_plugin.cpp
	Polyhedron/demo/Polyhedron/Polyhedron_demo_point_set_outliers_removal_plugin.cpp
	Polyhedron/demo/Polyhedron/data/cow.off
	Principal_component_analysis/test/Principal_component_analysis/linear_least_squares_fitting_segments_3.cpp
	Surface_mesh_parameterization/examples/Surface_mesh_parameterization/CMakeLists.txt
	Surface_reconstruction_points_3/include/CGAL/Poisson_reconstruction_function.h
2013-02-07 17:00:00 +01:00
Philipp Möller e271a13a33 Document files in Surface_mesh_parameterization 2012-12-04 14:25:00 +01:00
Sébastien Loriot 4ec9529581 Merge branch 'doxy-port-pmoeller'
Conflicts:
	.gitattributes
	Surface_reconstruction_points_3/include/CGAL/Poisson_reconstruction_function.h
	Surface_reconstruction_points_3/include/CGAL/Reconstruction_triangulation_3.h
	Surface_reconstruction_points_3/include/CGAL/k_nearest_neighbor.h
2012-11-27 10:05:41 +01:00
Sébastien Loriot bfca42081d add missing backquotes in cgalModels 2012-11-23 09:55:55 +01:00
Sébastien Loriot ae8362b7d6 replace \cgalModels ::FOO by \cgalModels `FOO`
using:
 perl  -pi -e 's/\\cgalModels\s+::([A-Za-z0-9_:]+)\s*$/\\cgalModels `$1`\n/'
2012-11-23 09:37:53 +01:00
Sébastien Loriot 128b02abb8 update CGAL custom doxygen macros
corresponds to a run of the script Documentation/conversion_tools/rename_macros.sh
+manual edit of doxyassist.xml and pkglist_filter.py
2012-11-14 00:31:05 +01:00
Alex Tsui a11d3408d6 Fixed a bug to properly check whether a facet is seaming. 2012-11-06 20:12:41 +00:00
Alex Tsui c06c1c09d9 Fixed a bug where we try to deref a reference in get_decorated_mesh(). 2012-11-06 19:45:28 +00:00
Sébastien Loriot 3c8f53b7bf fix reference manual 2012-10-22 15:48:42 +00:00
Andreas Fabri b8b7a5dad3 get rid of spurious XX 2012-10-03 17:02:54 +00:00