Commit Graph

50 Commits

Author SHA1 Message Date
Andreas Fabri 7d7b080842 PMP: Change inclusion order to check dependencies 2024-01-31 09:39:45 +00:00
Andreas Fabri 03bcb67ca6 Deal with PCA 2022-01-18 18:51:37 +00:00
Sébastien Loriot 1e7785b427 do not use PMP::parameters namespace 2022-01-04 16:00:38 +01:00
Mael Rouxel-Labbé 8166579e55 Merge branch 'PM-Fix_pmaps_reference_types-GF' into PM-Fix_pmaps_reference_types_master-GF 2021-10-11 19:58:07 +02:00
Mael Rouxel-Labbé 590ddf8015 Various fixes for pmaps:
- Use `value_type` when the returned type is not a reference
- Enforce `reference = value_type` if the returned type is not
  a reference (to avoid `typename PM::reference r = get(m, k)`,
  which will take a ref to a temporary if the `reference`
  typedef is an actualy reference)
- Do not use `put_get_helper` if the property map is not a `lvalue`
  **mutable** property map: the `put()` is `map[k] = v`, which
  is broken if `operator[]` does not return a reference
- The concept `boost::lvalue_property_map_tag` requires `operator[](key)`,
  not a reference in `get(map, key)`. You can have a readable property map
  returning a reference through its `get(map, key)`, but if there is
  no `operator[]`, it's just a `boost::readable_property_map_tag`
- Some const correctness to avoid copying maps with state
  or heavy keys in `get(map, key)` / `put(map, key, value)`
- Base the category of a wrapping pmap on what it offers instead
  of just forwarding the base property map's category
- Tried to do something like mutable lvalue pmap:
  * `value_type& operator[](key&)`
  * `ref get(map, const key&)`
  * `put(map, const key&, const value_type&)`
  and non-mutable lvalue pmap:
  * `const value_type& operator[](const key&)`
  * `ref get(map, const key&)`
  but not everything fits properly...
