Sébastien Loriot
f972d0a228
init edge map for is_polygon_mesh_a_polygon_soup
2019-04-05 11:40:47 +02:00
Sébastien Loriot
49f1d2ba1b
replace the edge map by a vector of flat_map
...
it is very efficient since there should not be isolated vertices.
On large data, the runtime of the function is divided by 3 to 4
2019-04-05 11:12:01 +02:00
Sébastien Loriot
9c39f2260f
add calls to reserve before creating meshes
2019-04-02 21:54:30 +02:00
Sébastien Loriot
1c119aec44
replace cpp11::unordered_FOO by std::unordered_FOO
2019-03-29 13:28:33 +01:00
Sébastien Loriot
124012d9f9
replace cpp11::array by std::array
2019-03-29 13:28:33 +01:00
Sébastien Loriot
f62624c4f9
replace cpp11::tuple by std::tuple
2019-03-29 13:28:33 +01: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
d60f5645aa
replace BOOST_FOREACH by c++ ranged-based for loop
...
some of the command used for the replacement:
ack --cpp BOOST_FOREACH -l | xargs sed -i -E "s/BOOST_FOREACH\(([a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack --cpp BOOST_FOREACH -l | xargs sed -i -E "s/BOOST_FOREACH\((const [a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack --cpp BOOST_FOREACH -l | xargs sed -i -E "s/BOOST_FOREACH\((const typename [a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack --cpp BOOST_FOREACH -l | xargs sed -i -E "s/BOOST_FOREACH\((typename [<>a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack "boost/foreach.hpp" -l --cpp | xargs sed -i '/boost\/foreach.hpp>/d'
2019-03-29 13:22:15 +01:00
Laurent Rineau
14e93b7fe2
Merge pull request #3794 from maxGimeno/Demo-Fix_off_reading-GF
...
PMP: Fix in normalize()
2019-03-26 17:01:53 +01:00
Laurent Rineau
4ec173c0e7
Merge pull request #3793 from maxGimeno/Fixes_for_warnings-GF
...
Fixes for warnings
2019-03-26 16:43:56 +01:00
Maxime Gimeno
a508397a58
Don't use ternary operator
2019-03-25 16:06:20 +01:00
Maxime Gimeno
24d5971372
Test that norm != 0 in normalize()
2019-03-25 15:44:20 +01:00
Andreas Fabri
a98eb443ea
Changes after Sebastien's review
2019-03-25 14:32:34 +01:00
Sebastien Loriot
225fdeac04
Update Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
...
Co-Authored-By: afabri <andreas.fabri@geometryfactory.com>
2019-03-25 14:09:42 +01:00
Sebastien Loriot
15e87ed141
Update Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
...
Co-Authored-By: afabri <andreas.fabri@geometryfactory.com>
2019-03-25 14:09:31 +01:00
Sebastien Loriot
1fb5670bbd
Update Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
...
Co-Authored-By: afabri <andreas.fabri@geometryfactory.com>
2019-03-25 14:09:15 +01:00
Sebastien Loriot
544a23aeb3
Update Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
...
Co-Authored-By: afabri <andreas.fabri@geometryfactory.com>
2019-03-25 14:08:59 +01:00
Sebastien Loriot
31a1e80c07
Update Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
...
Co-Authored-By: afabri <andreas.fabri@geometryfactory.com>
2019-03-25 14:08:48 +01:00
Sebastien Loriot
69061e3c72
Update Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
...
Co-Authored-By: afabri <andreas.fabri@geometryfactory.com>
2019-03-25 14:08:15 +01:00
Sebastien Loriot
43c29bdb17
Update Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
...
Co-Authored-By: afabri <andreas.fabri@geometryfactory.com>
2019-03-25 14:08:05 +01:00
Laurent Rineau
1014687627
Merge pull request #3775 from MaelRL/Doc_fixes-GF
...
Doc fixes
2019-03-25 12:24:49 +01:00
Maxime Gimeno
801eb23ca3
Fix uninit warning in PMP
2019-03-25 12:09:04 +01:00
Andreas Fabri
92abe26251
cleanup
2019-03-22 11:51:59 +01:00
Andreas Fabri
67774ef07b
clean up
2019-03-21 17:20:46 +01:00
Andreas Fabri
33a92901c9
Fix @returns and PackageDescription
2019-03-21 14:05:54 +01:00
Andreas Fabri
e758a7ddb0
Correct implementation of centroid of surface mesh
2019-03-21 13:36:30 +01:00
Andreas Fabri
67a4448549
Add result_type
2019-03-21 13:36:30 +01:00
Andreas Fabri
742badf289
Add centroid of a closed triangle mesh
2019-03-21 13:24:20 +01:00
Laurent Rineau
2863e74fb5
Merge pull request #3735 from janetournois/PMP-fix_isotropic_remeshing_with_tiny_constraints-jtournois
...
PMP : fix isotropic remeshing surviving tiny constraints
2019-03-19 18:30:57 +01:00
Mael Rouxel-Labbé
a990164993
Fixed missing backtick
2019-03-15 20:50:24 +01:00
Mael Rouxel-Labbé
6f13a63978
Rephrase intersection doc for clarity
2019-03-15 20:24:50 +01:00
Jane Tournois
d137b20acd
add checking if (s, p, q) is degenerate
2019-03-12 14:04:36 +01:00
Jane Tournois
0de369dd02
add debug code
2019-03-12 12:17:11 +01:00
Jane Tournois
c64bfb8e86
do not construct normals to make the test
2019-03-11 15:18:01 +01:00
Jane Tournois
9cbb6f3785
test inversion only on faces that really need to be tested
...
and rename function collapse_does_not_invert_face(he) to
collapse_would_invert_face(he) for clarity
2019-03-08 16:22:17 +00:00
Jane Tournois
6f12a4ab6f
fix the test ``collapse_does_not_invert_face()`
...
Testing orientation of normals per patch (identified by their Id) is not a
good solution, because it can happen that we are trying to collapse an edge
that is sharp but which has both of its incident faces on the same surface
patch (wrt ids).
The new test is a lot simpler : for each non-degenerate face of the link of
the edge to be collapsed, simply check if its own normal has changed
orientation or not. The adjacent faces do not need to be taken into account
2019-03-08 16:19:31 +00:00
Jane Tournois
664de7e32e
use the new API of `PMP::remove_degenerate_faces()`
...
If there is no degenerate faces to deal with, i.e. if the function
has nothing to do, it now returns `true`, and not `0` anymore.
This change was introduced by commit e4ad5d96a7
2019-03-07 11:22:41 +01:00
Laurent Rineau
9f9ae00369
Merge remote-tracking branch 'cgal/releases/CGAL-4.13-branch'
2019-02-22 16:39:48 +01:00
Mael Rouxel-Labbé
c3ace2b72c
Fixed VPM / Geom traits not propertly passed / used in triangulate_faces
2019-02-21 14:44:16 +01:00
Laurent Rineau
fdd8357915
Merge pull request #3580 from afabri/Stream_support-Color-GF
...
Fix warnings (Add/remove copy constructors, and other warnings)
Co-authored-by: Laurent Rineau <laurent.rineau@cgal.org>
Co-authored-by: Mael <mael.rouxel.labbe@geometryfactory.com>
Co-authored-by: Maxime GIMENO <maxime.gimeno@gmail.com>
2019-02-13 15:25:07 +00:00
Mael Rouxel-Labbé
f1837f2967
Updated documentation with new behavior
2019-02-08 13:37:14 +01:00
Mael Rouxel-Labbé
e7ed57d2b5
Added tests for non conformal snapping
2019-02-08 13:02:05 +01:00
Mael Rouxel-Labbé
a843d5e249
Fixed output to work with surface meshes other than CGAL::Surface_mesh
2019-02-08 11:12:45 +01:00
Sébastien Loriot
7db3d2604b
use only initialized values
2019-02-08 11:05:12 +01:00
Mael Rouxel-Labbé
05c03b5f40
Renamed debug macro
2019-02-08 10:10:01 +01:00
Laurent Rineau
8d12ec9b9c
Merge pull request #3637 from sloriot/PMP-doc_bug_fix
...
fix wrong ref
2019-02-07 13:31:07 +01:00
Sébastien Loriot
6c6244d9b8
Merge pull request #3516 from maxGimeno/Demo-fixes-GF
...
Polyhedron Demo: Fixes.
2019-01-31 11:41:58 +01:00
Sébastien Loriot
02de899d26
fix wrong ref
2019-01-28 15:17:58 +01:00
Laurent Rineau
afc3de2894
Merge branch 'master' into Stream_support-Color-GF
2019-01-23 09:37:08 +01:00
Laurent Rineau
1ca9dbc514
Merge pull request #3596 from maxGimeno/PMP-Make_do_intersect_faster-GF
...
PMP:: speed up PMP::do_intersect()
Co-authored-by: Sebastien Loriot <sebastien.loriot@cgal.org>
2019-01-22 10:49:59 +01:00
Laurent Rineau
28e520b121
Merge pull request #3594 from sloriot/PMP-remove_null_edges_on_border
...
Null edges removal fix on the border
2019-01-22 09:15:08 +01:00
Laurent Rineau
6ffd76a87e
Merge pull request #2792 from afabri/Intersections_3-Add_missing_do_intersect-GF
...
Intersections_3: Add missing do_intersect() overloads
2019-01-18 16:37:54 +01:00
Andreas Fabri
6596ba981c
Polygon, Surface_mesher, Nef,..
2019-01-17 19:35:02 +01:00
Sébastien Loriot
4e308223ad
handle non-manifold vertices in a selection + duplicate them prior if allowed
2019-01-17 18:06:25 +01:00
Sébastien Loriot
651c31a179
in case there is a non-manifold vertex, we cannot update the selection
2019-01-17 13:48:30 +01:00
Sébastien Loriot
99bd8c7172
handle non monotonic border while removing a zone of degenerate faces
2019-01-16 18:15:51 +01:00
Sébastien Loriot
ef5fe7ffac
handle polygon attached by non-manifold vertices
2019-01-16 15:26:06 +01:00
Maxime Gimeno
7a7098d009
Fix doc
2019-01-16 11:23:30 +01:00
Sébastien Loriot
e0184766d2
ignore topological issues instead of crashing
2019-01-16 10:13:16 +01:00
Sébastien Loriot
785d0deb46
add missing return
2019-01-16 10:11:43 +01:00
Maxime Gimeno
b939551b38
Don't hardcode vector but use a random access container in polygon_soup_to_polygon_mesh.
2019-01-15 12:17:49 +01:00
Sébastien Loriot
656a5a316a
fix compilation error + indent + simplify
2019-01-14 17:45:09 +01:00
Sébastien Loriot
3edad4c820
do not use what you deleted
2019-01-14 17:34:43 +01:00
Maxime Gimeno
8ab7e69a5c
Test global bbox intersection before creating all bboxes.
2019-01-14 16:03:23 +01:00
Maxime Gimeno
79199281e6
Merge remote-tracking branch 'cgal/master' into Demo-fixes-GF
2019-01-14 09:52:13 +01:00
Sébastien Loriot
68f6a77d63
use dedicated code for removing null border edges + fix that code
2019-01-14 09:12:54 +01:00
Sébastien Loriot
551be55235
Merge remote-tracking branch 'cgal/releases/CGAL-4.13-branch'
2018-12-31 10:29:57 +01:00
Sébastien Loriot
1be277202b
Merge remote-tracking branch 'cgal/releases/CGAL-4.12-branch' into HEAD
2018-12-31 10:29:19 +01:00
Sebastien Loriot
e828d7a29d
Merge pull request #3558 from sloriot/PMP-bbox_empty_meshZ
...
Handle empty meshes
2018-12-31 10:22:42 +01:00
Sébastien Loriot
fe5c3a77f9
swap the edge too
2018-12-21 09:51:58 +01:00
Laurent Rineau
698c13d973
Merge pull request #3500 from sloriot/PMP-stitching_nm_bug-4.13
...
Fix for stitching (4.13 and master)
2018-12-19 16:12:01 +01:00
Laurent Rineau
2583258973
Merge pull request #3530 from sloriot/PMP-coref_empty_meshes-4.13
...
Handle case of empty meshes (4.13+)
2018-12-19 16:06:58 +01:00
Sébastien Loriot
0f0f03e08b
handle empty meshes
2018-12-19 16:05:08 +01:00
Laurent Rineau
a82bb996ae
Merge pull request #3500 from sloriot/PMP-stitching_nm_bug-4.13
...
Fix for stitching (4.13 and master)
2018-12-19 16:00:24 +01:00
Laurent Rineau
b53a562e89
Merge pull request #3499 from sloriot/PMP-stitching_nm_bug
...
Fix for stitching (4.12)
2018-12-19 15:44:45 +01:00
Mael Rouxel-Labbé
db819df72c
Improved robustness of non-conformal snapping
2018-12-18 12:25:27 +01:00
Maxime Gimeno
ca4a568fa7
Fix Remove Degenerated Faces
2018-12-11 16:16:50 +01:00
Sébastien Loriot
fa52560c62
handle case of empty meshes
2018-12-11 07:02:06 +01:00
Sébastien Loriot
8da9e7ceec
handle case of empty meshes
2018-12-11 06:44:27 +01:00
Laurent Rineau
8070b01a22
Merge pull request #3472 from sloriot/PMP-fix_clip_on_border
...
Fix clipping on border edges
2018-12-10 14:38:26 +01:00
Sébastien Loriot
3069612c37
two halfedges with the same target and source points are non-manifold
...
similar as 44addb1 from 4.12-branch
2018-11-30 10:01:01 +01:00
Sébastien Loriot
44addb1f83
two halfedges with the same target and source points are non-manifold
2018-11-30 09:56:33 +01:00
Sébastien Loriot
ae9659539e
simplify type
2018-11-22 16:58:13 +01:00
Sébastien Loriot
78e375f15c
add a special handling for degenerate faces on the border
2018-11-22 16:14:18 +01:00
Sébastien Loriot
293f54dc25
no need to consider polylines to skip
...
they are not really used in remove_used_polylines
and a polyline might be written as to skip while
only a portion is (if the dangling part is the
one edge per polyline)
2018-11-22 14:08:20 +01:00
Sébastien Loriot
f070af9a70
workaround when interseciont polyline goes to the border
2018-11-22 13:38:31 +01:00
Sébastien Loriot
0ecbdbea4b
handle case when clipping plane hit an extended bbox corner
2018-11-20 13:10:14 +01:00
Sébastien Loriot
7d19fe6940
be more robust in case of tangency
2018-11-20 10:50:32 +01:00
Sébastien Loriot
0c33bf461f
register vertex -> node_id upon creation
...
The former method relied on intersection edges
which did not have isolated vertices
2018-11-20 10:41:37 +01:00
Sébastien Loriot
6f5ba0ddfa
handle clipping with clipper on border edge
2018-11-19 14:26:05 +01:00
Mael
49033c14ad
Merge branch 'master' into PMP-Snap_boundary-GF
2018-11-13 22:38:58 +01:00
Sébastien Loriot
54381db68a
fix -Wmaybe-uninitialized warnings
2018-11-12 19:27:53 +01:00
Sébastien Loriot
018652517b
Merge remote-tracking branch 'cgal/releases/CGAL-4.13-branch'
2018-11-12 10:08:29 +01:00
Sébastien Loriot
089377d238
Merge remote-tracking branch 'cgal/releases/CGAL-4.12-branch' into HEAD
2018-11-12 10:07:27 +01:00
Sébastien Loriot
65f386b7a3
use the vertex point map provided and not the default one
2018-11-08 14:23:28 +01:00
Sébastien Loriot
3e46680513
use the true name parameter type
2018-11-08 14:22:59 +01:00
Sébastien Loriot
a51a153c31
fix when bbox has a 0-width + update testsuite
2018-11-06 10:56:04 +01:00
Sébastien Loriot
8a27676102
handle case of a non closed intersection polyline
2018-11-06 10:27:30 +01:00
Sébastien Loriot
6b8a36ba0c
update clipping code for surface case and use Face_graph_output_builder
...
This fixes a bug when a patch with no input vertex must be
classified wrt the clipper
2018-11-05 16:26:33 +01:00
Sébastien Loriot
0685423ae8
update from cgal/master
2018-11-02 11:32:31 +01:00
Sébastien Loriot
d940632471
Merge pull request #3258 from MaelRL/PMP-Filter_degenerate_polygon_soup_input-GF
...
PMP: repair polygon soup
2018-11-02 10:37:58 +01:00
Sébastien Loriot
a7f08e5172
Merge remote-tracking branch 'cgal/releases/CGAL-4.13-branch'
2018-10-30 16:06:22 +01:00
Sébastien Loriot
9eb521d4d7
Merge pull request #3429 from sloriot/PMP-remove_deg_edges_iterative
...
Make the degenerate edge removal an iterative process
2018-10-30 15:59:47 +01:00
Sébastien Loriot
cdbe19b480
Merge pull request #3369 from maxGimeno/AABB_tree-AABB_transformed_traits-GF
...
[Small Feature] Add collision detection in PMP
2018-10-30 15:49:38 +01:00
Sébastien Loriot
3be4dd02f5
make the edge removal an iterative process
...
an edge impossible to remove might be removable
following some degenerate edges removal
2018-10-29 17:39:48 +01:00
Sébastien Loriot
5dad6f0c71
take into account clipper orientation to clip open meshes
2018-10-29 15:04:06 +01:00
Laurent Rineau
d9851eaebe
Merge pull request #3407 from MaelRL/PMP-Fix_do_intersect_look_up_error
...
PMP: Fix look-up error
2018-10-29 10:42:35 +01:00
Laurent Rineau
821f9c015e
Merge pull request #3311 from sloriot/Doc-Pkg_link_name
...
Update the name of package names reference links
2018-10-29 10:27:53 +01:00
Laurent Rineau
e54ae0ac83
Merge pull request #3262 from MaelRL/PMP-stitch_closed_cycles-GF
...
PMP: stitch boundary cycles
2018-10-29 10:27:43 +01:00
Laurent Rineau
c7592752bf
Merge pull request #3407 from MaelRL/PMP-Fix_do_intersect_look_up_error
...
PMP: Fix look-up error
2018-10-29 10:27:39 +01:00
Laurent Rineau
e54b036516
Merge pull request #3379 from lrineau/Mesh_3-fix_Index-GF
...
Mesh_3: Allow `Subdomain_index` to be `short`
2018-10-29 10:27:33 +01:00
Sébastien Loriot
10fd5a6e0c
clear points per cc after removal + avoid useless resize
2018-10-26 09:46:01 +02:00
Sébastien Loriot
80643061af
add missing call to build+fix to use the right traits
2018-10-25 13:45:57 +02:00
Mael Rouxel-Labbé
9db614a968
First draft of non-conforming stitching
2018-10-23 10:28:39 +02:00
Mael Rouxel-Labbé
5ab34f4c8c
Specified namespace to avoid look-up errors
2018-10-16 08:43:10 +02:00
Sébastien Loriot
4294b71dfb
add missing convenience function
2018-10-15 17:21:47 +02:00
Sébastien Loriot
a1bcbd4beb
add missing include directive
2018-10-11 15:15:12 +02:00
Mael Rouxel-Labbé
4ed5958538
Merge branch 'PMP-stitch_closed_cycles-GF-old' into PMP-stitch_closed_cycles-GF
2018-10-11 09:38:41 +02:00
Sébastien Loriot
71175e13bd
naming convention
2018-10-09 10:29:20 +02:00
Sébastien Loriot
2c8b44e144
update doc after review
2018-10-09 10:29:20 +02:00
Sébastien Loriot
5154022dc0
simply API and update doc
2018-10-09 10:29:20 +02:00
Sébastien Loriot
fcc99af1eb
fix typo and clean-up
2018-10-09 10:28:45 +02:00
Sébastien Loriot
e868d87507
remove_mesh no longer invalidate mesh ids
2018-10-09 10:28:45 +02:00
Sébastien Loriot
241d088b5a
update after review of @maxGimeno
2018-10-09 10:28:45 +02:00
Sébastien Loriot
c3943386bc
rename main class
2018-10-09 10:28:45 +02:00
Sébastien Loriot
51cb7410e2
add document and clean-up API
2018-10-09 10:28:45 +02:00
Sébastien Loriot
d41a931e11
readd destructor removed by error
2018-10-09 10:28:45 +02:00
Sébastien Loriot
f6d14a78b3
get rid of thread safety issue by copying the traversal traits
2018-10-09 10:28:45 +02:00
Sébastien Loriot
649c75c272
factorise intersection code + fix constness
2018-10-09 10:28:45 +02:00
Sébastien Loriot
74c8eaec29
use named parameters
...
I removed the constructor from a range of meshes as it is complicated to
specify a range of vertex point map.
2018-10-09 10:28:44 +02:00
Sébastien Loriot
a2491fe07c
really use one point per CC
2018-10-09 10:28:44 +02:00
Sébastien Loriot
2b350e71e1
use vpm
2018-10-09 10:28:44 +02:00
Sébastien Loriot
f8722ef3be
update implementation of get_all_intersections to use the traversal traits
2018-10-09 10:28:44 +02:00
Sébastien Loriot
d206112f01
add vertex point map as parameter
2018-10-09 10:28:44 +02:00
Sébastien Loriot
a1ea22b27e
rename macro
2018-10-09 10:28:44 +02:00
Sébastien Loriot
ab4759a5f2
add AABB-tree as a template parameter
2018-10-09 10:28:44 +02:00
Sébastien Loriot
5af3523420
add the possibility to use an existing AABB-tree
2018-10-09 10:28:44 +02:00
Sébastien Loriot
84e2d4a97b
rename header
2018-10-09 10:28:44 +02:00
Sébastien Loriot
df15af614d
use a traversal traits instead of a pseudo model of AABBTraits
2018-10-09 10:28:44 +02:00
Sébastien Loriot
d7e7c74782
fix inclusion test
2018-10-09 10:28:44 +02:00
Sébastien Loriot
773413985a
handle meshes with several CC for inclusion
2018-10-09 10:28:44 +02:00
Sébastien Loriot
7f65916f54
add the possibility to specify with which models to do the intersection test
2018-10-09 10:28:44 +02:00
Sébastien Loriot
af39d7f2d2
delete the tree when removing a mesh
2018-10-09 10:28:44 +02:00
Sébastien Loriot
5f50f5d7e9
add protector and API without deformation
...
I added a bitset to avoid changing the rounding-mode too often
2018-10-09 10:28:44 +02:00
Sébastien Loriot
beaded520d
add missing protectors and clean-up
2018-10-09 10:28:43 +02:00
Maxime Gimeno
939e14561f
clean-up
2018-10-09 10:28:43 +02:00
Maxime Gimeno
7a3c441489
Fix plugin and WIP make precompute boxes
2018-10-09 10:28:43 +02:00
Maxime Gimeno
2013885eb4
WIP fix plugin
2018-10-09 10:28:43 +02:00
Maxime Gimeno
19f11b861a
WIP use box_intersection_d
2018-10-09 10:28:43 +02:00
Sébastien Loriot
aff9f5be40
simplify
2018-10-09 10:28:43 +02:00