Laurent Rineau
c63a7c77e5
Merge pull request #3214 from sloriot/PMP-autorefine_identical_points
...
Make sure identical vertices have identical coordinates in autorefinement
2018-07-12 11:32:49 +02:00
Laurent Rineau
72f0c4af95
Fix the obvious bug
2018-07-10 13:47:40 +00:00
Sébastien Loriot
1d923e2253
register all vertices for autorefinement
...
this is useful to guarantee that the final floating point coordinates
are identical
2018-07-09 16:41:46 +02:00
Sébastien Loriot
ba8356c0a5
do not delete twice a vertex in case it was already updated
2018-07-09 11:22:19 +02:00
Mael
74e569db86
Merge branch 'master' into Periodic_3_mesh_3-Feature-MBogdanov
2018-07-04 16:55:30 +02:00
Laurent Rineau
20959db103
Merge pull request #3062 from maxGimeno/BGL-Copy_face_graph_use_np-GF
...
BGL: copy_face_graph() with NamedParameters
2018-07-04 16:49:54 +02:00
Laurent Rineau
a2c30daa17
Merge pull request #3106 from maxGimeno/PMP-Extrude-GF
...
PMP: extrude_mesh()
2018-07-04 16:49:48 +02:00
Sébastien Loriot
aed0cb1834
remove extra comma
2018-07-03 15:47:35 +02:00
Konstantinos Katrioplas
b51fa000a4
documentation on merge border vertices functions
2018-07-03 15:39:26 +02:00
Sébastien Loriot
ee3636d57e
directly sort halfedges and use the ordering to detect illegal merges
...
a merge is considered as illegal if it makes to vertices
to be merged unreachable. For now if a cycle contain an illegal
merge, all merges of the cycle are ignored.
2018-07-03 15:38:58 +02:00
Sébastien Loriot
99db9a0aaf
WIP correctly linking halfedges around merged vertices ...
...
also disable the merge between cycles as it is not straight forward
it will be always possible
2018-07-03 15:38:58 +02:00
Konstantinos Katrioplas
032ee2828a
named parameters for duplicate non-manifold vertices
2018-07-03 15:38:57 +02:00
Konstantinos Katrioplas
c6afed86a3
use cosine for threshold on needles and caps
2018-07-03 15:37:20 +02:00
Konstantinos Katrioplas
71041e0376
replace is_degenerate_triangle_face predicate with new version from PMP helpers
2018-07-03 15:37:20 +02:00
Konstantinos Katrioplas
63f49b7fcc
move predicates to helper.h and seperate test file
2018-07-03 15:37:20 +02:00
Konstantinos Katrioplas
903df8106a
corrections after the review
2018-07-03 15:37:20 +02:00
Sébastien Loriot
e6ffc5f505
remove incorrect optimisation
2018-07-03 15:37:16 +02:00
Sébastien Loriot
fe407a701f
add a function to merge vertices globally
2018-07-03 15:37:16 +02:00
Sébastien Loriot
0830c7a112
add missing overload
2018-07-03 15:37:16 +02:00
Sébastien Loriot
e1f0740b53
rename header and test file
2018-07-03 15:37:16 +02:00
Sébastien Loriot
af65760475
rewrite boundary cycle merging
2018-07-03 15:37:16 +02:00
Konstantinos Katrioplas
c79add2c6a
merge vertices, tests & data
2018-07-03 15:37:16 +02:00
Konstantinos Katrioplas
1f0628fad2
is needle andcap functions
2018-07-03 15:36:50 +02:00
Konstantinos Katrioplas
c3e7f6d94b
is_non_manifold_vertex function
2018-07-03 15:36:50 +02:00
Konstantinos Katrioplas
9f315abad6
duplicate_vertices function doc
2018-07-03 15:36:50 +02:00
Konstantinos Katrioplas
8e285cb1a7
is_degenerate_triangle_face function
2018-07-03 15:36:50 +02:00
Konstantinos Katrioplas
0db8941e0a
is_degenerate_edge function
2018-07-03 15:36:50 +02:00
Maxime Gimeno
a584af827b
Fix Conflicts
2018-06-29 18:21:24 +02:00
Mael Rouxel-Labbé
fd076c3c6d
Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov
2018-06-28 16:25:54 +02:00
Laurent Rineau
2d9000efde
Merge pull request #3111 from sloriot/PMP-coref_preserve_face_attributes
...
Add a visitor to track the creation of faces in corefinement functions
2018-06-28 16:09:37 +02:00
Sébastien Loriot
1d59e0a350
add missing include directives
2018-06-27 17:07:13 +02:00
Sébastien Loriot
af8395585e
use const functors
2018-06-27 17:02:42 +02:00
Laurent Rineau
10a84aa34e
Merge branch 'master' into Periodic_3_mesh_3-Feature-MBogdanov
2018-06-27 10:33:24 +02:00
Sébastien Loriot
6d89662e2a
use need API + add missing overload
2018-06-26 00:17:30 +02:00
Maxime Gimeno
803e5e6717
add missing boost::
2018-06-22 10:32:23 +02:00
Laurent Rineau
b44ad18983
Merge branch 'master' into PMP-stitch_after_orient-GF
2018-06-21 12:31:26 +02:00
Sébastien Loriot
0abfba8ac0
Update branch 'PMP-coref_preserve_face_attributes' from master@5ceb529d0f
2018-06-21 10:53:59 +02:00
Mael Rouxel-Labbé
7490f34560
Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov
2018-06-21 10:15:25 +02:00
Laurent Rineau
b08fb6c4ed
Merge pull request #3069 from sloriot/PMP-isotropic_remeshing_user_projection
...
Fix constrained edge map update and add user projection functor as input
2018-06-20 17:21:10 +02:00
Maxime Gimeno
f7807b3d5c
fix warning
2018-06-20 10:23:44 +02:00
Maxime GIMENO
e54d577b59
Merge branch 'master' into PMP-Extrude-GF
2018-06-20 08:50:03 +02:00
Maxime Gimeno
c7a681f968
Fix doc
2018-06-20 08:45:51 +02:00
Sébastien Loriot
f7241be70a
fix test on the shortness of protect edges
...
since ecm was updated to only contain real constrained edges (and no additional
patch border edges), we use connected component patch map to identify them
2018-06-18 10:08:52 +02:00
Laurent Rineau
20ba8216b8
Merge pull request #3163 from sloriot/PMP-missing_transform_overload
...
Add missing overload for PMP::transform
2018-06-14 17:36:40 +02:00
Maxime Gimeno
1d4b1f9183
Merge master to solve conflicts
2018-06-13 09:48:07 +02:00
Mael Rouxel-Labbé
340e5d3b5a
Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov
2018-06-12 23:29:43 +02:00
Laurent Rineau
16c581fb4b
Merge pull request #3145 from afabri/PMP-should-GF
...
Polygon_mesh_processing: Change should to must/shall
2018-06-12 16:38:24 +02:00
Sébastien Loriot
8ccc2af157
add missing overload
2018-06-11 22:04:24 +02:00
Sébastien Loriot
895dbaad73
fix merge of status after the usage of ecm in collapse_edge
...
ep and epo are no longer guarantee to be the halfedges to be removed
2018-06-07 17:35:29 +02:00
Sébastien Loriot
117b1d810a
work around issue with boost::size in boost 1.55
...
improve at the same time the runtime in cases
we could also have a lazy version for non-random access iterators
2018-06-07 15:14:20 +02:00
Mael Rouxel-Labbé
ddeb4c0cd7
Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov
2018-06-07 15:14:19 +02:00
Sébastien Loriot
e1e1512869
Merge 'PMP-isotropic_remeshing_user_projection' into PMP-isotropic_remeshing_user_projection
2018-06-06 18:00:32 +02:00
Sébastien Loriot
6e1d9b2a3e
clip_volumes -> clip_volume
2018-06-06 13:30:36 +02:00
Sébastien Loriot
23a9ae9297
doc typos
2018-06-06 13:24:24 +02:00
Sébastien Loriot
02bcd2a618
merge vertex and face visitor and disable vertex for now
2018-06-06 12:04:30 +02:00
Sébastien Loriot
87b45e8afe
rename algorithm visitor
2018-06-06 10:27:52 +02:00
Sébastien Loriot
e26bee1a61
rename new_face_visitor -> visitor
2018-06-06 09:50:05 +02:00
Mael Rouxel-Labbé
7ea3a8044e
Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov
2018-06-05 14:39:18 +02:00
Sébastien Loriot
aed6f5805c
remove unused variable
2018-06-05 14:15:22 +02:00
Sébastien Loriot
c177cf884b
fix clip convenience overload
2018-06-05 14:09:32 +02:00
Sébastien Loriot
38c44cf11b
make sure face index maps are identical when clipping with a plane
2018-06-05 13:45:23 +02:00
Sébastien Loriot
2601581096
catches exceptions thrown by (co)refinement related plugins
2018-06-05 12:54:46 +02:00
Sébastien Loriot
8d6a992035
remove the use of the convex hull
2018-06-05 12:33:41 +02:00
Sébastien Loriot
3a625d1a28
more robust construction
2018-06-04 17:21:28 +02:00
Sébastien Loriot
6a6172eb0a
add a section in the user manual for clipping
2018-06-04 16:28:56 +02:00
Sébastien Loriot
aecefd2e6d
include_clipper_boundary -> use_compact_clipper
2018-06-04 15:20:31 +02:00
Sébastien Loriot
987d59ed67
fix doc typos
2018-06-04 14:28:43 +02:00
Sébastien Loriot
40269797ab
should -> must
2018-06-04 13:56:35 +02:00
Maxime GIMENO
0517c35f59
Merge branch 'master' into BGL-Copy_face_graph_use_np-GF
2018-06-04 11:58:43 +02:00
Andreas Fabri
c94b219491
typo
2018-06-04 09:40:35 +01:00
Sébastien Loriot
b2fcdf2c9d
remove polyhedron dependency
2018-06-04 10:29:20 +02:00
Andreas Fabri
2cd40ad42b
Change should to must/shall
2018-06-04 08:32:18 +01:00
Sébastien Loriot
2569c271e5
improve doc and plugin
2018-06-01 16:50:39 +02:00
Sébastien Loriot
b8f058e0d1
implement @MaelRL review
2018-06-01 16:09:22 +02:00
Sébastien Loriot
94a73232d5
document clip functions
2018-06-01 11:06:29 +02:00
Sébastien Loriot
1a5b2c78a5
update doc of face index map and qualify boost np functions
2018-06-01 11:00:13 +02:00
Sébastien Loriot
932a6c38b9
doc typos
2018-05-31 10:40:29 +02:00
Sébastien Loriot
899838478c
improve doc
2018-05-31 09:57:27 +02:00
Maxime Gimeno
1e20055dba
Move the strip creation into an internal function
2018-05-30 14:15:08 +02:00
Sébastien Loriot
cd1e5126e6
add missing convenience overloads
2018-05-30 10:50:52 +02:00
Maxime Gimeno
ee2f7b427a
Fix doc
2018-05-30 09:23:17 +02:00
Sébastien Loriot
ac566df9ba
use Boolean_property_map
2018-05-30 08:34:08 +02:00
Maxime Gimeno
881d518a24
Add an overload with only one NP
2018-05-29 17:34:07 +02:00
Maxime Gimeno
6dfefeb189
Rename generic_extrude_mesh into extrude_mesh and removes the distance of the original overload as it is useless
2018-05-29 16:42:16 +02:00
Sébastien Loriot
460f49d64f
move code to swap edges in a function
2018-05-29 15:59:55 +02:00
Maxime Gimeno
0b2436d062
Clean-up after review
2018-05-29 15:59:54 +02:00
Sébastien Loriot
b81453868b
fix the handling of constrained vertices
2018-05-29 15:59:54 +02:00
Sébastien Loriot
5738a11841
swap halfedges to guarantee that constrained halfedges are kept
...
this is only requires in case prev(opposite(he)) is constrained
since if there is a constrained vertex it is vb.
2018-05-29 15:59:54 +02:00
Sébastien Loriot
abe346f8d2
consider any vertex incident to a constrained as constrained
2018-05-29 15:59:54 +02:00
Sébastien Loriot
de3d654a72
simplify the code collapsing edges
...
handles corner and constrained vertices
2018-05-29 15:59:10 +02:00
Sébastien Loriot
53164edc5a
a vertex of degree less than 3 is on the boundary
...
collapsing an edge incident to it should be controlled only
by the constrained status of the vertices
2018-05-29 15:59:10 +02:00
Sébastien Loriot
d3caff29dc
fix indentation
2018-05-29 15:59:10 +02:00
Sébastien Loriot
34a66797b5
the corner status of a vertex is already taken into account in the code
...
it is meaningful for collapse and smooth that are using is_corner function
2018-05-29 15:59:10 +02:00
Maxime Gimeno
a779db591c
Make Isotropic_remeshing keep the constrained vertices when collapsing an edge.
2018-05-29 15:58:19 +02:00
Maxime Gimeno
7d3d4b27a6
Fix doc
2018-05-29 10:34:26 +02:00
Sébastien Loriot
37bd8c1d84
fix typos
2018-05-28 17:37:47 +02:00
Sébastien Loriot
f29d8339fa
document corefine_and_compute_boolean_operations()
2018-05-28 17:37:46 +02:00
Sébastien Loriot
67ec602795
remove a restriction on the output vpm
...
they no longer requires to be of the same type.
This is particularly important especially since we might
ignore some of them.
2018-05-28 17:37:17 +02:00
Sébastien Loriot
d3a9f655af
replace bool parameter throw_on_self_intersection with a named parameter
...
used it at the same time in Boolean operation functions
2018-05-28 17:37:17 +02:00
Sébastien Loriot
eea53718bb
renaming
2018-05-28 17:37:17 +02:00
Sébastien Loriot
3c382accca
document the default new face visitor
...
I have to move everything in the CGAL::PMP::Corefinement because
CGAL::Corefinement was strange for a publicly documented type
2018-05-28 17:37:16 +02:00
Sébastien Loriot
c554738ea1
update after Mael's review
2018-05-28 17:37:15 +02:00
Sébastien Loriot
699a43e47f
document the new named parameter
2018-05-28 17:36:07 +02:00
Sébastien Loriot
a207317cf5
add a parameter in corefinement functions to track the creation of new faces
2018-05-28 17:36:07 +02:00
Maxime Gimeno
d126ea44d6
Fixes in doc
2018-05-28 16:49:54 +02:00
Maxime Gimeno
3a2a0d9cc5
Fix doc
2018-05-28 16:49:54 +02:00
Maxime Gimeno
eda740136a
Add one quad face and use split face
2018-05-28 16:49:54 +02:00
Maxime Gimeno
f3aabc10eb
Fix doc for np1 and np2
2018-05-28 16:49:53 +02:00
Andreas Fabri
dc89cd6057
Change #include
2018-05-28 16:49:53 +02:00
Maxime Gimeno
71abeb06c7
Use vectors instead of unordered maps and use functors that takes input and output vertices instead of only output vertices.
2018-05-28 16:49:53 +02:00
Andreas Fabri
a80100ba41
Deal with constness so that it works with Polyhedron_3 as well
2018-05-28 16:49:53 +02:00
Maxime Gimeno
4efef4e15b
Add a function generic_extrude_mesh() that takes up to 2 functors instead of a direction and a distance.
2018-05-28 16:49:52 +02:00
Maxime Gimeno
41d3c05f7f
Add a functor to create the offset
2018-05-28 16:49:52 +02:00
Maxime Gimeno
828a7d2b73
clean-up
2018-05-28 16:49:52 +02:00
Maxime Gimeno
291039ba80
update doc
2018-05-28 16:49:52 +02:00
Maxime Gimeno
1851f35382
Add a function to PMP that extrudes a mesh along a direction at a given distance.
2018-05-28 16:49:51 +02:00
Laurent Rineau
e86c3c4bba
Merge pull request #3102 from afabri/Property_map-empty_vector-GF
...
Property_map: Fix make_property_map(std::vector&) for an empty vector
2018-05-28 13:58:47 +02:00
Laurent Rineau
a7738b27c9
Merge pull request #3052 from maxGimeno/PMP-transform-GF
...
PMP: transform()
2018-05-28 13:58:16 +02:00
Laurent Rineau
851dfabd29
Merge pull request #2757 from maxGimeno/BGL-Add_facegraph_validity_check_function-GF
...
BGL: Add a FaceGraph validity check function
2018-05-28 13:58:07 +02:00
Maxime Gimeno
2adbfe0888
replace bool by cgal_no_property_::type in wrapper
2018-05-24 14:08:57 +02:00
Maxime Gimeno
57296468b1
Update doc for fimap
2018-05-24 12:46:16 +02:00
Maxime Gimeno
719033ad68
Create id-map on the fly if needed
2018-05-24 12:41:37 +02:00
Sébastien Loriot
f03f2176dd
do no collapse constrained edges
...
At the same time I removed halfedge_and_opp_removed since we don't
know prior to the collapse which edges are removed.
The only thing done by the function is to reset the status. This
is not an issue to remove it because halfedge_added is called
each time a new edge is created, thus a previous status cannot
be recovered by error.
2018-05-23 09:07:13 +02:00
Andreas Fabri
466a88077d
An empty soup is a mesh
2018-05-22 17:48:36 +02:00
Andreas Fabri
9abafecf9a
make the property map from the vector
2018-05-22 17:48:36 +02:00
Sébastien Loriot
be42fa9147
update ecmap_ during the remeshing
2018-05-18 17:07:14 +02:00
Sébastien Loriot
90faf5d060
simplify initialization of CC
2018-05-18 14:10:31 +02:00
Sébastien Loriot
42de73320a
only constrain edges split that were constrained before
2018-05-18 11:07:18 +02:00
Sébastien Loriot
43c6fd3635
make the projection optional
2018-05-18 10:59:26 +02:00
Maxime Gimeno
5fc0022d92
make copy_face_graph use NamedParameters
2018-05-17 10:49:58 +02:00
Laurent Rineau
5a5195a4f4
Merge branch 'master' into PMP-stitch_after_orient-GF
2018-05-15 16:11:14 +02:00
Jane Tournois
76fd482cce
make collapse_constraints a parameter of collapse_short_edges
...
instead of a remesher global parameter
2018-05-15 12:52:32 +02:00
Sébastien Loriot
e08c1cdc4d
add an option to prevent the collapse of constrained edges
2018-05-15 12:21:05 +02:00
Jane Tournois
35125cd9a5
remove todo done by this PR
2018-05-15 11:23:46 +02:00
Jane Tournois
fbd982f7d8
document undocumented named parameters
...
and add extra info about split edges
2018-05-15 11:22:08 +02:00
Sébastien Loriot
73db555c5e
unconstrained an edge to be collapsed
2018-05-15 10:30:40 +02:00
Sébastien Loriot
ac8fbfd6aa
add a condition to make sure the flip does not create a non-manifold edge
2018-05-15 09:48:12 +02:00
Sébastien Loriot
6b601ccf80
update after Jane's review
2018-05-14 09:51:26 +02:00
Maxime Gimeno
9e78cb49c1
Rename Mesh in PolygonMesh for consistency with the rest of the package
2018-05-07 12:51:36 +02:00
Maxime Gimeno
cb3b060d53
fix the doc
2018-05-07 12:51:36 +02:00
Maxime Gimeno
ca267506f8
Fix doc
2018-05-07 12:51:36 +02:00
Sébastien Loriot
b2fa6680d7
typo
2018-05-07 12:51:35 +02:00
Maxime Gimeno
3ca3d11512
Replace the tparam Transformation by any Functor with an operator()(Point_3) and use that operator instead of .transform() in the impl.
2018-05-07 12:51:35 +02:00
Maxime Gimeno
2f7d66e530
Clean-up
2018-05-07 12:50:41 +02:00
Maxime Gimeno
72c31ebfac
Add a function in PMP to apply a CGAL::Aff_transformation_3 to a mesh.
2018-05-07 12:50:41 +02:00
Sebastien Loriot
80acabc4b4
Merge pull request #3065 from maxGimeno/PMP-Do_intersect_with_different_vpm-GF
...
PMP: do_intersect() work with 2 types of VPM
2018-05-07 11:47:29 +02:00
Sebastien Loriot
1d6918ff4f
Merge pull request #2895 from kkatrio/triangulate_faces_fix
...
Triangulate faces : CDT2 / hole filling
2018-05-07 11:41:58 +02:00
Maxime Gimeno
9327e470c1
Fix doc
2018-05-04 16:11:25 +02:00
Andreas Fabri
2d5c726ac7
Fix PMP
2018-05-04 09:00:08 +02:00
Maxime Gimeno
47635f11fe
Take fimap into account and add a test.
2018-05-03 14:55:49 +02:00
Maxime Gimeno
29e909b87b
Treat nm edges
2018-05-03 12:49:34 +02:00
Maxime Gimeno
861a6a16c5
Fixes
2018-05-03 12:49:34 +02:00
Maxime Gimeno
4a8375ce85
Optimize
2018-05-03 12:49:34 +02:00
Maxime Gimeno
68de1819cf
Move the code to the PMP functio nand document.
2018-05-03 12:49:34 +02:00
Maxime Gimeno
132cf694a0
remove is_valid() from the graph_traits
2018-05-03 12:03:14 +02:00
Maxime Gimeno
6dfa8d0ba3
replace CGAL_is_valid(Mesh) by CGAL::is_valid_polygon_mesh(Mesh)
2018-05-03 12:03:14 +02:00
Sébastien Loriot
c3255eee91
document projection functor named parameter
2018-05-01 14:15:27 +02:00
Sébastien Loriot
ec4675b451
do not build the aabb_tree and the cc map if not needed
2018-05-01 13:50:49 +02:00
Sébastien Loriot
54b6eb0fbc
handle case when there are no constrained edges
2018-05-01 13:50:43 +02:00
Maxime Gimeno
7e2255f797
do_intersect for 2 meshes work with 2 different types of VPM as long as their value_type is the same
2018-04-30 10:39:47 +02:00
Sébastien Loriot
ab9d668f52
first solution to correctly re-constrain edges refined
2018-04-29 13:13:58 +02:00
Sébastien Loriot
95d76709e8
isotropic remeshing can now use a user defined projection functor
...
you can pass it using a named parameter
2018-04-27 16:20:54 +02:00
Mael Rouxel-Labbé
a0427ec756
Fixed abusing Triangulation_cell_base_3 for Delaunay triangulations
...
TriangulationCellBase_3 does not request a circumcenter;
DelaunayTriangulationCellBase_3 does.
Delaunay_triangulation_3 only compiled because
Triangulation_cell_base_3 (and Triangulation_ds_cell_base_3 !)
provided circumcenter() operators and DT3 inherited T3's TDS.
- The circumcenter() functions are removed where they shouldn't exist
- DT3 uses DT_cell_base_3 as cell base instead of T_cell_base_3
- Concepts/Classes that supposedly only required TriangulationCellBase_3
and then built Delaunay triangulations with that (Alpha Shapes, etc.)
are upgraded to request DelaunayTriangulationCellBase_3 (anyway, it
wouldn't compile if you actually provided a model of
TriangulationCellBase_3)
- Fixed various wrong templates in classes/concepts such as
MeshVertexBase_3 not refining RegularTriangulationVertexBase_3
and (only in the doc) defaulting to Triangulation_vertex_base_3
- Removed the deprecated class (for 4+ years) T_cell_base_with_circumcenter
2018-04-26 13:21:53 +02:00
Mael Rouxel-Labbé
17d46e9211
Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov
2018-04-26 11:55:17 +02:00
Laurent Rineau
92a7449cac
Merge pull request #3006 from sloriot/PMP_PSP-fixes_for_release
...
Pmp psp fixes for release
2018-04-24 17:34:21 +02:00
Andreas Fabri
37e677e989
Fix compilation error with VC2017 and -permissive- It looks like a compiler bug though
2018-04-13 12:01:23 +01:00
Sébastien Loriot
348c0f92fa
do not overwrite output iterator, return it directly
2018-04-10 17:32:22 +02:00
Laurent Rineau
d057f6d9f1
Merge pull request #2958 from sloriot/PMP-coref_more_coplanar_fixes
...
Update incorrectly handled coplanar intersection computation
2018-03-28 17:46:24 +02:00
Laurent Rineau
237735ab73
Merge pull request #2946 from afabri/CGAL-dependencies-GF
...
Move properties from Mesh_3 to BGL, Polyhedron_3 and Surface_mesh
2018-03-27 10:35:23 +02:00
Sébastien Loriot
8553713885
update incorrectly handled coplanar intersection computation
...
follow up of 6bb6f470c4
2018-03-26 11:20:16 +02:00
Laurent Rineau
cd6fe20bd4
Merge branch 'releases/CGAL-4.11-branch'
2018-03-26 11:03:37 +02:00
Laurent Rineau
f1b94f0a2b
Merge pull request #2919 from sloriot/PMP-orient_handle_isolated_vertices
...
Handle isolated vertices
2018-03-26 10:56:05 +02:00
Laurent Rineau
1ef766c19b
Merge pull request #2932 from kkatrio/null-edge-hole-filling
...
PMP hole filling: null edge
2018-03-26 10:55:58 +02:00
Laurent Rineau
4b2e2db728
Merge pull request #2945 from sloriot/PMP-remove_si_improvements
...
Improvement of self-intersection removal using local remeshing
2018-03-26 10:55:51 +02:00
Andreas Fabri
8c41669fb7
move properties from Mesh_3 to BGL, Polyhedron_3 and Surface_mesh
2018-03-22 16:37:37 +01:00
Sébastien Loriot
640e78f92b
add an option to allow to change the genus
...
this is useful if the surface has some small artefact
that is not a topological disk
2018-03-22 11:15:47 +01:00
Sébastien Loriot
885f485ce1
use named parameter instead of default int and bool
2018-03-22 10:50:48 +01:00
Sébastien Loriot
56dca973be
add a debug function to dump faces of a cc into an OFF
2018-03-22 10:24:24 +01:00
Sébastien Loriot
6bb6f470c4
update incorrectly handled coplanar intersection computation
2018-03-21 16:51:24 +01:00
Sébastien Loriot
dabd127d12
fix typo in the name of an internal function
2018-03-19 15:24:04 +01:00
Sébastien Loriot
d2e02c1eee
compactify the domain to be remeshed
...
we additional select faces that are incident to the selection
that are strictly inside the bounding box of the initial selection
2018-03-19 15:18:27 +01:00
Konstantinos Katrioplas
61735be71c
deny triangulation for input of 3 points or less when using all search space
2018-03-16 14:08:43 +01:00
Laurent Rineau
9708c41ad1
Off-topic, Mesh_3: fix a bug in detect_features
...
The commit cba3b1c20c from the PR #2336
was incomplete: there are two overloads of `sharp_call(..)` and it
fixed only one occurrence.
2018-03-15 15:27:07 +01:00
Mael Rouxel-Labbé
8646350d47
Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov
2018-03-15 14:42:21 +01:00
Sébastien Loriot
613eca7448
do not use Euler::add_face + reuse edges and faces scheduled for removal
2018-03-14 14:07:40 +01:00
Sébastien Loriot
0d8e21f25c
avoid recomputing self-intersections if not needed
2018-03-14 10:44:44 +01:00
Sébastien Loriot
5af7b56589
expand the selection only by CC (instead of globally)
2018-03-14 10:22:24 +01:00
Sébastien Loriot
c2e849935e
handle isolated vertices
2018-03-12 15:25:46 +01:00
Sébastien Loriot
e86ca2eec2
add the usage of the CDT as an undocumented option
2018-03-12 10:43:57 +01:00
Sébastien Loriot
8be7c2b2d1
add convenience header
2018-03-12 10:27:38 +01:00
Sébastien Loriot
ee07db2b1e
protect code using DT3 with the macro disabling its use
2018-03-12 10:24:35 +01:00
Konstantinos Katrioplas
6ef74c39b5
conditional inclusion of cdt2 headers
2018-03-08 17:08:05 +01:00
Konstantinos Katrioplas
8cfa4e7577
correct return types
2018-03-07 10:42:46 +01:00
Sébastien Loriot
07a70919c2
do not expand/reduce all the time + handle nm vertices per cc
2018-03-06 18:37:09 +01:00
Laurent Rineau
caca4d67de
Merge pull request #2891 from sloriot/PMP-handle_deg_tri_self_inter
...
Handle degenerate faces in self-intersection tests
2018-03-06 16:23:32 +01:00
Laurent Rineau
81a7e2d737
Merge pull request #2888 from sloriot/PMP-autorefine_bugfixes
...
Autorefine bugfixes
2018-03-06 16:23:08 +01:00
Sébastien Loriot
7ab6120a0c
workaround warning
2018-03-05 17:09:23 +01:00
Andreas Fabri
5d1cd90517
Add two typename
2018-03-05 14:17:26 +00:00
Konstantinos Katrioplas
8ccec9fe98
macro rename
2018-03-05 13:20:50 +01:00
Konstantinos Katrioplas
9224e83c0a
clean up
2018-03-05 13:05:37 +01:00
Sébastien Loriot
8cc234fe26
handle degenerate faces
2018-03-02 15:45:34 +01:00
Sébastien Loriot
8817f067d1
mark vertices as terminal if incident to edge where the surface is pinched
2018-03-02 11:38:42 +01:00
Sébastien Loriot
26dec7527a
prevent duplicated nodes at existing vertex between faces intersecting
2018-03-01 16:19:23 +01:00
Sébastien Loriot
29eeac3e3d
make autorefinement working with exact constructions
2018-03-01 16:10:14 +01:00
Sébastien Loriot
c668b90379
add assertion and fix comment
2018-03-01 16:09:55 +01:00
Sébastien Loriot
e478e12471
do not use Euler::add_face
2018-03-01 15:38:26 +01:00
Sébastien Loriot
da812c6b77
only remove the face if hole filling was successful
2018-03-01 14:14:36 +01:00
konstantinos katrioplas
833c54faef
using triangulate_hole_polyline
2018-03-01 12:59:52 +01:00
Konstantinos Katrioplas
a765b152e3
wip - testing dual
2018-02-28 13:47:10 +01:00
Konstantinos Katrioplas
39ab6e00f4
test triangle face
2018-02-28 11:54:11 +01:00
Konstantinos Katrioplas
1869830e72
hole filling impl
2018-02-28 10:53:51 +01:00
konstantinos katrioplas
36dd6e7bf9
setup mech and function with hole filling
2018-02-27 21:24:26 +01:00
konstantinos katrioplas
eab0c12190
compiling
2018-02-27 20:28:27 +01:00
Konstantinos Katrioplas
2c86fd6c54
setup new function with cdt
2018-02-27 16:07:17 +01:00
Mael Rouxel-Labbé
d9168d011c
Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov
2018-02-23 18:24:39 +01:00
Laurent Rineau
9e8a40fc70
Merge pull request #2845 from sloriot/PMP-improve_autorefine_v2
...
Improve internal autorefinement function
2018-02-23 17:35:09 +01:00
Mael Rouxel-Labbé
c28e05be0c
Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov
2018-02-23 12:50:06 +01:00
Sébastien Loriot
51f4858f26
detect non-manifold edges that the hole filling would produce
2018-02-20 15:36:36 +01:00
Sébastien Loriot
6920f4be98
better handling of coplanar faces + throw when more than 2 faces sharing an edge
2018-02-20 11:15:21 +01:00
Sébastien Loriot
ac5c061b4b
fix warning
2018-02-19 18:04:55 +01:00
Sébastien Loriot
48e1d686a1
fix warning
2018-02-19 18:04:55 +01:00
Sébastien Loriot
32e74839df
handle topology issue due to boundary cycle of edges
2018-02-19 18:04:55 +01:00
Sébastien Loriot
c7b836570f
clean up and simplify code
2018-02-19 18:04:55 +01:00
Maxime Gimeno
e650284d3d
Don't crash if cc_bordes_he is empty.
2018-02-19 18:04:55 +01:00
Maxime Gimeno
d4f50b5b47
Don't use filtered_graph
2018-02-19 18:04:55 +01:00
Sébastien Loriot
b1ee7fb7db
remove trailing whitespaces
2018-02-19 18:04:55 +01:00
Sébastien Loriot
84a2e04afc
simplying the sorting of points
...
lexicographic order is fine since extreme points are
already using this order
2018-02-19 18:04:55 +01:00
Sébastien Loriot
6e1b680058
handle case when face orientation around the cc of deg faces is incorrect
2018-02-19 18:04:54 +01:00
Maxime Gimeno
cde00f7757
Clean-up and overload.
2018-02-19 18:04:54 +01:00
Maxime Gimeno
3fdc7b67b2
remove non_filled_holes
2018-02-19 18:04:54 +01:00
Sébastien Loriot
935bba4ad3
use dynamic property maps + clean up
2018-02-19 18:04:54 +01:00
Maxime Gimeno
2758143116
fixing the topology test.
2018-02-19 18:04:03 +01:00
Sébastien Loriot
209f1a246c
iteratively remove degree 3 vertices incident to a degenerate face
2018-02-19 18:04:03 +01:00
Sébastien Loriot
f3a3b5eb5e
fix the collapsibility check of connected components of degenerate faces
2018-02-19 18:04:03 +01:00
Maxime Gimeno
59b72cb364
Add some enhancements to remove_self_intersections()
2018-02-19 18:04:02 +01:00
Sébastien Loriot
12c57b588a
fix condition to drop patch with dangling edges
2018-02-19 09:34:46 +01:00
Sébastien Loriot
c0fc3e92bf
avoid identical faces in case of coplanar
2018-02-19 09:11:36 +01:00
Sébastien Loriot
d785378bdd
workaround issue with msvc
2018-02-15 17:06:31 +01:00
Sébastien Loriot
50dfffcedf
Sort halfedge of coplanar faces intersecting in autorefinement case
...
Since the faces are coming from the same mesh...
2018-02-15 10:31:31 +01:00
Sébastien Loriot
c20177c55d
add TODO
2018-02-15 10:31:31 +01:00
Sébastien Loriot
3eb109a944
better handling of dangling edges
2018-02-15 10:31:31 +01:00
Sébastien Loriot
e9596acaec
fix issue with intersection edges not found
...
this happen when such an edge if not on the same
sheet (and would be found next thanks to the
multimap).
2018-02-15 10:31:31 +01:00
Sébastien Loriot
e11a1d8617
fix patches to keep in coplanar cases
2018-02-15 10:31:31 +01:00
Sébastien Loriot
129b4c48fb
use union find to track incident between patches and discard nested intersections
2018-02-15 10:31:31 +01:00
Sébastien Loriot
80d820a10e
first version of autorefinement able to handle self-intersection of 3 faces
...
the code is not working with coplanar faces for now and does not handle
more that 3 faces meeting at a point not more that 2 triangles intersecting
along an edge
2018-02-15 10:29:27 +01:00
Sébastien Loriot
483f69728e
Refresh branch
2018-02-12 22:21:38 +01:00
Laurent Rineau
f310fc588d
Merge pull request #2690 from sgiraudot/Classification-ETHZ_random_forest-GF
...
Classification: ETHZ Random Forest
2018-02-01 17:35:30 +01:00
Simon Giraudot
6269309d86
Use CGAL include for boost counting/transform iterators everywhere
2018-01-23 11:09:52 +01:00
Laurent Rineau
e72444ab60
Merge pull request #2709 from lrineau/CGAL-fix_merge_of_PR_2478-GF
...
Fix the merge of PR #2478 into releases/CGAL-4.11-branch
2018-01-22 10:06:21 +01:00
Laurent Rineau
dd3357c508
Merge pull request #2738 from sloriot/PMP-distance_update_max
...
Make the update of the max value correct
2018-01-19 15:22:22 +01:00
Laurent Rineau
5b5002f694
Merge pull request #2738 from sloriot/PMP-distance_update_max
...
Make the update of the max value correct
2018-01-19 15:21:22 +01:00
Andreas Fabri
38b2e57b11
PMP
2018-01-17 17:59:35 +00:00
Laurent Rineau
f7cbe80c7d
Merge pull request #2711 from sloriot/PMP-Janes_commits
...
More verbose debug output
2018-01-17 10:43:06 +01:00
Sébastien Loriot
499f3c4604
make the update of the max value correct
2018-01-15 18:22:11 +01:00
Simon Giraudot
ae41b4af74
Fix namespace in PMP
2018-01-10 16:38:35 +01:00
Mael Rouxel-Labbé
b8df8ba29b
Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov
2018-01-08 10:44:01 +01:00
Jane Tournois
2650a46d5f
fix implicit conversion warning (size_type to bool)
2018-01-05 09:25:11 +01:00
Jane Tournois
4a8b735792
remove nested if, already tested
2018-01-05 09:25:11 +01:00
Jane Tournois
b7e641ef6a
add verbosity for debugging
2018-01-05 09:25:11 +01:00
Laurent Rineau
42b11ddf29
Revert the merge of PR #2478
...
This reverts the merge commit 46cc91e787 onto
488c3e2879 .
2018-01-04 17:54:08 +01:00
Sébastien Loriot
9fe73a801e
Merge pull request #2552 from maxGimeno/PMP_does_intersect-GF
...
PMP: do_intersect
2018-01-04 15:34:18 +01:00
Sebastien Loriot
e3f78ff10e
Merge pull request #2545 from maxGimeno/PMP_orient_connected_components-GF
...
PMP : Orient_connected_components function
2018-01-04 15:31:21 +01:00
Sebastien Loriot
625df00b19
Merge pull request #2219 from afabri/BGL-generic_property_map-GF
...
BGL: Add an API for adding and removing a property map
2018-01-04 15:28:54 +01:00
Sébastien Loriot
29ef1e566b
make it clear than any intersection will make the predicate to return true
2018-01-03 15:09:35 +01:00
Sébastien Loriot
ba1664e6d1
specify that the point is a 3D point
2018-01-03 13:48:27 +01:00
Sébastien Loriot
be51b908a1
add missing link and missing dots
2018-01-03 13:35:17 +01:00
Sébastien Loriot
d90c76368d
initialize the hedge status map + always do the update for new halfedge
2018-01-02 11:33:41 +01:00
Sébastien Loriot
230ba205e3
update link to np page
2017-12-22 23:01:09 +01:00
Sébastien Loriot
4590be2920
update link to np page
2017-12-22 22:58:42 +01:00
Sebastien Loriot
b6cdb1ae5b
Merge pull request #2686 from sloriot/Demo-duplicate_nm_vertices
...
Add plugin to duplicate non-manifold vertices
2017-12-22 22:10:50 +01:00
Sébastien Loriot
fe65254d13
use unordered map instead of map
2017-12-21 09:20:04 +01:00
Sébastien Loriot
942db1bba8
avoid conversion warnings
2017-12-21 09:19:51 +01:00
Sébastien Loriot
d1597f2fb5
Merge branch 'maxGimeno/PMP_orient_connected_components-GF' into cgal/master
2017-12-19 17:34:51 +01:00
Sébastien Loriot
430ad5bc72
Merge branch 'maxGimeno/PMP_does_intersect-GF' into cgal/master
2017-12-19 17:31:29 +01:00
Mael Rouxel-Labbé
0bca01d872
Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov
2017-12-19 17:22:03 +01:00
Laurent Rineau
61e662c4e4
Merge pull request #2649 from sgiraudot/BGL-Regroup_named_parameters-GF
...
Regroup PMP named parameters with BGL named parameters
# Conflicts:
# Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/parameters_interface.h
2017-12-19 16:33:44 +01:00
Laurent Rineau
1c2e9df8cf
Merge branch 'releases/CGAL-4.11-branch'
2017-12-19 16:29:10 +01:00
Laurent Rineau
5181cd7474
Merge branch 'releases/CGAL-4.10-branch' into releases/CGAL-4.11-branch
...
# Conflicts:
# Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
2017-12-19 16:19:22 +01:00
Sébastien Loriot
a9a85b37e6
fix compilation issues and warnings
2017-12-19 14:43:30 +01:00
Sébastien Loriot
569649e810
add function to duplicate non-manifold vertices + add plugin
2017-12-15 09:16:45 +01:00
Sébastien Loriot
2db6203c44
fix range type
2017-12-14 17:17:59 +01:00
Sébastien Loriot
e97ef309f3
add named parameter for overlapping test
2017-12-14 17:12:37 +01:00
Sébastien Loriot
6011be6fa9
allow to change the named parameters from which the vpm is taken
2017-12-14 17:12:20 +01:00
Andreas Fabri
50e041134e
Changes after @sloriot's review
2017-12-14 13:00:34 +00:00
Andreas Fabri
ee8c0fad5d
Changes after @sloriot's review
2017-12-14 10:49:02 +00:00
Sébastien Loriot
4b1430ca07
use a named parameter for choosing inward or outward orientation
2017-12-14 11:23:43 +01:00
Sébastien Loriot
a49f50c8aa
add missing using directives
2017-12-14 10:41:47 +01:00
Sébastien Loriot
0d8f33f67d
remove duplicated typedef
2017-12-14 10:38:11 +01:00
Laurent Rineau
7df26c594b
Merge branch 'master' into BGL-generic_property_map-GF
2017-12-14 09:46:01 +01:00
Laurent Rineau
fe81d31ec2
Merge branch 'master' into PMP_does_intersect-GF
2017-12-13 16:25:32 +01:00
Sébastien Loriot
e482e3c30c
do not use volume to avoid confusion with bounded volume
2017-12-13 16:17:19 +01:00
Sébastien Loriot
abadd74b12
use tm for the variable name of a triangle mesh
2017-12-13 15:58:40 +01:00
Sébastien Loriot
fe6b6b13e8
move internal functions in the PMP namespace
2017-12-13 15:45:42 +01:00
Sébastien Loriot
9820a9bacd
do_intersect for 2 meshes now also can test for overlaps
2017-12-13 15:37:22 +01:00
Sébastien Loriot
6b98f2db97
move functions
2017-12-13 15:36:22 +01:00
Sébastien Loriot
e91761bdbb
extract the geom traits from the named parameter
2017-12-13 15:35:02 +01:00
Sébastien Loriot
1ab1635fb4
move implementation is free functions
2017-12-13 14:01:17 +01:00
Sébastien Loriot
f88092bfad
remove useless ref
2017-12-13 13:44:16 +01:00
Sébastien Loriot
c35f45b9d3
volume intersection test is actually an overlap test
2017-12-13 13:37:04 +01:00
Sébastien Loriot
9123802d83
fix function name as it is actually the converse that is tested
2017-12-13 13:32:24 +01:00