Commit Graph

1886 Commits

Author SHA1 Message Date
konstantinos katrioplas d5c6283b54 testing curvature flow, exploring robust degenerate handling, overloads and minor fixes 2018-03-26 13:56:07 +02:00
konstantinos katrioplas 6a41e8b48a paste degenerate removal code in compatible remeshing class 2018-03-26 13:56:07 +02:00
konstantinos katrioplas 54a8b80eac more robust edge collapsing and use of repair.h for deg faces 2018-03-26 13:56:07 +02:00
konstantinos katrioplas bc72d6715c recent pull in repair.h - minor changes 2018-03-26 13:56:07 +02:00
konstantinos katrioplas 493992978c remove degenerate edges and faces 2018-03-26 13:56:07 +02:00
konstantinos katrioplas 46c524ecaf curvature example in cmakelists 2018-03-26 13:56:07 +02:00
konstantinos katrioplas 29dc7c968a find new location using cot weigths 2018-03-26 13:56:06 +02:00
konstantinos katrioplas 02a295c93a normalize kn 2018-03-26 13:56:06 +02:00
konstantinos katrioplas ed5908233d setup plugin for curvature flow 2018-03-26 13:56:06 +02:00
konstantinos katrioplas 7fbe5e156d verbose info in smoothing.h and an overload 2018-03-26 13:56:06 +02:00
konstantinos katrioplas f46a9b06cc add projection to initial surface on curvature smoothing 2018-03-26 13:56:06 +02:00
konstantinos katrioplas 1b28c2d032 mean curvature smoothing - testing with and without cot angles in simple cases 2018-03-26 13:56:06 +02:00
konstantinos katrioplas f1d2339d1a calculate mean curvature flow with Monge jet fitting 2018-03-26 13:56:06 +02:00
konstantinos katrioplas 9d1f09921c cotangent weights calculation 2018-03-26 13:56:06 +02:00
konstantinos katrioplas 9293646193 add tests for invalid meshes and adjust tolerance a bit to comply with some extreme cases 2018-03-26 13:56:06 +02:00
Laurent Rineau 208005b014 Merge pull request #2565 from MaelRL/Various-Fix_numeric_limits_min_uses_411-GF
Fix wrong uses of std::numeric_limits::min() (4.11)
2017-11-03 14:29:30 +01:00
Laurent Rineau 666ff0c862 Merge pull request #2544 from janetournois/PMP-corefinement-improve-doc-GF
PMP corefinement : improve doc
2017-10-27 18:00:42 +02:00
Mael Rouxel-Labbé 5ef873d67e Merge remote-tracking branch 'mine/Various-Fix_numeric_limits_min_uses-GF' into Various-Fix_numeric_limits_min_uses_411-GF 2017-10-27 11:57:21 +02:00
Mael Rouxel-Labbé da5200f577 Fixed wrong uses of std::numeric_limits::min() 2017-10-27 11:40:22 +02:00
Laurent Rineau a1d6d2a7a7 Merge pull request #2514 from janetournois/Polyhedron_demo-fix_isotropic_remeshing_plugin-jtournois
Polyhedron demo - fix isotropic remeshing plugin
2017-10-23 17:14:37 +02:00
Laurent Rineau 7caa6ea021 Merge pull request #2514 from janetournois/Polyhedron_demo-fix_isotropic_remeshing_plugin-jtournois
Polyhedron demo - fix isotropic remeshing plugin
2017-10-23 16:53:18 +02:00
Jane Tournois a7a94ac1d7 improve doc
add a precondition,
and move a piece of doc where it should be
2017-10-19 15:23:24 +02:00
Jane Tournois 5a45fdf99d Merge branch 'PMP-fix_isotropic_remeshing_next_to_corners-jtournois' into Polyhedron_demo-fix_isotropic_remeshing_plugin-jtournois 2017-10-17 15:45:30 +02:00
Jane Tournois fb0d7840d5 remove useless check for reverse version 2017-10-17 15:30:37 +02:00
Jane Tournois aa758493b1 Merge branch 'PMP-fix_isotropic_remeshing_next_to_corners-jtournois' into Polyhedron_demo-fix_isotropic_remeshing_plugin-jtournois
# Conflicts:
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h
2017-10-16 14:49:02 +02:00
Jane Tournois 03e7265cef a Polyhedron_3 does not have an internal pmap for face_patch_id_t
so the condition was always returning false for a Polyhedron
we are inside the demo, so this condition can be safely removed
2017-10-16 13:04:42 +02:00
Laurent Rineau 46cc91e787 Merge pull request #2478 from mtola/master
fix bug -> 2x 2 missing "inline" to prevent duplicate symbols during …
2017-10-13 17:06:22 +02:00
Laurent Rineau 0533547da9 Merge pull request #2447 from sloriot/Demo-add_more_repair_functions
add more repair functions in the Polyhedron demo
2017-10-13 17:00:47 +02:00
Laurent Rineau 6bda8ad7d5 Merge pull request #2516 from janetournois/PMP-fix_isotropic_remeshing_with_isolated_vertices-jtournois
PMP - fix isotropic remeshing with isolated vertices
2017-10-13 16:54:35 +02:00
Sébastien Loriot 01bda3f852 add function to close boundary cycle of size 2
use it after the general stitching function
2017-10-12 14:38:41 +02:00
Sébastien Loriot a2cc276ccb simplify the code by avoid to have an extra map for the edge to be stitched
the code changes a little bit the output as some border cycles of size 2
can be created (these edges were not set for stitching for example if
there were a third edge that could be stitched and was rejected by the
manifold test)
2017-10-12 14:19:58 +02:00
Laurent Rineau 107cdccd6d Merge pull request #2438 from lrineau/Mesh_3-test_polyhedral_complex_with_surface_mesh-GF
Mesh_3: make it work with Surface_mesh
2017-10-11 19:14:49 +02:00
Jane Tournois 8d486694dc use check_normals() inside collapse_does_not_invert_face() 2017-10-10 12:51:04 +02:00
Jane Tournois c657f43f19 deal with more than 2 surface patches in check_normals(v)
until now it did not deal with the corner cases
2017-10-10 12:16:03 +02:00
Jane Tournois 6e8bb6b03e deal with more than 2 patches in the collapsibility checks 2017-10-10 11:48:37 +02:00
Jane Tournois ddaad24e63 add corner case conditions for collapsibility 2017-10-10 11:46:31 +02:00
Jane Tournois 5cc6209528 filter out isolated vertices
for tangential_relaxation and projection
2017-10-09 16:38:57 +02:00
Jane Tournois 6a5c46dd50 remove duplicate member variable 2017-10-09 11:27:06 +02:00
Jane Tournois 3e4e4968f7 add missing vertex_point_map 2017-10-09 11:26:34 +02:00
Jane Tournois f6418c6145 add a little verbosity 2017-10-09 11:22:54 +02:00
Laurent Rineau 7e9f756935 Replace all std::unary_function by CGAL::unary_function 2017-10-04 15:57:09 +02:00
Sébastien Loriot e9cb74d927 remove doc of parameter removed 2017-10-03 14:00:50 +02:00
Sébastien Loriot 26c1543d14 remove the requirements on the absence of degenerate edges
it is no longer needed thanks to the union-find used to merge vertices
2017-10-03 13:58:12 +02:00
Sébastien Loriot 7fdf9cad8c integrate the are_vertices_stitchable test into the check for non-manifold edges
also reinit the union-find on vertices as the master vertex kept
might be one marked as non-stitchable
2017-10-03 13:41:58 +02:00
Sébastien Loriot d23b301cea filter edges to be stitched to avoid creating non-manifold vertices
edges filtered have two endpoints to be merged
2017-10-02 16:20:05 +02:00
Sébastien Loriot 07bb1d6839 use union-find to merge vertices and decide which vertex to keep
This is needed if two patches have edges stitched with identical
vertex point coordinates.
2017-09-29 17:51:58 +02:00
Sébastien Loriot 67791520a1 ignore degenerate edges during the collection of edges to stitch 2017-09-29 16:39:34 +02:00
Sébastien Loriot 671b7abcb6 do nothing is the model is fixed 2017-09-20 14:33:37 +02:00
Sébastien Loriot 78f3d1a38d extract the function removing faces and filling hole ...
... and use it to handle deg faces
2017-09-20 14:33:37 +02:00
Sébastien Loriot ea34f1b2dd remove assertions that are using Surface_mesh features 2017-09-20 14:33:37 +02:00
Sébastien Loriot 03cff151ba factorize the code 2017-09-20 14:33:36 +02:00
Sébastien Loriot 488858cacc add a check (not yet factorized) to prevent invalid removal of degenerate faces 2017-09-20 14:33:36 +02:00
Sébastien Loriot 0bc5e715e9 add more debug 2017-09-20 14:33:36 +02:00
Sébastien Loriot 90a4e2eefd add a condition to prevent a flip that is not possible 2017-09-20 14:33:36 +02:00
Sébastien Loriot 6e9cbde3b1 add a method to remove degree 3 vertices in caps degenerate triangles 2017-09-20 14:33:36 +02:00
Sébastien Loriot b347c88bc5 add some debug code 2017-09-20 14:33:36 +02:00
Sébastien Loriot 7dbbfc5647 add an option to control the merge of vertex points
this is conveniant if we do not want to modify the mesh
when the function is called
2017-09-20 14:33:35 +02:00
Sébastien Loriot f77baded9b add function to collect pairs of halfedges closed (up to epsilon) 2017-09-20 12:57:17 +02:00
Sébastien Loriot 18725e8841 rename internal function 2017-09-20 12:57:17 +02:00
Sébastien Loriot 4c496ffa83 remove the stitching modifier and use a function instead 2017-09-20 12:57:17 +02:00
Sébastien Loriot e392b79883 Merge remote-tracking branch 'cgal/releases/CGAL-4.11-branch' 2017-09-20 12:54:11 +02:00
Sébastien Loriot a7caa5c433 Merge remote-tracking branch 'cgal/releases/CGAL-4.10-branch' 2017-09-20 12:53:27 +02:00
Sébastien Loriot 47e20a4a15 add missing include directive 2017-09-20 12:52:35 +02:00
Laurent Rineau 9d013d2e59 Fix the default AABB tree in Side_of_triangle_mesh 2017-09-20 12:03:32 +02:00
Laurent Rineau 8f9ea82a14 Merge branch 'releases/CGAL-4.10-branch' into releases/CGAL-4.11-branch 2017-09-20 11:17:43 +02:00
Laurent Rineau 5b1828cda2 Merge pull request #2445 from sloriot/PMP-fix_is_stitchable
Fix stitchable conditions
2017-09-20 11:13:30 +02:00
Sébastien Loriot c84014992a fix the collection of edges to stitch
we ignore those incident to a degenerate edge on the border
2017-09-19 15:08:19 +02:00
Sébastien Loriot 4fd381128a fix stitchable test
we were skipping all border edges in the test which was
making it missing some non valid cases detected only
with this border edge (since the test is assymetric
as we consider the first halfedge only for the outer
loop)
2017-09-19 11:52:05 +02:00
Laurent Rineau 36fdb16370 Allow to customize the AABB tree of Side_of_triangle_mesh
This is a new optional fourth template parameter of
`Side_of_triangle_mesh`, that is left undocumented for the moment.
2017-09-18 14:56:56 +02:00
Laurent Rineau 037cba3fae Merge pull request #2336 from maxGimeno/Detect_features-GF
PMP: Detect features
2017-09-18 14:29:55 +02:00
Laurent Rineau cba3b1c20c Fix detection of border *edges* 2017-09-07 12:07:17 +02:00
Maxime Gimeno d5ea0b6cbc Fix warnings and copy PMaps in detect_features.h 2017-09-05 12:03:35 +02:00
Maxime Gimeno 5a9a0bc9fb Constify read only maps and modify doc accordingly 2017-08-29 12:16:14 +02:00
Andreas Fabri db67979b71 fix some \ref so that the links go to the package overview 2017-08-25 14:14:01 +01:00
Sebastien Loriot 97b8782a27 Merge branch 'master' into Detect_features-GF 2017-08-18 16:34:29 +02:00
Jane Tournois 126a85d863 use the fact that vertex_incident_pmap is an LValuePropertyMap
and add a missing 'const'
2017-08-18 16:14:22 +02:00
Jane Tournois 7408426fae rename variable to avoid compilation issues 2017-08-18 12:17:50 +02:00
Jane Tournois 3bc33e9458 improve indentation and layout 2017-08-18 12:14:32 +02:00
Jane Tournois e2e5b1ed05 edge_is_feature_map is not an optional parameter
see reviews in the small feature
2017-08-18 10:51:25 +02:00
Jane Tournois 2bc4d10463 use put instead of [] to fit every type of property map 2017-08-18 10:39:35 +02:00
Jane Tournois 2c0b185803 little cleaning 2017-08-17 17:32:35 +02:00
Jane Tournois 47fd45d4a8 fix conversion warning 2017-08-17 17:25:46 +02:00
Jane Tournois d5aa3db51d doc and indentation fixes 2017-08-17 17:24:05 +02:00
Jane Tournois 334d4a0c4f doc : replace "collects" with "marks" 2017-08-17 16:03:46 +02:00
Jane Tournois 0f974aa902 improve user manual 2017-08-17 15:50:00 +02:00
Jane Tournois 12011422f6 fix conversion warning 2017-08-17 15:43:02 +02:00
Jane Tournois 99aec9eda9 fix the definition of "sharp" 2017-08-17 15:42:11 +02:00
Jane Tournois d2cc5c0575 add typedefs 2017-08-17 15:22:08 +02:00
Jane Tournois 370d7bb591 tidy the example 2017-08-17 12:22:24 +02:00
Maxime Gimeno 848dea1d42 Fixes default VIP and VNFE 2017-08-11 17:28:06 +02:00
Maxime Gimeno 43ff0d092c Implementation review Jane and sebastien 2017-08-11 15:30:03 +02:00
Maxime Gimeno 080d3a0895 WIP Jane's review 2017-08-11 09:07:32 +02:00
Maxime Gimeno 723492def1 Use existing named_parameters and vertex_incident_patches becomes lvaluepmap, 2017-08-10 15:16:27 +02:00
Maxime Gimeno 1d497d09ff Fix warnings and error 2017-08-10 09:37:37 +02:00
Maxime Gimeno 9f16bafef3 Fix Warnings 2017-08-09 15:22:45 +02:00
Maxime Gimeno f670ffe4e2 detect_surface_patches uses connected_components 2017-08-09 10:24:48 +02:00
Maxime Gimeno 32999ddd78 New pass over doc, tests and examples 2017-08-07 14:50:23 +02:00
Maxime Gimeno 1fe1e21bb6 Replace maximum_surface_patch by first_index. 2017-08-07 13:32:02 +02:00
Maxime Gimeno 3f57e98386 Add license file 2017-08-07 12:20:50 +02:00
Maxime Gimeno 1bad0e7202 Use edges instead of halfedges for edge_is_feature_t and map 2017-08-07 11:39:07 +02:00
Maxime Gimeno 222f7f3965 Add an example and a test for detect_features 2017-08-04 15:32:16 +02:00
Maxime Gimeno d588c55bbb Make functions free functions and wright doc 2017-08-04 15:06:41 +02:00
Sébastien Loriot 4d3be80122 fix wording 2017-08-03 13:59:44 +02:00
Maxime Gimeno 95dfae314b Rename file 2017-08-02 16:26:53 +02:00
Maxime Gimeno 2f45a46f7c Fix and enhance detect_feature 2017-08-02 16:08:33 +02:00
Maxime Gimeno d4e7b9f622 Fix fwd and plugin 2017-08-02 14:49:18 +02:00
Laurent Rineau f8760d591b Merge pull request #2136 from afabri/Polygon_mesh_processing-accelerate_isotropic_remeshing-GF
Polygon_mesh_processing: Accelerate Isotropic_remeshing
2017-07-21 10:45:32 +02:00
Andreas Fabri cb70bee37c Polygon_mesh_processing: fix doc
`PolygonMesh` -> `TriangleMesh`
2017-07-20 15:00:49 +02:00
Laurent Rineau 1d4d0dcec0 Merge pull request #2153 from janetournois/PMP-add_random_perturbation-jtournois
PMP - add random perturbation for triangle meshes
2017-07-17 12:43:58 +02:00
Laurent Rineau c53c3f9abd Shorten the lines with a typedef 2017-07-12 15:26:09 +02:00
Laurent Rineau d30a20d323 Fix a compilation error
remesh.h must be included after the headers that include the properties
for the face graphs.
2017-07-12 15:26:08 +02:00
Laurent Rineau 78c37a578d Fix indentation 2017-07-12 15:26:08 +02:00
Andreas Fabri 70b13af39c Do not pollute the boost namespace 2017-07-12 12:11:34 +02:00
Andreas Fabri 3ff34b4b23 cleanup 2017-07-11 20:32:23 +02:00
Andreas Fabri 886bd840cf Make the dynamic property map an implementation detail 2017-07-11 20:32:23 +02:00
Andreas Fabri 24012f3fd7 Fix testsuite for isotropic remeshing of an OpenMesh - it now works 2017-07-11 20:32:23 +02:00
Jane Tournois c019f0a341 make target_edge_length bigger
when do_protect is set to true, target_edge_length cannot be too small
or it would prevent from terminating
2017-07-11 20:32:23 +02:00
Andreas Fabri d291f572cb Add a testcase for isotropic remeshing of Polyhedron and OpenMesh 2017-07-11 20:32:23 +02:00
Andreas Fabri 5ba2161d21 Make isotropic remeshing compile with OpenMesh 2017-07-11 20:32:22 +02:00
Andreas Fabri c35a018135 Move add and remove of property maps in namespace internal (realizing that it is wrong to claim that it works for any FaceGraph 2017-07-11 20:31:34 +02:00
Laurent Rineau a4a30648f7 Fix warnings 2017-07-11 20:31:34 +02:00
Jane Tournois 860cf84b9f fix the own_tree logic, that is not valid anymore
the question is to know whether the vector<AABB_tree*> is built
or not
2017-07-11 20:31:34 +02:00
Jane Tournois 63c3881bc4 comments cleaning 2017-07-11 20:31:34 +02:00
Jane Tournois 0185563131 remove default constructor for Connected_components_pmap
keep only one constructor, and compute the connected components
only conditionally when they are needed
2017-07-11 20:31:34 +02:00
Jane Tournois 7f9abe0eb2 remove outdated comment 2017-07-11 20:31:33 +02:00
Jane Tournois 108a8ecbbe fix the use of Connected_components_pmap
when one is given by the user, we don't want to remove it
when we compute one on-the-fly, we do

also fix the debug code accordingly
2017-07-11 20:31:33 +02:00
Jane Tournois 44c6114b2c use the new dynamic property map system for the halfedge_status_pmap 2017-07-11 20:31:33 +02:00
Jane Tournois 2e1b752aae use the new dynamic property map system for the face_patch_map 2017-07-11 20:31:33 +02:00
Andreas Fabri 2bfd037c2d Add keyword template 2017-07-11 20:31:31 +02:00
Jane Tournois 2213628c49 first attempt to remove SM_HALFEDGE_STATUS_PMAP
there is some cleaning left to do,
including the dealing with remove_property_map
2017-07-11 20:31:31 +02:00
Jane Tournois 07cb8df9d0 cleaning 2017-07-11 20:31:31 +02:00
Jane Tournois 436c5ce213 remove output to a file to save time in the testsuite 2017-07-11 20:31:31 +02:00
Jane Tournois 63588be9d2 cleaning of example 2017-07-11 20:31:31 +02:00
Andreas Fabri 1b41423bf1 fix variable name 2017-07-11 20:31:31 +02:00
Andreas Fabri 3aff30811f remove redefining typedef 2017-07-11 20:31:31 +02:00
Andreas Fabri 0e8397ed8e Add typename 2017-07-11 20:31:30 +02:00
Andreas Fabri 704b8c8c2d If there is only 1 connected component there is no corner 2017-07-11 20:31:30 +02:00
Andreas Fabri 7a5f38c77b bug fix for 3220c14 2017-07-11 20:31:30 +02:00
Andreas Fabri 72de5a4de3 Reserve to avoid reallocation 2017-07-11 20:31:30 +02:00
Andreas Fabri db1a11b5c9 Reserve to avoid reallocation 2017-07-11 20:31:29 +02:00
Andreas Fabri ecaad9a83f If there is only 1 connected component a vertex IS on the patch 2017-07-11 20:31:29 +02:00
Andreas Fabri 4e76d5619c If there is only 1 connected component, we don't need a map to look up the same value 2017-07-11 20:31:29 +02:00
Andreas Fabri 2ce105f516 BUG FIX: In a previous commit a line got lost 2017-07-11 20:31:29 +02:00
Andreas Fabri 8cc58040fc fix typo. Note also that in a previous fix I accidentally added code for the Surface_mesh::Property_map 2017-07-11 20:31:29 +02:00
Andreas Fabri 9a7ddead28 no need to find() 2017-07-11 20:31:29 +02:00
Andreas Fabri 86964336ad make a cheap test first 2017-07-11 20:31:29 +02:00
Andreas Fabri 5acfe4520e No need to circulate around vertices if we have a mesh without border and without constraints 2017-07-11 20:31:29 +02:00
Andreas Fabri 8af5dfb077 Hopefully less is_collapse_allowed() tests 2017-07-11 20:31:29 +02:00
Andreas Fabri 845e319851 join ranges instead of copying them into a single std::vector 2017-07-11 20:31:28 +02:00
Andreas Fabri a8152a5bda Don't construct a triangle 2017-07-11 20:31:28 +02:00