mirror of https://github.com/CGAL/cgal
- 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... |
||
|---|---|---|
| .. | ||
| data | ||
| data-autoref | ||
| data-clip | ||
| data-coref | ||
| data_degeneracies | ||
| data_polygon_soup | ||
| data_repair | ||
| data_slicer | ||
| data_snapping | ||
| data_stitching | ||
| CMakeLists.txt | ||
| autorefinement_sm.cpp | ||
| connected_component_polyhedron.cpp | ||
| connected_component_surface_mesh.cpp | ||
| extrude_test.cpp | ||
| fairing_test.cpp | ||
| measures_test.cpp | ||
| orient_polygon_mesh_test.cpp | ||
| orient_polygon_soup_test.cpp | ||
| pmp_compute_normals_test.cpp | ||
| pmp_do_intersect_test.cpp | ||
| point_inside_helpers.h | ||
| point_inside_polyhedron_boundary_test.cpp | ||
| point_inside_surface_mesh_test.cpp | ||
| polygon_mesh_slicer_test.cpp | ||
| remeshing_test.cpp | ||
| remeshing_test_P_SM_OM.cpp | ||
| remeshing_with_isolated_constraints_test.cpp | ||
| run_test_corefinement_bool_op_full.sh | ||
| self_intersection_polyhedron_test.cpp | ||
| self_intersection_surface_mesh_test.cpp | ||
| surface_intersection_sm_poly.cpp | ||
| test_autorefinement.cmd | ||
| test_autorefinement.cpp | ||
| test_coref_epic_points_identity.cpp | ||
| test_corefine.cmd | ||
| test_corefine.cpp | ||
| test_corefinement_and_constraints.cpp | ||
| test_corefinement_bool_op.cmd | ||
| test_corefinement_bool_op.cpp | ||
| test_corefinement_bool_op_full.cmd | ||
| test_detect_features.cpp | ||
| test_does_bound_a_volume.cmd | ||
| test_does_bound_a_volume.cpp | ||
| test_is_polygon_soup_a_polygon_mesh.cpp | ||
| test_merging_border_vertices.cpp | ||
| test_mesh_smoothing.cpp | ||
| test_orient_cc.cpp | ||
| test_pmp_clip.cpp | ||
| test_pmp_collision_detection.cpp | ||
| test_pmp_distance.cmd | ||
| test_pmp_distance.cpp | ||
| test_pmp_locate.cpp | ||
| test_pmp_manifoldness.cpp | ||
| test_pmp_non_conforming_snapping.cpp | ||
| test_pmp_remove_border_edge.cpp | ||
| test_pmp_repair_degeneracies.cpp | ||
| test_pmp_repair_self_intersections.cpp | ||
| test_pmp_snapping.cpp | ||
| test_pmp_transform.cpp | ||
| test_remove_caps_needles.cpp | ||
| test_repair_polygon_soup.cpp | ||
| test_shape_predicates.cpp | ||
| test_shape_smoothing.cpp | ||
| test_simplify_polylines_pmp.cmd | ||
| test_simplify_polylines_pmp.cpp | ||
| test_split_volume.cpp | ||
| test_stitching.cpp | ||
| triangulate_faces_hole_filling_all_search_test.cpp | ||
| triangulate_faces_hole_filling_dt3_test.cpp | ||
| triangulate_faces_test.cpp | ||
| triangulate_hole_Polyhedron_3_no_delaunay_test.cpp | ||
| triangulate_hole_Polyhedron_3_test.cpp | ||
| triangulate_hole_polyline_test.cpp | ||