Sébastien Loriot
20e7f245c7
add implementation details
2017-04-27 17:24:47 +02:00
Sébastien Loriot
d0a2c817da
remove a todo that is now an issue
2017-04-27 16:28:00 +02:00
Andreas Fabri
bf3542116a
Polygon_mesh_processing: Fix documentation
...
splitted -> split
2017-04-26 14:42:59 +02:00
Jane Tournois
2b16193db4
deal with non-manifold surfaces
...
because a CGAL::Polyhedron cannot be non-manifold along an edge, we need
to build the polyhedral surface using PMP::orient_polygon_soup, and
PMP::polygon_soup_to_polygon_mesh.
These functions introduce duplicated points, that are dealt with in this commit
when reading a .surf file, isolated vertices are ignored
2017-04-21 14:40:08 +02:00
Jane Tournois
a4a05c406b
replace a std::set by a boost::flat_set to speedup
2017-04-20 17:00:23 +02:00
Andreas Fabri
58bcecc497
License check for Corefinement and Distance
2017-03-22 14:07:52 +01:00
Andreas Fabri
cd7deb8577
License check for Corefinement and Distance
2017-03-22 12:32:43 +01:00
Andreas Fabri
774bdc4351
License check for Geometric Meshing and Hole Filling
2017-03-22 12:10:37 +01:00
Andreas Fabri
fde105b437
License check for Predicates
2017-03-22 10:29:59 +01:00
Andreas Fabri
51bbe5d1f6
License check for Geometric Measures and Miscellaneous
2017-03-22 10:05:39 +01:00
Andreas Fabri
d04b048aa9
License check for Connected Components
2017-03-22 09:21:27 +01:00
Andreas Fabri
9bcf8b040e
move corefinement specific code from PMP to Operations_on_polyhedra
2017-03-22 09:12:30 +01:00
Andreas Fabri
44c1328f55
License check for Normal Computation Functions
2017-03-22 08:54:00 +01:00
Sébastien Loriot
0b29878f6d
better handling of tangency
...
correctly handle dangling intersection polylines
that appear when models are tangent along an edge
2017-03-16 18:44:13 +01:00
Sébastien Loriot
a79f461548
be more permissive for open meshes
2017-03-15 17:13:40 +01:00
Laurent Rineau
5947475c5c
Merge pull request #1906 from sloriot/PMP-stitching_non_manifold_edges-GF
...
Make the function stitch_borders() resilient to non-manifold edges
2017-02-14 16:11:01 +01:00
Sébastien Loriot
c873532da5
avoid stitching non-manifold edges
...
we do not stitch them at all since we might produce inconsistancies
2017-02-14 13:45:08 +01:00
Andreas Fabri
81c5ff9b0d
We do not collect halfedges on non-manifold edges
...
TODO:
- Add a precondition
- Find something better than a CGAL_warning
2017-02-14 13:44:46 +01:00
Sébastien Loriot
e9395aba6f
move enum for named parameters inside internal_np namespace
2017-02-13 10:25:28 +01:00
Laurent Rineau
58ba771e5d
Merge pull request #1898 from sloriot/PMP-fix_coref
...
fix make_terminal()
2017-02-10 19:03:42 +01:00
Sébastien Loriot
47e8f6167f
add doc in the interface file and files using it
2017-02-10 17:23:45 +01:00
Sébastien Loriot
2fee4affdd
rename macro to be independant of any package
2017-02-10 17:00:38 +01:00
Sébastien Loriot
69fbe19f06
fix make_terminal()
...
if the node is already terminal, no need to break its degree
This was an issue if the degree is actually 0
2017-02-10 14:00:07 +01:00
Maxime Gimeno
3d8aaf0a6e
Add license headers
2017-02-09 15:46:01 +01:00
Maxime Gimeno
0f9c102516
Move the enums in a namespace parameters to clean-up the namespace CGAL.
2017-02-09 15:29:18 +01:00
Maxime Gimeno
21f305db27
Use an include system to factorize the macro calls in PMP and BGL.
2017-02-09 14:14:11 +01:00
Laurent Rineau
1a2f617d89
Merge pull request #1843 from afabri/BGL_accelerate_copy_face_graph-GF
...
Accelerate copy_face_graph
2017-02-08 17:32:47 +01:00
Maxime Gimeno
07b5550f2f
Use macros to add parameters in named_fucntion_params.h
2017-02-08 16:37:14 +01:00
Laurent Rineau
4c3ea8908e
Merge pull request #1875 from sloriot/PMP-rename_bbox_3
...
Rename bbox_3 functions
2017-02-06 15:19:18 +01:00
Laurent Rineau
7946d3e31d
Merge pull request #1871 from sloriot/PMP-coref_same_points
...
Identical points after corefinement
2017-02-02 17:18:21 +01:00
Sébastien Loriot
cc899819f2
bbox is ambiguous
2017-02-02 14:42:53 +01:00
Sébastien Loriot
2ed0a35153
fix doc warnings
2017-01-31 14:40:10 +01:00
Sébastien Loriot
a675fa60e4
rename bbox_3 functions
...
free functions in CGAL have no dimension suffix
2017-01-31 14:33:56 +01:00
Sebastien Loriot
a0bcc82311
Merge pull request #1860 from sloriot/PMP-fix_namespace_pollution
...
Avoid namespace pollution
2017-01-30 15:55:22 +01:00
Sébastien Loriot
0f540a8116
make sure the same points in different triangle meshes have the same coordinates
2017-01-30 15:35:10 +01:00
Andreas Fabri
12b3a78cc6
fix typos in code
2017-01-27 09:41:00 +01:00
Andreas Fabri
006bfdfec0
Add #ifdef CGAL_PMP_REFINE_DEBUG for total_timer
2017-01-27 09:21:03 +01:00
Sébastien Loriot
a3666887a1
remove dependancy to PSP
2017-01-26 18:27:49 +01:00
Sébastien Loriot
cfc30502b7
move Distance_computation and implementation in internal namespace
2017-01-26 14:18:13 +01:00
Sebastien Loriot
b761bad0a9
Merge pull request #1856 from afabri/PMP-fix_doc_CC-GF
...
PMP: Fix error in the ref manual of connected components functions
2017-01-25 17:55:37 +01:00
Andreas Fabri
07f62beb4b
fix typos
2017-01-25 17:52:44 +01:00
Andreas Fabri
dc34a06c8b
PMP: Fix error in the ref manual of connected components functions
2017-01-25 16:12:38 +01:00
Maxime Gimeno
60d0a39d42
fixes
2017-01-24 14:46:36 +01:00
Maxime Gimeno
82860688d1
Fix the doc to avoid diffs between 1.8.4 and 1.8.13 outputs
2017-01-24 09:39:23 +01:00
Sébastien Loriot
50510c05ea
add include directive for license of all GPL header files
...
done using:
ack-grep "^GPL" */package_info/*/license.txt -l | awk -F "/" '{print $1}' > /tmp/gpl_packages
for i in `cat /tmp/gpl_packages | \
grep -v Operations_on_polyhedra | \
grep -v Algebraic_kernel_for_circles | \
grep -v Algebraic_kernel_for_spheres | \
grep -v Polyhedron_IO`;
do
echo $i
python Scripts/developer_scripts/add_license_in_pkg_header.py $i
done
python Scripts/developer_scripts/add_license_in_pkg_header.py Operations_on_polyhedra Polygon_mesh_processing
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_circles Circular_kernel_2
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_spheres Circular_kernel_3
python Scripts/developer_scripts/add_license_in_pkg_header.py Polyhedron_IO Polyhedron
2017-01-19 15:20:25 +01:00
Sébastien Loriot
3fa4abe869
move function to init index maps to BGL
2017-01-18 16:37:34 +01:00
Sébastien Loriot
b3340608cc
move property map binders to property_map.h
2017-01-18 16:37:24 +01:00
Andreas Fabri
528c6a19a8
Add an #include
2017-01-16 19:16:19 +01:00
Sébastien Loriot
ce16295297
add a function to init halfedge indices
2017-01-16 18:34:55 +01:00
Sébastien Loriot
516b732adf
using tbb::atomic instead of cpp11::atomic
2017-01-16 15:18:46 +01:00
Sébastien Loriot
b79cc00461
add missing public
2017-01-16 09:27:24 +01:00
Sébastien Loriot
0446958c5a
parallel version of mesh distance function requires cpp11::atomic
2017-01-13 13:19:29 +01:00
Sébastien Loriot
449205c486
avoid pmp_bgl_named_params to inherit from named_params_base
...
this fix a warning with old version of boost < 1.51
Use another workaround to avoid the compilation error
of the area(face_range,tm) overload
2017-01-13 13:18:55 +01:00
Sébastien Loriot
e3f9ffa6f8
workaround for named parameters with old boost version (<1.51)
...
handle the renaming of a struct and move get_param overloads
in the boost namespace (to match qualified call boost::get_param)
2017-01-13 12:05:51 +01:00
Sébastien Loriot
9ae7b37845
Merge pull request #1745 from sloriot/Polyhedra_corefinement-enhancements-sloriot
...
Add corefinement operations in PMP
2017-01-12 12:05:18 +01:00
Sébastien Loriot
6ac45f820a
use PMP for corefinement and intersection plugins
2017-01-11 15:16:03 +01:00
Sébastien Loriot
59001acd92
update the implementation of clip plugin to use new corefinement PMP code
2017-01-10 15:38:24 +01:00
Sébastien Loriot
6743afaee3
add a function to initialize vertex index maps
2017-01-10 15:04:54 +01:00
Sébastien Loriot
2cac99b2d6
protect call to max function
2017-01-09 12:00:06 +01:00
Sébastien Loriot
cafe151c03
fix an error and two warnings
2017-01-09 08:28:13 +01:00
Sébastien Loriot
706e8c81ce
fix copy-paste error
2017-01-05 15:56:18 +01:00
Sébastien Loriot
33979fc8cd
remove wrong comments
2017-01-05 15:14:12 +01:00
Sébastien Loriot
b48a6e8965
handle dangling polylines
...
An intersection polyline that has a node of degree one that is not
on the boundary of both meshes invalidates all operations.
It might be possible to do the union in some case but it does not
seems relevant for now
2017-01-03 10:01:23 +01:00
Sébastien Loriot
e0010627ee
use a simpler to read form for the sorted_around_edge predicate
...
in addition it become a real predicate (no construction)
2017-01-02 19:25:48 +01:00
Sébastien Loriot
9f2d102b7f
no longer used intermediate interval layer
...
this was actually not needed since EPECK already have this
filter layer
2017-01-02 19:25:44 +01:00
Sébastien Loriot
7ed402b3f7
optimize the number of nodes created in the DAG
...
- Use new kernel functors for intersection points
- Construct points from double to have only one node per point
(doubles are stored in Lazy_rep_3)
2017-01-02 19:25:44 +01:00
Sébastien Loriot
88d391ab51
improve phrasing
2016-12-30 15:46:13 +01:00
Sébastien Loriot
6341b5d5ed
rename named parameter and update concept after adding edge sampling
2016-12-30 14:52:10 +01:00
Sébastien Loriot
91278918d7
reorder named parameters
2016-12-29 18:06:58 +01:00
Sébastien Loriot
a847818904
improve description
2016-12-29 18:02:36 +01:00
Sébastien Loriot
886b65edd1
remove set_ prefix from named parameters
2016-12-29 17:50:16 +01:00
Sébastien Loriot
bfc20a922b
move using instructions
2016-12-29 07:21:04 +01:00
Sébastien Loriot
283815c875
improve doc
2016-12-29 07:21:04 +01:00
Sébastien Loriot
94b2720fbd
use name parameters for selecting the sampling algorithm
...
A dedicated sampling of edges is also introduced as well as
an option to use input vertices to evaluate the distance.
2016-12-29 07:20:25 +01:00
Sébastien Loriot
db6b7e0a00
add sampling on edges and vertices for a single face (grid case)
...
also add missing overload
2016-12-29 07:20:25 +01:00
Sébastien Loriot
5ee83b555b
remove Triangle_3 extra requirements
2016-12-29 07:20:25 +01:00
Sébastien Loriot
621c6c5457
cosmetic changes
2016-12-29 07:20:24 +01:00
Sébastien Loriot
fd87870977
fix constructed vector
2016-12-29 07:20:24 +01:00
Maxime Gimeno
4568381657
Another fix for the doc
2016-12-29 07:20:24 +01:00
Maxime Gimeno
cdc76129d0
Keep fixing the doc
2016-12-29 07:20:24 +01:00
Andreas Fabri
18a39a54bd
fix VC++ warnings by adding static_cast
2016-12-29 07:20:24 +01:00
Maxime Gimeno
768e52fe54
Another fix of the doc.
2016-12-29 07:20:23 +01:00
Maxime Gimeno
1d43e641d6
Fix measure.h and update demo plugin code
2016-12-29 07:20:23 +01:00
Maxime Gimeno
581b677a44
Add sample_face() and fix some doc.
2016-12-29 07:20:23 +01:00
Simon Giraudot
98b5ae4682
Fix angle/circumcenter/m_edge problems
2016-12-29 07:20:23 +01:00
Maxime Gimeno
06dd4a4522
Add a geom-traits concept for distance functions
...
Update the code and the doc accordingly
2016-12-29 07:20:23 +01:00
Jane Tournois
e9f6885d3e
minor doc fixes
2016-12-29 07:20:23 +01:00
Jane Tournois
2e804f6e48
fix the doc of `sample_triangle_mesh`
...
fix a few typos, and fix the layout of bullet lists
2016-12-29 07:20:22 +01:00
Maxime Gimeno
d5bdf342d4
Use functor instead of free function volume()
2016-12-29 07:20:22 +01:00
Maxime Gimeno
9140ab3f31
Replace approximated by approximate in the function names.
2016-12-29 07:20:22 +01:00
Sébastien Loriot
3710a60b9c
doc clean up
2016-12-29 07:20:22 +01:00
Maxime Gimeno
0cc2c59981
Fixes for SF.
2016-12-29 07:20:22 +01:00
Maxime Gimeno
cc44c571e5
Shorten the code lines.
2016-12-29 07:20:22 +01:00
Maxime Gimeno
3fca4399c6
Add examples and keep fixing the doc
2016-12-29 07:20:22 +01:00
Maxime Gimeno
cbf7e6b722
Doc and test fix.
2016-12-29 07:20:21 +01:00
Sébastien Loriot
81b11ee2d5
Bug-fix: accept range of points as input and not only vectors
2016-12-29 07:20:21 +01:00
Maxime Gimeno
0c3edf822c
Add tests for misisng documented functions.
2016-12-29 07:20:21 +01:00
Maxime Gimeno
a4127d74c1
Add distance computation to poisson_reconstruction's example.
2016-12-29 07:20:21 +01:00
Maxime Gimeno
6cf0504f95
Fixes and clean-up : first part.
2016-12-29 07:20:21 +01:00
Maxime Gimeno
3cedefa08e
Update the doc.
2016-12-29 07:20:21 +01:00
Maxime Gimeno
9e767fd16f
Fix and clean-up
2016-12-29 07:20:21 +01:00
Maxime Gimeno
6858d65e5d
Update and fix
...
Parallelize the plugin if TBB is linked with CGAL and fix the parallelized code in distance.h.
2016-12-29 07:20:21 +01:00
Maxime Gimeno
a232a257ca
Implementation of the `max_distance_to_point_set()` function.
2016-12-29 07:20:21 +01:00
Maxime Gimeno
033adb29f1
Update the demo and fix the code for Polyhedron.
2016-12-29 07:20:20 +01:00
Maxime Gimeno
542efa95d7
Implement the NamedParameters functions and use the property maps.
2016-12-29 07:20:20 +01:00
Maxime Gimeno
c9ec5a224e
Remove useless sampling.
2016-12-29 07:20:20 +01:00
Maxime Gimeno
f742ad250e
Fix for use with Polyhedron
...
- Polyhedron does not have a halfedge_around_face_descriptor, thus it does not respect the BGL doc and we must use a regular halfedge_descriptor instead.
2016-12-29 07:20:20 +01:00
Maxime Gimeno
39e7b76902
WIP
2016-12-29 07:20:19 +01:00
Maxime Gimeno
0f13cde758
Implementation:
...
- cherry-pick Random_generator
- implement hausdorff distance functions
- implement sample_triangle_mesh
2016-12-29 07:20:19 +01:00
Maxime Gimeno
62e78f34e5
WIP
2016-12-29 07:20:19 +01:00
Maxime Gimeno
c4a6da2f8b
Transform the overloads to use Surface_mesh instead of triangle meshes.
2016-12-29 07:20:19 +01:00
Maxime Gimeno
c5a17ce354
Change `approximated_Hausdorff_distance()` to use a Surface_mesh instead of a triangle range.
2016-12-29 07:20:19 +01:00
Sébastien Loriot
2577fd912e
WIP to add Hausdorff distance to a mesh
2016-12-29 07:20:19 +01:00
Sébastien Loriot
9dbaf36646
put function is correct group
2016-12-26 08:33:43 +01:00
Sébastien Loriot
6b72ab2a6e
remove a too strict check that eliminate all operations in case of edge tangency
2016-12-22 16:17:02 +01:00
Sébastien Loriot
39fe7c2936
handle the import of border halfedge
2016-12-22 16:11:21 +01:00
Sébastien Loriot
d18e9b2e85
fix typo
2016-12-22 10:25:08 +01:00
Sébastien Loriot
72119d08c8
add an internal function to collect degenerate faces
2016-12-22 09:23:53 +01:00
Sébastien Loriot
98862227be
make it work with Polyhedron
...
the indices of the faces are initialized now if the face index map is writable
2016-12-19 16:49:51 +01:00
Sébastien Loriot
a7ee97a92c
remove unused variable
2016-12-15 17:34:21 +01:00
Andreas Fabri
2ed5bfd9cd
Construct exact points only once, and the normal of the plane directly from three points
2016-12-14 09:23:35 +01:00
Sébastien Loriot
e70f7db943
fix assertion
2016-12-14 08:29:30 +01:00
Sébastien Loriot
3282ed2847
Skip an orientation test for inserting the third point
...
since we already know the orientation of the input points we can skip it
2016-12-14 08:25:48 +01:00
Sébastien Loriot
c679453100
remove a test that is always true
2016-12-13 18:30:19 +01:00
Sébastien Loriot
1a14d26a86
optimize the triangulation of faces
...
- insert the 3 first points outside of the affine hull (no check of equality)
- insert points on edges using locate type to avoid orientation tests
of collinear points
2016-12-13 17:10:50 +01:00
Sébastien Loriot
a83e23611a
fix typo
2016-12-13 16:16:52 +01:00
Sébastien Loriot
55c3e1ad61
avoid using a std::set and a std::vector for container storing at most 2 elements
...
Thanks @afabri
2016-12-12 22:29:05 +01:00
Sébastien Loriot
12fea568f0
using a vector instead of a set
2016-12-12 21:44:07 +01:00
Andreas Fabri
1607ccb411
Fix VC2015 warning
2016-12-12 13:15:19 +01:00
Sébastien Loriot
478e5283cd
qualify function calls with boost namespace
2016-12-12 12:54:44 +01:00
Sébastien Loriot
6c7bee5d0a
fix conversion warnings
2016-12-09 14:14:08 +01:00
Sébastien Loriot
fac4a6add5
fix the report of polyline in the visitor
...
the 2 first nodes were always reported twice
2016-12-09 13:36:55 +01:00
Sébastien Loriot
804f878556
fix warnings
2016-12-08 15:22:04 +01:00
Sébastien Loriot
ac2faf9fe1
fix doc
2016-12-05 18:28:29 +01:00
Andreas Fabri
10bd9897f3
Compare with 0 in order to avoid a warning
2016-12-05 17:18:11 +01:00
Sébastien Loriot
c3e1309181
update from master branch
2016-12-05 14:37:29 +01:00
Sébastien Loriot
845317a9fb
fix doc and remove todo done
2016-12-05 14:32:19 +01:00
Sébastien Loriot
f83a620087
fix warnings
2016-12-05 14:09:04 +01:00
Laurent Rineau
49ffa5ed81
Merge pull request #1730 from MaelRL/PMP-Fix_border_halfedges_compilation
...
Fixed a compilation issue in PMP's border_halfedges()
2016-12-05 11:49:54 +01:00
Sébastien Loriot
56b8908dac
remove a todo
...
if we unmark intersection edge inside a coplanar patch, we will have something
not consistant with what is done is corefine(). For now I keep it like this
2016-12-05 11:12:47 +01:00
Sébastien Loriot
fb68b3a6c2
add implementation of does_bound_a_volume + test
2016-12-05 11:06:13 +01:00
Sébastien Loriot
7b727ea7cf
expose the internal AABB-tree class
...
that was a bug as the constructor taking an AABB-tree could
not be used otherwise
2016-12-02 16:11:48 +01:00
Sébastien Loriot
3dc7076b79
add an function to check inward orientation when extreme vertex is known
2016-12-02 16:10:29 +01:00
Sébastien Loriot
6bc8caac43
use safer property choosing mechanism
2016-12-02 11:35:18 +01:00
Laurent Rineau
a80fc35561
Merge pull request #1696 from MaelRL/PMP-Fix_border_halfedges
...
Fixed an implementation of PMP's border_halfedges()
2016-12-02 11:35:07 +01:00
Laurent Rineau
78ae3414e4
Merge pull request #1693 from janetournois/PMP-fixes_for_isotropic_remeshing_4.9-jtournois
...
PMP : fixes for isotropic remeshing
2016-12-02 11:34:51 +01:00
Laurent Rineau
9bb29f0c75
Merge pull request #1628 from MaelRL/PMP-Fix_self_intersections
...
Fixed self intersection tests
2016-12-02 11:34:38 +01:00
Laurent Rineau
e559968307
Merge pull request #1682 from sloriot/PMP-use_readable_pmap_api
...
Use readable property map API
2016-12-02 11:33:54 +01:00
Sébastien Loriot
46cdd7f7dc
add testsuite for corefine
2016-12-02 08:43:25 +01:00
Sébastien Loriot
820ebd8eee
fix warnings and ambiguity of copy_edge_mark
2016-12-01 15:16:57 +01:00
Sébastien Loriot
834869c533
add a convenience overload
2016-12-01 15:16:57 +01:00
Mael Rouxel-Labbé
bfbba26124
Fixed a compilation issue in PMP's border_halfedges()
...
Previous code did not compile if a face index map was not given
in named parameters, nor as an internal property map
2016-12-01 12:04:12 +01:00
Sébastien Loriot
853c156c10
Handle transfer of marks from input to output
2016-11-30 14:18:42 +01:00
Sébastien Loriot
2671c4c922
bugfix: use the backuped face as the patch border halfedge was set on-border
2016-11-30 14:18:00 +01:00
Sébastien Loriot
812bc885d5
add function that I forgot to port
2016-11-30 10:29:28 +01:00
Sébastien Loriot
bc719ad192
fix copy-paste error
2016-11-23 15:52:50 +01:00
Sébastien Loriot
6db2bff67b
handle call to corefinement functions with identical meshes
2016-11-23 15:48:00 +01:00
Sébastien Loriot
3f316c9596
fix warnings and add missing include directive
2016-11-23 14:35:55 +01:00
Jane Tournois
e5dcef0528
deal with surface patch indices during collapse
...
for checking that faces do not get inverted
2016-11-21 17:55:25 +01:00
Jane Tournois
5a2eaa96a0
use Patch_id(-1) as invalid patch id
2016-11-21 17:46:22 +01:00
Jane Tournois
0b4ecf6531
is_corner should return true for a dart
2016-11-21 14:51:08 +01:00
Jane Tournois
c28dc6f210
avoid conversion warning
2016-11-21 14:47:46 +01:00
Jane Tournois
8f8ccc3c39
fix the case where patch2 was not met yet
2016-11-18 17:44:10 +01:00
Jane Tournois
f1cb55bf80
deal with boundaries by skipping null_face
2016-11-17 16:29:03 +01:00
Mael Rouxel-Labbé
92b4a49e38
Documentation changes for PMP's border_halfedges()
2016-11-17 14:17:26 +01:00
Jane Tournois
fb1af78ab5
check orientation of faces surface patch per surface patch
2016-11-17 11:45:17 +01:00
Mael Rouxel-Labbé
0851d2b4e8
Fixed an implementation of PMP's border_halfedges() returning interior edges
...
and the corresponding documentation.
2016-11-16 11:22:35 +01:00
Jane Tournois
b29c578d19
fix the boundary case
...
once the no-inversion test has been performed, check that we don't have
a boundary problematic case
It would require to reswap, and break the border of the patch to be remeshed
2016-11-15 17:18:13 +01:00
Jane Tournois
e4f9f9fea7
check that relaxation does not produce an inverted face
...
it can happen close to the boundary, where things are naturally
more constrained
2016-11-15 17:17:53 +01:00
Jane Tournois
2e6d55f813
remove a todo
2016-11-15 17:17:32 +01:00
Jane Tournois
7be46604ec
fix collapse step
...
the inverse orientation test should also be performed on the border
2016-11-15 17:17:16 +01:00
Jane Tournois
e8adc69337
rename function to improve code readability
2016-11-15 17:17:04 +01:00
Jane Tournois
33ef17760f
avoid collapsing an isolated constrained edge in the "middle" of a patch
2016-11-15 17:16:39 +01:00
Sébastien Loriot
f128addaca
fix order of the parameters
2016-11-13 19:54:13 +01:00
Sébastien Loriot
5ec738fcd8
qualify a call to choose_param
2016-11-13 19:53:46 +01:00
Sébastien Loriot
b34d8cd6b8
use readable property map API
...
operator[]() is only required in Lvalue property map
2016-11-11 10:04:35 +01:00
Sébastien Loriot
478a40c9aa
add an undocumented function to remove border edges
...
this works even if it does not satisfy the link condition
2016-11-10 18:52:20 +01:00
Sébastien Loriot
1501b4400c
int -> std::size_t for node ids
2016-11-10 14:38:10 +01:00
Sébastien Loriot
d7c6d30def
directly use the halfedge used to create the points
2016-11-10 14:27:10 +01:00
Sébastien Loriot
48fa75f829
the halfedges reported for intersection on a vertex or an edge was incorrect
...
copy-paste error...
2016-11-10 14:22:22 +01:00
Sébastien Loriot
167c52b00d
add todos, assertions and comments
2016-11-10 09:45:19 +01:00
Sébastien Loriot
f68a2a4dff
edges are not sorted and do not appear twice: do not skip them using indices
2016-11-10 09:41:18 +01:00
Sébastien Loriot
ddaf6cd90b
avoid reporting several time the same node per edge and face
...
This happens only in the case of coplanar triangles and can
be avoided by only reporting the node when it is first
created
2016-11-10 09:23:02 +01:00
Sébastien Loriot
918b71339f
bugfix: copy-paste error, wrong mesh
2016-11-04 09:55:56 +01:00
Sébastien Loriot
1ed98a7d9a
simply the detection of coplanar faces
...
coplanar faces are made of 3 intersection edges and each of its vertex
has a node-id != -1
2016-11-03 14:31:20 +01:00
Sébastien Loriot
cab2634387
bug fix in the detection of intersection edges in the middle of a coplanar patch
...
do not remove the edges from the intersection map while we are still using them
2016-11-03 14:18:12 +01:00
Sébastien Loriot
8c8a62b7e0
Correctly handle tangencies of input model
...
this handle the case of identical models (even differently meshed)
and model that are tangent only at vertices
(backport from Operations_on_polyhedra)
2016-11-03 10:41:00 +01:00
Mael Rouxel-Labbé
8c7e45b2eb
Fixed missing include in self_intersections.h
2016-10-31 15:24:33 +01:00
Mael Rouxel-Labbé
3591b39d33
Fixed self intersection tests
...
Adjacent faces that were coplanar and overlapping were not being detected
2016-10-28 14:25:16 +02:00
Laurent Rineau
d37c400fc9
Merge pull request #1606 from sloriot/PMP-make_border_test_safer
...
Make a test safer
2016-10-26 14:39:19 +02:00
Jane Tournois
2d72090cba
this internal property map is not needed anymore
2016-10-25 17:14:57 +02:00
Sébastien Loriot
9d5e675c61
add missing include directive
2016-10-24 14:50:48 +02:00
Laurent Rineau
24b7757282
Merge pull request #1517 from sloriot/PMP-more_bbox_3_overloads
...
More bbox 3 overloads for face graph models
2016-10-24 11:47:13 +02:00
Sébastien Loriot
e075757f18
remove assertion always true to avoid a warning
2016-10-21 18:04:30 +02:00
Mael Rouxel-Labbé
f27fa0d0e8
Add missing include directive
2016-10-21 17:58:11 +02:00
Sébastien Loriot
c2d5b501ed
make a test safer
2016-10-21 17:36:41 +02:00
Sébastien Loriot
1bdede2bcd
fix warning
2016-10-20 18:04:11 +02:00
Sébastien Loriot
f4d67dd4af
Refresh branch from master
2016-10-19 14:27:08 +02:00
Sébastien Loriot
f9ecd715b5
Revert "rename functions computing simplex bbox to bbox_3"
...
This reverts commit 357f261231 .
The names have to be different otherwise for models of FaceGraph
have face, vertex and edge descriptors being pure integer the
overloads will be ambiguous
2016-10-19 14:14:09 +02:00
Sébastien Loriot
eceb0a8b11
add doc for self-intersection tests restricted to a set of faces
...
also add an overload without named parameters
2016-10-19 13:57:23 +02:00
Andreas Fabri
423242be31
dihedral_angle() -> approximate_dihedral_angle()
2016-10-11 15:35:20 +02:00
Laurent Rineau
223c1cf5a4
Merge pull request #1530 from lrineau/Installation-compute_dependencies-GF
...
Compute and fix packages dependencies
2016-10-05 13:11:04 +02:00
Laurent Rineau
a2f14458f9
Merge pull request #1505 from sloriot/PMP-fix_empty_range_remeshing_bug
...
Fix a bug in isotropic remeshing when the range is empty
2016-10-05 13:02:27 +02:00
Sébastien Loriot
f27bb9168c
use latest way to get the vertex point map
2016-09-30 16:00:41 +02:00
Sébastien Loriot
6713621ae3
Update branch with master
2016-09-30 15:43:06 +02:00
Laurent Rineau
6eb6c57401
sync with master
2016-09-30 15:24:02 +02:00
Andreas Fabri
c58582b5ec
Add global function dihedral_angle()
2016-09-30 15:23:15 +02:00
Andreas Fabri
cb4931f1e4
Fix package Polygon_mesh_processing: include headers
2016-09-30 15:23:14 +02:00
Sébastien Loriot
d95b3fb00e
remove_isolated_vertices was no longer documented due to a missing \endcond
2016-09-30 10:11:01 +02:00
Sébastien Loriot
357f261231
rename functions computing simplex bbox to bbox_3
...
overloads are possible thanks to a specialization of graph_traits
for named parameter being empty.
That way, the compiler do not try to instantiate the one from boost,
which was looking for vertex_descriptor and edge_descriptor in the
name parameters.
2016-09-30 10:04:12 +02:00
Sébastien Loriot
2398d2612a
remove TODOs
2016-09-29 17:19:44 +02:00
Sébastien Loriot
896ae54bdd
update the text for named parameters
2016-09-29 17:11:46 +02:00
Sébastien Loriot
efa9b9bac4
rename boolean operation functions
...
The change of names comes from the fact the the constness of input meshes
cannot be guaranteed without having different type of input and output
meshes
2016-09-29 15:25:43 +02:00
Sébastien Loriot
69d790acbe
use Construct_bbox_3 from a geom_traits to compute the bbox
2016-09-29 14:58:21 +02:00
Sébastien Loriot
ce13630917
rename overload as there are some ambiguities that cannot be overcame
2016-09-29 14:09:50 +02:00
Sébastien Loriot
5143325085
add function to get the bounding box of a vertex, an edge, or a face
2016-09-29 14:09:46 +02:00
Sébastien Loriot
35c2d8dc52
mark intersection edges in output models (in-place cases) using output pmap
2016-09-29 10:40:43 +02:00
Sébastien Loriot
d9e91e4fa4
set null_face as face of newly created edges
...
depending of the type of input, it might be reusing some old
attributes (like Surface_mesh for example)
2016-09-29 10:21:05 +02:00
Sébastien Loriot
8a000baa12
rename functions to disambiguate the call to put/get free functions
2016-09-29 10:20:21 +02:00
Sébastien Loriot
3abb3efd67
fix a typo leading to a bug
2016-09-29 10:18:35 +02:00
Laurent Rineau
a3b065175b
Merge pull request #1332 from janetournois/PMP-about_internal_pmaps-jtournois
...
BGL : detect internal property maps, and use it in PMP isotropic remeshing
2016-09-28 18:01:13 +02:00
Laurent Rineau
b085f1e7a0
Merge pull request #1442 from sloriot/Polyhedron_demo-add_remove_self_intersections
...
Add an action to remove self-intersections in a mesh
2016-09-28 18:00:41 +02:00
Sébastien Loriot
46b0abbb3b
do nothing if the face range is empty
2016-09-28 13:56:22 +02:00
Sébastien Loriot
5de5315ef5
vertex point map must be default constructible
2016-09-27 17:32:12 +02:00
Sébastien Loriot
6488a8a172
fix warnings
2016-09-27 17:31:38 +02:00
Sébastien Loriot
37f760383d
fix template paramaters
2016-09-27 17:30:54 +02:00
Sébastien Loriot
4316b82952
fix warning
2016-09-27 17:28:44 +02:00
Sébastien Loriot
2eb6e14db4
fix typos
2016-09-27 17:27:50 +02:00
Sébastien Loriot
de9580e17d
add missing include and fix warnings
2016-09-27 17:27:03 +02:00
Sébastien Loriot
90b518113d
add a function to generate a default named parameters from an existing one
...
this is more a syntactic sugar to make clear in the code that something
is not meant to be used
2016-09-27 17:19:00 +02:00
Sébastien Loriot
3b573238b3
copy-paste error
2016-09-27 11:01:55 +02:00
Sébastien Loriot
e63b67a9ad
Get the default kernel from the property map given instead of the default one
2016-09-27 10:55:48 +02:00
Sébastien Loriot
27b011789c
avoid a warning in release mode
2016-09-26 09:19:49 +02:00
Laurent Rineau
119763e168
Merge pull request #1474 from janetournois/PMP-isotropic_remeshing_fix_doc-jtournois
...
(From a merge of branch 'cgal/releases/CGAL-4.9-branch')
2016-09-23 17:02:56 +02:00
Laurent Rineau
45d87bb333
Merge pull request #1439 from janetournois/PMP-remove_useless_includes-GF
...
PMP : remove useless includes
2016-09-23 16:51:12 +02:00
Jane Tournois
a646158eb0
update doc
2016-09-22 12:10:06 +02:00
Jane Tournois
23d5411e60
remove more useless choose_const_pmap
2016-09-22 12:10:06 +02:00
Jane Tournois
97a534fd8b
don't attemp to get the vertex_point map of PMesh when it does not exist
2016-09-22 12:10:06 +02:00
Jane Tournois
064a3510b2
remove useless using boost::choose_pmap and boost::choose_const_pmap
2016-09-22 12:10:06 +02:00
Jane Tournois
ef85908fe1
use get_property_map and get_const_property_map everywhere in PMP
2016-09-22 12:10:06 +02:00
Jane Tournois
76e6333a18
fix the use of const_type
2016-09-22 12:10:06 +02:00
Jane Tournois
fc58055ec3
use get_const_property_map
2016-09-22 12:10:06 +02:00
Jane Tournois
1aac56ca61
add const_type, and get_const_pmap
2016-09-22 12:10:06 +02:00
Jane Tournois
c234af207e
fix unused parameter warning
2016-09-22 12:10:06 +02:00
Jane Tournois
756eac95d3
fix compilation error
2016-09-22 12:10:06 +02:00
Jane Tournois
6d9e974bab
add documentation
2016-09-22 12:10:06 +02:00
Jane Tournois
047be1346c
add the use of face_index_map wherever it's needed
...
remeshing_test now crashes, don't know why yet
2016-09-22 12:05:51 +02:00
Jane Tournois
d50cbf4930
use get_property_map for face_index_map
...
in isotropic_remeshing and border_halfedges
2016-09-22 12:05:51 +02:00
Jane Tournois
7e1fab420a
add get_property_map to get either the internal pmap or cgal_no_property
2016-09-22 12:05:51 +02:00
Jane Tournois
d03077abda
iterator type of FaceRange should be multi-pass, so ForwardIterator
2016-09-20 15:03:13 +02:00
Sébastien Loriot
6aec9dbc8c
fix typo
2016-09-20 09:17:10 +02:00
Laurent Rineau
e2d04e54e0
Merge remote-tracking branch 'cgal/releases/CGAL-4.8-branch'
...
> 3176b37 Merge pull request #1452 from mglisse/Number_types-Eigen_Literal-glisse
> 1705702 Merge pull request #1417 from afabri/Polyline_simplification-Bugfix_choose_correct_Itag-GF
> 3bef239 Merge pull request #1462 from sloriot/PMP-add_missing_include
2016-09-15 17:25:20 +02:00
Sebastien Loriot
343fb726fa
Add missing include directive
2016-09-15 15:52:47 +02:00
Jane Tournois
bffb1f63f7
document that exact constructions are not supported
...
and write a proposal about how to support exact constructions
2016-09-13 11:05:55 +02:00
Jane Tournois
e0bce515cf
add a macro to be less verbose
2016-09-12 17:16:30 +02:00
Sébastien Loriot
b7db87ab40
add a plugin to remove self-intersection in a mesh
2016-09-08 15:01:44 +02:00
Jane Tournois
4f2adeaff0
remove useless includes
2016-09-08 14:07:15 +02:00
Sébastien Loriot
5300028a57
first version of boolean operations with FaceGraph models using corefinement
2016-09-02 15:59:38 +02:00
Jane Tournois
0baa89452d
add info about self-intersections
2016-08-10 09:45:40 +02:00
Sébastien Loriot
9edbdad3b9
add prototype for PMP::boolean_operation
...
add overloads for PMP::join, PMP::intersection and PMP::difference
and complete the implementaiton with a call to PMP::boolean_operation
2016-07-06 11:43:16 +02:00
Sébastien Loriot
918fcf850b
fix indentation issue
2016-07-05 15:01:40 +02:00
Sébastien Loriot
dbf0f2de3d
plug is-constrained edge maps
2016-07-05 14:54:32 +02:00
Sébastien Loriot
208526cc4e
update comments
2016-07-05 13:46:04 +02:00
Sébastien Loriot
f531269fab
remove todo and document throw_on_self_intersection
2016-07-05 13:28:56 +02:00
Sébastien Loriot
dbbb723a82
document surface_intersection and plug named-parameter mechanism
2016-07-05 12:00:04 +02:00
Sébastien Loriot
c3cd3b26f8
remove an unneeded parameter
2016-07-05 11:57:51 +02:00
Sébastien Loriot
604645dfd7
remove doc todos done
2016-07-05 10:12:59 +02:00
Sébastien Loriot
8781dd6942
Add an output builder parameter to the corefinement visitor
2016-07-04 16:29:02 +02:00
Sébastien Loriot
7a0ff9d28e
First implementation of the corefinement of 2 triangle meshes
...
implementation uses a visitor for the function computing the intersection
of 2 triangle meshes.
2016-07-04 16:28:52 +02:00
Sébastien Loriot
c477ce88ff
improve doc
2016-06-24 16:58:57 +02:00
Sébastien Loriot
58044ab929
document PMP::parameters::all_default()
2016-06-24 16:58:51 +02:00
Sébastien Loriot
84311eab64
update doc after the review of @janetournois
2016-06-24 16:58:34 +02:00
Sébastien Loriot
27badf0b43
Add a version of the code to compute intersection of TriangleMesh
...
The code is a copy the one in Operation_on_polyhedra that was
only working with Polyhedron_3.
For the moment only default parameters are used. NamedParameters
will be introduced later.
2016-06-24 16:58:12 +02:00
Sébastien Loriot
2d4153fc3d
update Polyhedra_corefinement-enhancements-sloriot from master
2016-06-24 14:54:33 +02:00
Sebastien Loriot
e819e65f96
Merge pull request #1187 from maxGimeno/Fix_deformation-GF
...
Polyhedron_demo: Enhance deformation
2016-06-22 13:18:31 +02:00
Sébastien Loriot
79ad1b2dc6
Merge pull request #1141 from janetournois/PMP-isotropic_remeshing_smoothing_options-jtournois
...
PMP isotropic_remeshing : smoothing options
2016-06-22 11:46:05 +02:00
Jane Tournois
85744d3c63
the validity of the vertex_is_constrained_map should be fixed
...
the problem was that we can't control which of va and vb will be vkept
when collape_edge is called
now it's clear wrt the constrained map
2016-06-21 11:19:41 +02:00
Jane Tournois
be65dac810
don't use double but FT
2016-06-14 14:22:18 +02:00
Jane Tournois
6f46122f52
attempt to fix ambiguity warning
2016-06-14 14:17:42 +02:00
Jane Tournois
1e2e1f1dd2
rename dummy_named_params to named_params_base
2016-06-14 14:17:41 +02:00
Jane Tournois
5b41ca088b
avoid stack overflow in Epeck due to +=
2016-06-14 14:17:40 +02:00
Jane Tournois
3e620a07be
WIP replace double by FT
...
the measures_test does not compile with this commit
2016-06-14 14:17:34 +02:00
Sébastien Loriot
6d42b1873b
remove useless typedef instructions
2016-06-14 14:17:29 +02:00
Sébastien Loriot
5af65c983d
remove useless default template argument
2016-06-14 14:17:28 +02:00
Sébastien Loriot
c85c4e01ad
remove useless comment and fix indentation
2016-06-14 14:17:27 +02:00
Andreas Fabri
702149cd93
Also test EPEC in the testsuite
2016-06-14 14:17:26 +02:00
Andreas Fabri
73fb767025
Change the @warning to what Laurent suggested
2016-06-14 14:17:24 +02:00
Jane Tournois
7b5ca9ed7f
triangle_normal should return the normal with norm = area(triangle)
2016-06-14 14:17:20 +02:00
Jane Tournois
d8f3da483b
use kernel functors
2016-06-14 14:17:19 +02:00
Jane Tournois
630a8f4014
use kernel functors
2016-06-14 14:17:17 +02:00
Jane Tournois
6b284a8e0a
update code from master after rebase, and use CGAL functors
2016-06-14 14:17:16 +02:00
Jane Tournois
0af657207b
fix compilation and the use of Construct_sum_of_vectors_3
2016-06-14 14:17:15 +02:00
Jane Tournois
f940302044
document that fairing is not exact
2016-06-14 14:17:12 +02:00
Jane Tournois
109b9fdfe7
use CGAL::approximate_sqrt(x) to replace CGAL::sqrt(to_double(x))
2016-06-14 14:17:11 +02:00
Jane Tournois
4556530682
make a better use of geom_traits in compute_face_normal
2016-06-14 14:17:07 +02:00
Jane Tournois
211426e3fe
fix compilation (extra */ added in comments)
2016-06-14 14:17:06 +02:00
Andreas Fabri
ae1f695208
Document where sqrt is done approximately
2016-06-14 14:17:04 +02:00
Andreas Fabri
2c54acb056
Use to_double to make it work with Epec
2016-06-14 14:17:03 +02:00
Sebastien Loriot
aeab78c74b
Merge pull request #1143 from janetournois/PMP-isotropic_remeshing_speedup-jtournois
...
PMP isotropic_remeshing speedup. Don't use the MESH Halfedge_status
2016-06-09 16:21:09 +02:00
Sebastien Loriot
1ebaebc6aa
Merge pull request #1101 from maxGimeno/Enhance_triangulate_facets-GF
...
Robustify triangulate facets
2016-06-08 09:50:48 +02:00
Jane Tournois
4e964ab64d
don't use the MESH status
...
We now consider that MESH halfedges are the ones that are not in the patch,
i.e. not in the status map
halfedges with the MESH status are not used, apart from close to
PATCH_BOUNDARY edges.
this speeds up the isotropic remeshing algorithm, in particular when only
a small patch is remeshed
2016-06-07 16:18:42 +02:00
Sébastien Loriot
99ffa8655d
add an overload to does_self_intersect taking a face range as input
2016-06-07 14:30:39 +02:00
Jane Tournois
0811c2fb2c
document named parameters for smoothing
2016-06-07 14:06:09 +02:00
Jane Tournois
ccbdeb1419
doc : reorder named parameters
2016-06-07 12:42:16 +02:00
Jane Tournois
7fde6edb32
rename relaxation named parameters
2016-06-07 12:38:27 +02:00
Jane Tournois
5ab581dc1e
be more verbose
2016-06-06 17:13:50 +02:00
Jane Tournois
4112b0295f
add a named parameter to be able to run more than one laplacian iteration
...
at each isotropic_remeshing iteration
2016-06-06 13:58:54 +02:00
Maxime Gimeno
1741739449
Fixes the choice of the diagonal for a quad.
2016-05-26 16:50:49 +02:00
Sébastien Loriot
5f0a9dcbf3
Merge remote-tracking branch 'cgal/releases/CGAL-4.8-branch'
2016-05-24 16:54:58 +02:00
Jane Tournois
e4336fcc09
ref manual
2016-05-24 16:33:47 +02:00
Maxime Gimeno
817155d7f0
Update doc
2016-05-24 08:40:14 +02:00
Jane Tournois
acc7e16626
add more collapsibility tests
2016-05-23 17:09:19 +02:00
Maxime Gimeno
400f44c2a3
Make triangulate_faces() a boolean.
2016-05-23 16:36:07 +02:00
Maxime Gimeno
0a5bea6dba
Use split_face if the facet is a quad.
2016-05-23 16:30:19 +02:00
Maxime Gimeno
b63dae993a
Make triangulate_face() a boolean
2016-05-23 15:36:14 +02:00
Jane Tournois
ca3883b837
it is necessary to check that e is still collapsible
...
when it is poped out from the priority queue. Its situation may have changed
because of the changes that have been made in its neighborhood
+ checking that is_on_patch_border(next_on_patch_border(next(he, mesh_))
is useless, because next_on_patch_border is on patch border by definition
reorganize the collapsibility check
2016-05-23 12:17:48 +02:00
Jane Tournois
f2fe1a69d0
fix assertion code
2016-05-20 12:24:28 +02:00
Jane Tournois
aef3c6cc62
fix include
2016-05-20 12:23:42 +02:00
Sébastien Loriot
36d0257dff
first version of the corefinement doc
2016-05-19 15:08:31 +02:00
Jane Tournois
355c698185
avoid creating self intersections close to boundaries
...
the collapse step was still creating self-intersections
when it happened in a particular configuration close to boundary
# Conflicts:
# Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h
2016-05-19 13:16:37 +02:00
Sébastien Loriot
d892ef1a89
Merge pull request #1030 from janetournois/PMP-remeshing_with_patch_ids-jtournois
...
PMP : new features for isotropic_remeshing
2016-05-09 09:43:08 +02:00
Sebastien Loriot
7630d2a6fc
Merge pull request #875 from sloriot/Triangulation_2_and_PMP-fix_Triangulation_2_projection_traits_3
...
PMP: make triangulate_faces works with non filtered kernels
2016-05-05 14:55:11 +02:00
Sebastien Loriot
cba2fd46ca
Merge pull request #1052 from janetournois/PMP-isotropic_remeshing_non_manifold_bug-jtournois
...
PMP : fix for isotropic_remeshing
2016-05-04 15:03:57 +02:00
Sébastien Loriot
3c8871f8a9
Merge pull request #739 from bo0ts/Pmp-poly_soup_poly_mesh-pmoeller
...
Add PMP function is_polygon_soup_a_polygon_mesh
2016-05-04 15:01:25 +02:00
Sébastien Loriot
e65ca4aa86
add a function to reverse the orientation of the faces of a mesh with polylines
2016-05-03 18:25:23 +02:00
Jane Tournois
32cbaf914b
edges incident to boundary cannot always be flipped
2016-04-29 17:37:17 +02:00
Jane Tournois
dab8b7e312
Merge branch 'PMP-remeshing_with_patch_ids-jtournois' of github.com:janetournois/cgal into PMP-remeshing_with_patch_ids-jtournois
2016-04-29 17:24:50 +02:00
Jane Tournois
dbedd1358d
edges incident to boundary cannot always be flipped
2016-04-29 17:14:02 +02:00
Sébastien Loriot
09e076922c
remove compilation error and a conversion warning
2016-04-29 16:53:53 +02:00
Jane Tournois
eb13dffd53
fix typo!
2016-04-29 16:30:19 +02:00
Sébastien Loriot
cc7d686d16
remove unused typedefs
2016-04-29 14:01:52 +02:00
Jane Tournois
eb1747b28b
boost::size has compilation issues in boost 1.53 (see testsuite 4.9-Ic-29)
...
and FaceRange is model of Range, so .size() is available
2016-04-25 11:02:06 +02:00
Laurent Rineau
64ea03f9ec
Fix a compilation error
...
`boost::size` does not exist unless `<boost/range/size.hpp>` is
included, at least on my machine.
2016-04-22 17:30:55 +02:00
Jane Tournois
99b7cb8216
check the face_index map to be checked actually is the internal map
2016-04-22 17:15:01 +02:00
Jane Tournois
ccf66afe26
check face_index map is initialized
...
this is a minimal check, that checks that the 2 first faces of the range
do not share the same index
This test is not complete and the complete check should test that no 2 vertices
share the same index, but that's too costly to be worth it here
2016-04-22 16:25:17 +02:00
Jane Tournois
638b0ba9ab
document that if face_index map exists internally, it should be initialized
2016-04-22 15:31:12 +02:00
Jane Tournois
7749a3402b
Polygon should also be RandomAccessContainer
2016-04-22 15:04:10 +02:00
Jane Tournois
1c614bb0dc
replace std::vector<Point> and std::vector<Polygon> with appropriate range concepts
2016-04-22 12:43:47 +02:00
Jane Tournois
9cf539c8a9
change requirement of PolygonRange
...
operator[], size(), begin() and end() are all available in RandomAccessContainer
2016-04-22 12:26:03 +02:00
Jane Tournois
5b56f2a6a8
fix doc
2016-04-22 11:18:50 +02:00
Jane Tournois
bfe4d815a2
document face_patch_map
2016-04-22 09:53:20 +02:00
Jane Tournois
21a869491b
document face_patch_map
2016-04-21 16:00:40 +02:00
Jane Tournois
2b3b07a2f9
add mising timer start
2016-04-21 15:32:13 +02:00
Jane Tournois
a829161ca1
avoid computing connected_components when it's not needed
2016-04-21 15:32:12 +02:00
Jane Tournois
e7c9bab5ae
avoid constructing the Border_constraint_pmap when it's not needed
...
i.e. when it's given in the named parameters
2016-04-21 15:32:11 +02:00
Jane Tournois
768c7439f7
make dealing with patch ids safer
2016-04-21 15:31:01 +02:00
Jane Tournois
1f0a11191d
do not project back constrained vertices
2016-04-21 15:30:59 +02:00
Jane Tournois
2fb5fa4a26
ecmap_ will be updated at the end of the remeshing process
...
this "put" is useless
2016-04-21 15:29:56 +02:00
Jane Tournois
f777c53b61
add stuff to verbose mode
2016-04-21 15:29:53 +02:00
Jane Tournois
ba91119696
make sure an edge between two patches is considered a constraint
2016-04-21 15:28:33 +02:00
Sébastien Loriot
ded29c7304
correct definition of Self
2016-04-21 15:26:55 +02:00
Jane Tournois
296bcdb04b
back to previous version of Patch_id_property_map
2016-04-21 15:26:53 +02:00
Jane Tournois
badfb8f2b8
remove default values. Values are given by every call to this constructor
2016-04-21 15:26:51 +02:00
Jane Tournois
5f5397a5d3
parameters pmesh and ecmap can't be used here
2016-04-21 15:25:29 +02:00
Jane Tournois
f0bb4febb5
improve remeshing test and get() in pmap
2016-04-21 15:25:28 +02:00
Jane Tournois
ee89276102
isotropic remeshing : introduce surface_patch ids as an input read write pmap
2016-04-21 15:23:20 +02:00
Jane Tournois
c0f30e18a8
add constrained vertices to isotropic remeshing
...
those vertices cannot be modified
2016-04-21 15:21:29 +02:00
Jane Tournois
253d4f28a6
update the constraints property map after the end of remeshing
2016-04-21 15:10:02 +02:00
Jane Tournois
1a33081f79
transform EdgeIsConstrainedMap into a member variable
2016-04-21 15:00:46 +02:00
Sébastien Loriot
17edea6299
avoid copying the polygon vector
...
some functions of Polygon_soup_orienter have been made static
and the function duplicate_singular_vertices was partially
duplicated (no other choice to have the polygon container const)
2016-04-19 20:06:13 +02:00
Sébastien Loriot
592c2bf454
remove the need to set the points
2016-04-19 19:25:29 +02:00
Jane Tournois
269efaa60b
improve doc
2016-04-19 11:58:24 +02:00
Jane Tournois
8708376798
check that there is no polygon with twice the same vertex
2016-04-19 11:06:01 +02:00
Jane Tournois
068d93798a
edge_map should be filled to be able to circulate around vertices
2016-04-19 10:51:03 +02:00
Jane Tournois
8a87c34f1b
use orienter to test manifold-ness
2016-04-18 18:03:24 +02:00
Jane Tournois
fb8ac5a9e6
add a parameter to duplicate_singular_vertices to avoid duplicating when required
2016-04-18 18:02:27 +02:00
Philipp Möller
b0fb4999f0
Add changes required by review
2016-04-18 12:08:48 +02:00
Philipp Möller
ec25aab2d2
Replace vector<vector<size_t>> by a nested range
2016-04-18 12:08:47 +02:00
Philipp Möller
f1158a2dfe
Explain missing range of points
2016-04-18 12:08:45 +02:00
Philipp Möller
74edea7fa2
Use is_polygon_soup_a_polygon_mesh as pre
2016-04-18 12:08:44 +02:00
Philipp Möller
01190b1027
Fix doc typo
2016-04-18 12:08:41 +02:00
Philipp Möller
a9a651d5c5
Enable doc
2016-04-18 12:04:57 +02:00
Laurent Rineau
3bd9e6d557
Merge pull request #995 from janetournois/PMP-fix_compute_normals-jtournois
...
(Merged from remote-tracking branch 'cgal/releases/CGAL-4.8-branch')
2016-04-14 15:14:45 +02:00
Jane Tournois
c7c8c86a9e
remove unused variable
2016-04-12 18:17:05 +02:00
Jane Tournois
f85d783613
improve computation of a face normal for non-triangular faces
...
triangulating the face naively around v is much simpler and more accurate than
iterating on prev/curr/next vertices inside the face
2016-04-11 12:15:59 +02:00
Sébastien Loriot
f8bbee52b7
Merge branch 'Polyhedra_corefinement-enhancements-sloriot' into HEAD
2016-04-04 12:09:24 +02:00
Laurent Rineau
6164c91227
Merge changes to PMP from branch 'releases/CGAL-4.8-branch'
...
Merges:
> 621e16ed Merge pull request #973 from janetournois/Polyhedron_demo-fix_isotropic_remeshing_plugin-jtournois
> 4d1ac46 Merge pull request #974 from janetournois/PMP-complete_remeshing_test-jtournois
2016-04-04 11:22:09 +02:00
Jane Tournois
36c3a7a758
remove unused variable
2016-04-01 10:02:21 +02:00
Jane Tournois
f6e312fc86
deal with the degenerate face case, and avoid division by 0
...
the only way to catch it would be to check that the result is not NaN,
probably not a good idea, in particular for vertex normals
and
Revert "deal with the case where one face incident to v is degenerate"
This reverts commit 52105868b31a2685795e92d9caf4bfe251bcf75c.
2016-03-31 12:26:39 +02:00
Jane Tournois
650cb1d752
change the way we deal with degenerate faces
...
some may remain and we don't know how to remove them yet
2016-03-31 12:26:19 +02:00
Jane Tournois
caa0aaeeb0
fix test for projection
...
a vertex is reprojected if it is on PATCH, and if it is not constrained
(and this test is the filter to "continue" the loop)
2016-03-31 12:26:01 +02:00
Jane Tournois
1e0b28601a
make the flipping step more verbose (see progress)
2016-03-31 12:25:42 +02:00
Jane Tournois
e3e03f06f4
deal with the case where one face incident to v is degenerate
2016-03-31 12:25:22 +02:00
Laurent Rineau
ae33af9222
Merge branch 'releases/CGAL-4.8-branch'
...
Merges the following fixes:
> 4025913 Merge pull request #949 from janetournois/BGL-fix_conversion_of_boundary_halfedges-jtournois
> 9c62628 Merge pull request #948 from janetournois/PMP-fix_assertion_isotropic_remeshing-jtournois
> f61402d Merge pull request #929 from sloriot/Polyhedron_demo-Isotropic_remeshing_preserve_duplicates
See also:
* https://github.com/CGAL/cgal/pull/949
* https://github.com/CGAL/cgal/pull/948
* https://github.com/CGAL/cgal/pull/929
2016-03-31 10:55:12 +02:00
Jane Tournois
cc28746e18
fix the case where both faces incident to h are degenerate before the flip
...
and none of them is degenerate after the flip
2016-03-25 10:39:01 +01:00
Laurent Rineau
ad73334a0f
Merge pull request #821 from afabri/CGAL_property_map-GF
...
Include consistently <CGAL/property_map.h>
2016-03-24 11:29:09 +01:00
Sébastien Loriot
b0d43337de
wrap the set in a shared_ptr because a property map should be lightweight
2016-03-17 13:09:39 +01:00
Sébastien Loriot
7680c6f168
use a set instead of a map to avoid keeping handles to removed elements
...
moreover the map becomes sensitive to the input
2016-03-17 12:58:02 +01:00
Sebastien Loriot
ef3721a581
Merge pull request #881 from janetournois/PMP-isotropic_remeshing_reduce_aabbtree-jtournois
...
PMP isotropic remeshing : reduce the internal aabb_tree to the input face_range
2016-03-04 13:28:11 +01:00
Sebastien Loriot
717ec22664
Merge pull request #874 from janetournois/PMP-isotropic_remeshing_improvements-jtournois
...
PMP::isotropic_remeshing() - improve management of constraints
2016-03-03 17:00:34 +01:00
Sebastien Loriot
5870f1361a
Merge pull request #872 from afabri/PMP-namespace_PMP-GF
...
The namespace forwarding goes in the user code, not in a CGAL header
2016-03-03 17:00:08 +01:00
Jane Tournois
733e84abbf
the input triangles are only composed of the face_range to remesh
...
this reduces the size of the aabb_tree for projection
and fixes the fact that the face range only should be triangulated, not the
entire polygon mesh
2016-03-03 12:26:14 +01:00
Jane Tournois
ce42c3062f
halfedge and face descriptors should be hashable
2016-03-03 11:59:55 +01:00
Sébastien Loriot
d7e9261d58
hide the filtered projection traits behind the projection traits
...
the selection of the base class is done using Kernel::Has_filtered_predicates
2016-03-02 21:57:54 +01:00
Sébastien Loriot
c3854cb656
fix warnings
2016-03-02 20:10:39 +01:00
Sébastien Loriot
fbe36bc8c0
add missing typename
2016-03-02 20:05:05 +01:00
Jane Tournois
bf63963830
add constrained vertices to isotropic remeshing
...
those vertices cannot be modified
2016-03-02 17:08:38 +01:00
Andreas Fabri
dd8a68c4c5
The namespace forwarding goes in the user code, not in a CGAL header
2016-03-02 16:52:13 +01:00
Jane Tournois
ab6956e188
fix corners in isotropic remeshing
...
they do not get truncated anymore
2016-03-02 15:52:31 +01:00
Jane Tournois
dc0090e9b8
remove duplicate function split_long_edges
...
by exploiting the edge_is_constrained_map as read-write pmap
this is not documented, and only for demo purposes (at least for now)
2016-03-01 16:28:06 +01:00
Jane Tournois
63884d0033
update the constraints property map after the end of remeshing
2016-03-01 15:30:52 +01:00
Jane Tournois
32bcdb4186
transform EdgeIsConstrainedMap into a member variable
2016-03-01 14:03:28 +01:00
Sébastien Loriot
392c292cc5
handle isolated vertices when computing normal
2016-02-29 10:07:44 +01:00
Andreas Fabri
eb90e8e3e1
Include consistently <CGAL/property_map.h>
2016-02-24 12:09:36 +01:00
Sebastien Loriot
c1b3b784a7
Merge pull request #777 from janetournois/Polyhedron_demo-polyhedron_item_for_quads-GF
...
Polyhedron item : improve computation of normals
2016-02-22 08:24:11 +01:00
Andreas Fabri
1918e01c9a
fix type requirement of the property map
2016-02-19 11:19:08 +01:00
Andreas Fabri
de159f13fc
Remve requirement for default constructible FaceNormalMap
2016-02-19 11:11:42 +01:00
Sébastien Loriot
0fc5846f07
change dummy property map to read-only to avoid a warning
...
I also it is safer to produce a compilation error if used as
a read/write pmap
2016-02-18 17:08:15 +01:00
Sébastien Loriot
ceccbb887b
fix copy-paste error
2016-02-17 11:51:31 +01:00
Sébastien Loriot
d7b5f70181
refine bug-fix: also refine created faces
...
The refinement is an iterative process, newly created faces must
also be considered as refinable.
2016-02-15 14:57:57 +01:00
Sébastien Loriot
6c4f1274ef
refine and fairing functions requires a triangle mesh
2016-02-15 14:35:26 +01:00
Sébastien Loriot
77b69cc881
fixes for polygon_soup_to_polygon_mesh
...
- add a missing header
- remove unneed inheritance
- fix doc to mention internal point pmap requirement
- Point is not a requirement of the MutableFaceGraph concept
2016-02-15 13:38:52 +01:00
Jane Tournois
d3ce97f566
use face normals map as input of compute_vertex_normal
...
in the named parameters
2016-02-12 15:01:40 +01:00
Jane Tournois
e94d675c4f
for a triangle, compute normal only once
2016-02-11 19:15:46 +01:00
Jane Tournois
1afce415b6
fix the display of quad meshes with problems
...
by separating the quads from non-triangular faces
this also prevents from computing a CDT2 for each quad
2016-02-11 18:45:22 +01:00
Sebastien Loriot
ca6486f202
Merge pull request #742 from sloriot/PMP-fix_weight
...
Polygon mesh processing: fix bug in weight
2016-02-07 18:15:29 +01:00
Sebastien Loriot
718eae7a00
Merge pull request #714 from sgiraudot/CGAL-Fix_boost_warning_unused_typedef-GF
...
Fix boost warning (unused typedef)
2016-02-05 14:59:28 +01:00
Sébastien Loriot
2243f20695
fix bug in weight
...
if the source of he is v0 then v1==v0
2016-02-05 12:17:08 +01:00
Sebastien Loriot
ebf66069c3
Merge pull request #706 from afabri/PMP_include_graph_traits-GF
...
Deal with deprecated code
2016-02-03 09:44:11 +01:00
Simon Giraudot
751d959c05
Fix boost unused typedef warning: replace BOOST_STATIC_ASSERT by CGAL_static_assertion
2016-02-02 14:32:46 +01:00
Sébastien Loriot
aa94453c1e
fix submenu name
2016-02-01 16:14:58 +01:00
Andreas Fabri
4c9c668dc9
deal with deprecated code
2016-02-01 15:52:52 +01:00
Sebastien Loriot
f6147f5b08
Merge pull request #672 from janetournois/PMP-fix_remeshing_patch_borders-jtournois
...
PMP isotropic remeshing : fix collapse step with inside borders
2016-01-27 13:37:03 +01:00
Sébastien Loriot
0d60c1626e
add missing include directives
2016-01-26 18:42:08 +01:00
Jane Tournois
a7c54c024a
fix assertion and is_constrained function
2016-01-26 09:27:14 +01:00
Jane Tournois
5d8d1c65b8
if deviation is not getting better, do not make the flip
...
this tiny change seems to improve a lot the overall quality of the
remeshed polyhedron, by avoiding some pathological cases with
vertices of valence 3 (away from border)
2016-01-25 17:37:03 +01:00
Jane Tournois
856d41e8ca
last (default) case should return false i.e. not collapsible
2016-01-25 10:53:43 +01:00
Sébastien Loriot
4c4b191209
Merge pull request #604 from bo0ts/BGL-add_clear-pmoeller
...
Add BGL helper CGAL::clear
2016-01-23 09:18:56 +01:00
Jane Tournois
1be4ceba2a
collapse step in isotropic remeshing fix
...
dealing with patch border halfedges needs a different treatment than
"inside patch" halfedges
2016-01-22 13:02:40 +01:00
Sébastien Loriot
acba778a9e
Merge branch 'Polyhedra_corefinement-enhancements-sloriot' into HEAD
2016-01-21 11:06:59 +01:00
Sébastien Loriot
3850fbb30c
fix license
2016-01-21 09:19:58 +01:00
Jane Tournois
83de44dab8
when split_long_edges is called, no aabb_tree is built
...
so don't delete it
2016-01-18 14:28:16 +01:00
Laurent Rineau
1456abac26
Fix a compilation error
2016-01-18 14:28:15 +01:00
Jane Tournois
5bc410556b
move internal file to internal/Isotropic_remeshing
2016-01-18 14:28:14 +01:00
Jane Tournois
1e61e24d85
remove patch_ids from aabb_primitives, they have become useless
...
the AABB_tree_remeshing is a simple aabb_tree<triangle_primitive> now
2016-01-18 14:28:13 +01:00
Jane Tournois
910c7759d0
fix return type and get a valid result from Patch_id_property_map!
2016-01-18 14:28:12 +01:00
Jane Tournois
c7926a87b0
temporary bug fix
...
why is Patch_id_property_map broken when we get to use it?
2016-01-18 14:28:11 +01:00
Jane Tournois
fddfb4f933
add debug code
2016-01-18 14:28:10 +01:00
Jane Tournois
5dfd8e783f
comment failing assertion
2016-01-18 14:28:09 +01:00
Jane Tournois
0964b8fae1
use an aabb tree of triangles with patch_id to be able to reproject
...
on the same surface patch
2016-01-18 14:28:08 +01:00
Jane Tournois
bb4073a4f2
remove constrained_edges_, it has become useless
2016-01-18 14:28:07 +01:00
Jane Tournois
faa843f9c4
change face component property map
2016-01-18 14:28:06 +01:00
Jane Tournois
6ee71b5bf7
this property map should be modifiable
2016-01-18 14:28:05 +01:00
Jane Tournois
3802a8dcac
update the patch ids property map inside remeshing process
2016-01-18 14:28:04 +01:00
Jane Tournois
7da1304544
replace connected components property map by a permanent one
2016-01-18 14:28:03 +01:00
Sébastien Loriot
34e58e32b1
restore usage of constrained edge map
2016-01-18 14:28:00 +01:00
Sébastien Loriot
a38444c48b
fix compilation issues and add a comment for @janetournois
2016-01-18 14:27:59 +01:00
Jane Tournois
f4ce0f6eae
this commit attempts to improve the projection step
...
we try to make the projection step keep vertices on the same connected component,
wrt constrained edges
there are some issues that need to be fixed :
- the use of edge_is_constrained_map in the calle to PMP::connected_components()
causes compilation errors. So it's commented for now
- the patch ids that are stored in the reference aabb_tree (which remains
valid through iterations) are not the same as the patch ids computed at
the end of each iteration, in the projection step. It should be made consistent
to be able to use the Filtered_projection_traits
2016-01-18 14:27:58 +01:00
Jane Tournois
36a133784d
fix default value
2016-01-18 14:27:57 +01:00
Jane Tournois
64f26ad1eb
make 1d remeshing an option in the remeshing widget
2016-01-18 14:09:43 +01:00