Commit Graph

56 Commits

Author SHA1 Message Date
Sébastien Loriot 3176178224 fix compilation issues 2023-11-06 11:43:29 +01:00
Sébastien Loriot 8700394122 boost::mpl::if_ -> std::conditional 2023-09-24 22:57:20 +02:00
Sébastien Loriot d4d2225801 boost::is_reference -> std::is_reference 2023-04-23 22:37:07 +02: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é 2331eb7cf4 Fix comment 2021-10-08 15:41:54 +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
Mael Rouxel-Labbé 0d66e19361 IO documentation fixes
See @sloriot's review:

https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Polgyon_soup_mesh_IO/2nd_round/Answer_to_review

(+ some commits before and after this one)
2020-07-24 17:06:00 +02:00
Mael Rouxel-Labbé 580a1efd5c Remove trailing whitespace / tabs 2020-05-22 15:31:50 +02:00
Sébastien Loriot 8bb22d5b2c extra run of the script to remove tabs and trailing whitespaces
right after the merge of the 5.0 release branch

+ manual fix of the files (indentation was changed in the meantime):
   * Spatial_sorting/include/CGAL/Multiscale_sort.h
   * Spatial_sorting/test/Spatial_sorting/test_multiscale.cpp
2020-03-26 14:26:59 +01:00
Mael Rouxel-Labbé c33e8b60d7 Merge remote-tracking branch 'maxgimeno/PMP-Default_pmap-maxGimeno' into CGAL_IO-maxGimeno 2020-03-17 09:33:19 +01:00
Mael Rouxel-Labbé 30d4754a04 Merge remote-tracking branch 'cgal/master' into CGAL_IO-maxGimeno 2020-03-17 09:03:12 +01:00
Mael Rouxel-Labbé bc84ca29a2 Remove obsolete comment 2020-03-09 10:18:43 +01:00
Mael Rouxel-Labbé d6bbf2bb5f Fix implementation of initialized index map getters 2020-03-04 11:56:50 +01:00
Mael Rouxel-Labbé 7e303f421f Add 'Is_writable_property_map'
Note the following:

'lvalue_pmap_tag' is annoying, because the property map is allowed to be non-mutable,
but boost::lvalue_property_map_tag is !always! defined as:
  struct lvalue_property_map_tag : public read_write_property_map_tag
so we can't just check that 'writable_property_map_tag' is a base of the the pmap's category.

