Commit Graph

1440 Commits

Author SHA1 Message Date
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
Maxime Gimeno 09040105a1 Create an example file to test the Hausdorff distance. 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 c8ed365d29 add data set producing a non-manifold vertex 2016-12-22 09:23:54 +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 572cf361b4 comment debug function 2016-12-13 11:16:38 +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
Sébastien Loriot 9173ec4f29 remove a call to a debug function 2016-12-12 14:34:22 +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 6604704dbe fix examples 2016-12-05 14:26:33 +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 d70290962e add a new data-set 2016-12-05 11:07:35 +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
Laurent Rineau f100d59987 Merge pull request #1722 from janetournois/PMP-fix_doc_isotropic_remeshing-GF
PMP : fix documentation bug for `vertex_is_constrained_map`
2016-12-02 11:37:47 +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
Laurent Rineau fe7a537f28 Merge pull request #1681 from sloriot/PMP-remove_a_border_edge
Add an undocumented function to remove border edges
2016-12-02 11:33:41 +01:00
Sébastien Loriot e1d7c43314 remove or use all test data 2016-12-02 09:29:26 +01:00
Sébastien Loriot 46cdd7f7dc add testsuite for corefine 2016-12-02 08:43:25 +01:00
Sébastien Loriot 834879e50e add bash script to run locally a corefinement testsuite 2016-12-01 17:08:51 +01:00
Sébastien Loriot 8cc156724e factorize test for PMP and OOP coref 2016-12-01 17:08:18 +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 5678363c4d add test file checking that corefinement handles constrained edges correctly 2016-11-25 14:38:18 +01:00
Jane Tournois 35cce254bb fix documentation bug
vertices can be changed because of collapse,
for which we don't always know if vkept will be source
or target
2016-11-25 11:02:47 +01:00
Andreas Fabri 44324c7eb1 add examples to examples.txt 2016-11-24 14:01:11 +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
Sébastien Loriot 3ec5914ca2 add missing test file 2016-11-22 16:10:37 +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
Mael Rouxel-Labbé 1367e3e09d Reworked how boolean parameters are passed in self_intersection tests 2016-11-20 00:59:15 +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 a84faf682c use a larger edge target in the example 2016-11-15 13:57:12 +01:00
Andreas Fabri ee1a911af5 only compile if the compiler supports cxx_range_for 2016-11-14 08:21:03 +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
Andreas Fabri 362a77b9de fix typos - thank you Jane 2016-11-03 15:03:24 +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
Andreas Fabri dc3cfa9551 fix typo 2016-11-03 14:15:55 +01:00
Mael Rouxel-Labbé 124245ab57 Allowed to pass expected values along with input files in self intersections tests 2016-11-03 12:39:22 +01:00
Mael Rouxel-Labbé c2135823a8 Improved self_intersections tests 2016-11-03 11:43:03 +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
Andreas Fabri df3af79866 Add an example that uses a std::map as property map 2016-11-01 09:48:48 +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
Laurent Rineau c6cf01c7f6 Merge pull request #1562 from afabri/Kernel_Compute_dihedral_angle-GF
Add doc of functor class and concept corresponding to dihedral_angle()
2016-10-20 09:48:05 +02:00
Sébastien Loriot 4841913bb7 improve outline and add corefinement
drop the manual section numbering that is error prone
and use bullets to make it easier to catch the different
sections
2016-10-19 15:41:09 +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 c86582ef82 remove todo 2016-10-19 14:03:45 +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
Sébastien Loriot 7c4e1aee8b simplify example 2016-10-19 13:57:04 +02:00
Laurent Rineau 6be3772654 Fix calls to dihedral_angle() 2016-10-17 14:43:15 +02:00
Laurent Rineau 0d5ddad5c3 Merge pull request #1534 from lrineau/CGAL-Allow_examples_to_use_cpp11_features-lrineau
Allow examples to use C++>=11 features
2016-10-17 10:03:05 +02:00
Laurent Rineau 038a310a1a Merge pull request #1446 from sloriot/CGAL-remove_dont_submit
Getting rid of the remaining dont_submit files
2016-10-17 10:01:30 +02:00
Laurent Rineau 907a2766a7 Merge pull request #1516 from sloriot/PMP-remove_doc_table
Remove the requirement table
2016-10-13 10:20:28 +02:00
Andreas Fabri 423242be31 dihedral_angle() -> approximate_dihedral_angle() 2016-10-11 15:35:20 +02:00
Sébastien Loriot f2882073bb remove examples using a non documented function
these examples will be restored later
2016-10-06 09:47:37 +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
Laurent Rineau 9a0bb54922 Merge pull request #1438 from sloriot/CGAL-clean_up_projects_name_cmake
Clean up projects name in cmake scripts
2016-10-05 13:02:25 +02:00
Andreas Fabri 59c8c8ab30 dihedral_angle is now in CGAL:: 2016-10-03 08:53:28 +02:00
Laurent Rineau 50d753350e Allow examples to use C++>=11 features
The macro `create_single_source_cgal_program` from
`CGAL_CreateSingleSourceCGALProgram` has been modified accordingly.

(cherry picked from commit 571659aaa32a30d7bfc0ce54a9d29c56079dca06)
2016-09-30 18:42:46 +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 93c7bf1387 reorder items 2016-09-29 14:34:38 +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 a4ecdef02b use PMP function 2016-09-29 12:24:52 +02:00
Sébastien Loriot faec57bd69 remove the requirement table 2016-09-29 12:10:58 +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