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