Instead, this struct checks if the reference is non-const, which is not completely correct:
map[key] returning a non-const reference doesn't mean that 'put(map, key, val)' exists,
which is what a writable property map must define.
2020-03-04 09:02:13 +01:00
Maxime Gimeno 9a454ca7e2 Changes after review 2020-02-21 11:43:08 +01:00
Maxime Gimeno 077a129216 Merge remote-tracking branch 'cgal/master' into PMP-Default_pmap-maxGimeno 2020-02-21 10:34:14 +01:00
Maxime Gimeno 195d43bc5e Fix conversion warning 2020-02-20 16:49:54 +01:00
Maxime Gimeno cf6fec2bbb move using 2020-02-18 16:36:05 +01:00
Maxime Gimeno aeb44510f1 Fix doc about boost/CGAL property tags 2020-02-18 15:27:34 +01:00
Maxime Gimeno 9459df666d fix after review 2020-02-18 11:26:09 +01:00
Maxime Gimeno b9a8d50b66 add missing include 2020-02-17 11:18:42 +01:00
Maxime Gimeno 5538786eff Merge remote-tracking branch 'cgal/master' into PMP-Default_pmap-maxGimeno 2020-02-14 15:00:54 +01:00
Laurent Rineau 141eed441c Merge pull request #4508 from MaelRL/BGL-Fix_graph_has_property_doc-GF
BGL: fix doc of graph_has_property
2020-02-14 14:39:16 +01:00
Maxime Gimeno 249eb85060 fixes 2020-02-14 14:25:28 +01:00
Mael Rouxel-Labbé 754cf35342 Fix graph_has_property not showing up in documentation
Consequence of the doc being split between doc/CGAL and include/CGAL...
2020-02-07 16:11:22 +01:00
Mael Rouxel-Labbé b4862c2361 Fix typo 2020-01-27 09:46:24 +01:00
Sébastien Loriot 52164b1fba First pass on removing license notice in header for LGPL files 2019-10-19 15:40:30 +02:00
Sébastien Loriot 7356421d80 introduce Commercial license SPDX tag 2019-10-19 12:15:19 +02:00
Sébastien Loriot 9bd9c68b83 update LGPL[23]+ and GPL[23]+ SPDX tags
ack -l --no-svg "SPDX-License-Identifier: GPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-3.0+/SPDX-License-Identifier: GPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-3.0+/SPDX-License-Identifier: LGPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: GPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-2.0+/SPDX-License-Identifier: GPL-2.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-2.0+/SPDX-License-Identifier: LGPL-2.0-or-later/"
2019-10-18 21:57:54 +02: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
Sébastien Loriot bfa9844b1a make default vpm of mesh convertible to default vpm of const mesh 2018-10-09 10:28:45 +02:00
Laurent Rineau 237735ab73 Merge pull request #2946 from afabri/CGAL-dependencies-GF
Move properties from Mesh_3 to BGL, Polyhedron_3 and Surface_mesh
2018-03-27 10:35:23 +02:00
Andreas Fabri b918ab4ba7 Move internal class from Polyhedron to BGL 2018-03-24 11:41:30 +01:00
Andreas Fabri 8c41669fb7 move properties from Mesh_3 to BGL, Polyhedron_3 and Surface_mesh 2018-03-22 16:37:37 +01:00
Maxime Gimeno 960025fb17 Replace or by and 2018-01-22 14:02:09 +01:00
Maxime Gimeno c3215b9331 Move graph_has_property from namespace boost to namespace CGAL and provide some doc for it. 2018-01-22 12:43:29 +01:00
Sébastien Loriot 0698f79aff add SPDX identifier for files under the LGPL-3+ license 2017-11-12 10:17:50 +01:00
Andreas Fabri 70b13af39c Do not pollute the boost namespace 2017-07-12 12:11:34 +02:00
Andreas Fabri 886bd840cf Make the dynamic property map an implementation detail 2017-07-11 20:32:23 +02:00
Andreas Fabri be45f81fc8 Add support for halfedges 2017-07-11 20:31:27 +02:00
Andreas Fabri 4ff981de70 Add generic vertex/edge/face propertymap for Surface_mesh and OpenMesh 2017-07-11 20:31:27 +02:00
Sébastien Loriot df886a0904 add missing include directive 2017-01-19 16:46:52 +01:00
Sébastien Loriot 3fa4abe869 move function to init index maps to BGL 2017-01-18 16:37:34 +01:00
Jane Tournois 73492e7767 add graph_has_property
a struct intended to check whether Graph has an internal property map
for the parameter tag `PropertyTag`
2016-09-22 12:05:51 +02:00
Sébastien Loriot 5c6b54257a the XXX_is_border properties are removed + add missing replacement functions 2014-07-22 12:00:15 +02:00
Sébastien Loriot 0b8314e28d the notion of border for a halfedge is not encoded using a property map 2014-07-21 22:30:14 +02:00
Andreas Fabri 3ad8f65d28 small fixes 2014-05-22 10:36:50 +02:00
Sébastien Loriot 91a5327fa8 change LGPLv2 -> LGPLv3 2011-10-10 13:48:25 +00:00
Sébastien Loriot 52317dd49f add python script (replace_CGAL_NAMESPACE.py) to replace CGAL_BEGIN_NAMESPACE and CGAL_END_NAMESPACE
by namespace CGAL { and } //namespace CGAL. in all .h and .cpp files
in a directory.
Apply it to all packages in the trunk
Remove macro definition from the config.h file.
2010-06-09 07:37:13 +00:00