Commit Graph

13 Commits

Author SHA1 Message Date
Laurent Rineau 621859b526 Rename Polyhedron demo to CGAL Lab
And announce it in the `CHANGES.md`.
2024-04-18 12:39:30 +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é 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é 1660611e76 Use local typenames directly 2021-10-08 13:23:38 +02:00
Mael Rouxel-Labbé df560987a6 Whitespace & cleaning changes 2021-10-08 12:13:43 +02:00
Dmitry Anisimov e2ea93dbc5 fixed wrong reference type in aabb tree 2021-01-19 13:06:16 +01:00
Dmitry Anisimov 3127190bcf marc's review 2020-12-08 12:48:04 +01:00
Dmitry Anisimov 209513dc56 fixed docs + a few code improvements 2020-07-31 15:58:38 +02:00
Sébastien Loriot 254d60f642 First pass on removing license notice in header for GPL files 2019-10-19 15:23:19 +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
Laurent Rineau 0241fdc3eb Compatibility with both Point_3 and Weighted_point_3 2019-02-11 13:46:06 +01:00
Laurent Rineau d216131c79 New undocumented AABB primitive: cells of a 3D triangulation
The `Scene_c3t3_item` from our 3D demos now uses an AABB tree of
cells, instead of an AABB tree of triangles. That divides the number
of primitives by 4, and save times:

Before:
```
C3t3 facets AABB tree built in 22.010006904602051 wall-clock seconds
Scene_c3t3_item_priv::computeIntersections in 0.50893402099609375 wall-clock seconds
```

After:
```
C3t3 cells AABB tree built in 13.072829008102417 wall-clock seconds
Scene_c3t3_item_priv::computeIntersections in 0.41458892822265625 wall-clock seconds
```

The gain seems mostly in the construction of the tree (40% saved), and
the gain on the queries seems lower (about 20%).
2019-02-11 13:22:11 +01:00