2021-10-08 15:38:47 +02:00
Mael Rouxel-Labbé df560987a6 Whitespace & cleaning changes 2021-10-08 12:13:43 +02:00
Sébastien Loriot 4436fd62a5 Merge pull request #5266 from janetournois/PMP-isotropic_remeshing_collapse_step-jtournois
PMP isotropic_remeshing() - improve edge flip step
2021-04-17 10:51:15 +02:00
Sébastien Loriot a177ed01a4 fix warnings 2021-03-04 09:34:56 +01:00
Sebastien Loriot ec8bfa577a
missing typename 2021-03-04 09:02:33 +01:00
Maxime Gimeno d5811d0a41 clang-tidy on tests 2021-02-18 15:15:12 +01:00
Jane Tournois 087a2e04a9 introduce more testing to avoid self-intersections creation during remeshing 2020-12-11 15:27:26 +01:00
Sébastien Loriot d60f5645aa replace BOOST_FOREACH by c++ ranged-based for loop
some of the command used for the replacement:
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\(([a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\((const [a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\((const typename [a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\((typename [<>a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack "boost/foreach.hpp" -l --cpp | xargs sed -i '/boost\/foreach.hpp>/d'
2019-03-29 13:22:15 +01:00
Andreas Fabri 58bcecc497 License check for Corefinement and Distance 2017-03-22 14:07:52 +01:00
Jane Tournois b6d88274fb deactivate output to files in the testsuite
it takes long and is not really useful for the tests
2017-03-14 16:20:28 +01:00
Jane Tournois f9fe9a5e6a add assertions to the PMP testsuite 2017-03-14 15:46:48 +01:00
Jane Tournois 25d3d2b8f6 do not test isotropic_remeshing with Epec 2016-09-13 10:29:02 +02:00
Jane Tournois d4ab14197a fix typo 2016-09-12 17:16:30 +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
Sébastien Loriot 8b10e64260 add missing typename and template keywords 2016-06-14 14:17:31 +02:00
Andreas Fabri 702149cd93 Also test EPEC in the testsuite 2016-06-14 14:17:26 +02:00
Jane Tournois 7fde6edb32 rename relaxation named parameters 2016-06-07 12:38:27 +02:00
Jane Tournois b27447d2c0 fix badly resolved rebase conflict 2016-04-22 11:05:36 +02:00
Sébastien Loriot cfe32713d7 add default constructor for pmap 2016-04-21 15:26:50 +02:00
Jane Tournois f0bb4febb5 improve remeshing test and get() in pmap 2016-04-21 15:25:28 +02:00
Jane Tournois fd7b4cd6e1 improve remeshing_test 2016-03-31 12:25:01 +02:00
Sébastien Loriot a2935493e1 add missing using namespace 2016-03-02 20:12:16 +01:00
Jane Tournois 2f3de6e80c remove remeshing of a patch from the test
because the patch has been modified by split_long_edges,
so the "patch" container is not consistent anymore

it would be nice to use detect_sharp_edges to collect a patch in this test
2016-01-26 10:00:11 +01:00
Jane Tournois b3f470723b fix the test - it was working by accident!
faces of 'patch' are modified by the call to split_long_edges
so let's separate border protection and remeshing of a patch
into 2 separate calls
2016-01-18 15:06:10 +01:00
Jane Tournois ae1ea30d45 reorder parameters for consistency in PMP package 2016-01-11 12:20:45 +01:00
Jane Tournois 0ab047eb37 reorder variables for API consistency in PMP package 2016-01-11 12:12:59 +01:00
Jane Tournois 74355818b1 reorder parameters for border_halfedges() 2016-01-11 10:19:41 +01:00
Jane Tournois a5dd2fe12e use new API of border_halfedges 2015-11-13 09:56:50 +01:00
Jane Tournois 46cfb1d849 add new line add end of file (triggers a warning) 2015-11-09 11:46:28 +01:00
Jane Tournois 9379a8551e unset expensive debug macros for testing 2015-11-09 10:55:28 +01:00
Jane Tournois 52dbd6ef3d add precondition about protection of constraints
this precondition is here to check whether protection of constraints is
compatible with termination of the refinement step
2015-11-05 20:09:15 +01:00
Jane Tournois 893b80c490 rename function to isotropic_remeshing() 2015-11-05 20:09:14 +01:00
Jane Tournois 8e44b5d77a fix remeshing test 2015-07-15 16:02:32 +02:00
Jane Tournois 6214feaaf1 add stuff for verbose mode 2015-07-15 16:02:29 +02:00
Jane Tournois 6e7f4f7b21 test code 2015-07-15 16:02:28 +02:00
Jane Tournois cfff71068d add options and draft to the remeshing test 2015-07-15 16:02:28 +02:00
Jane Tournois 0844e79b67 add code to read selection from input 2015-07-15 16:02:27 +02:00
Jane Tournois 8b5902b038 add function to split long edges listed by the user
this changes the remesher internal API only
2015-07-15 16:02:27 +02:00
Jane Tournois 9e8ad02f94 more in remeshing test 2015-07-15 16:02:23 +02:00
Jane Tournois 577e0f08f0 use macro and 17 digits in cout 2015-07-15 16:02:23 +02:00
Jane Tournois 8b9bcefe22 remeshing of the patch
works when the patch describes the full mesh
otherwise, it enters an endless loop for now
2015-07-15 16:02:22 +02:00
Jane Tournois f7820a6517 introduce API to mesh only a patch (does not implement anything yet) 2015-07-15 16:02:22 +02:00
Jane Tournois e80a4adfaa increase the number of iterations in test 2015-07-15 16:02:21 +02:00
Jane Tournois fc0b9bd51a add collapse short edges to remeshing
longest edges are split first
and shortest edges are collapsed first

todo : allow edges incident to boundary to be collapsed
2015-07-15 16:02:21 +02:00
Jane Tournois 79b5ba8553 first step : split_long_edges 2015-07-15 16:02:20 +02:00
Jane Tournois 598472d210 add framework for remeshing 2015-07-15 16:02:20 +02:00