mirror of https://github.com/CGAL/cgal
Merge pull request #8028 from mglisse/Triangulation-dim_8bit-glisse
Store index/dimension in 8 bits
This commit is contained in:
commit
c21128e652
|
|
@ -76,6 +76,9 @@ Release date: October 2023
|
||||||
- Added three functions `vertices()` to the class `Triangulation_3`.
|
- Added three functions `vertices()` to the class `Triangulation_3`.
|
||||||
Each of them returns an array containing the vertices of the given triangulation simplex.
|
Each of them returns an array containing the vertices of the given triangulation simplex.
|
||||||
|
|
||||||
|
### [dD Triangulations](https://doc.cgal.org/6.0/Manual/packages.html#PkgTriangulations)
|
||||||
|
- **Breaking change**: `CGAL::TDS_full_cell_mirror_storage_policy` is now unsupported in dimension larger than 127.
|
||||||
|
|
||||||
[Release 5.6](https://github.com/CGAL/cgal/releases/tag/v5.6)
|
[Release 5.6](https://github.com/CGAL/cgal/releases/tag/v5.6)
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ indices are not stored).
|
||||||
<LI>`CGAL::TDS_full_cell_default_storage_policy`. In that case, the mirror
|
<LI>`CGAL::TDS_full_cell_default_storage_policy`. In that case, the mirror
|
||||||
indices are not stored.
|
indices are not stored.
|
||||||
<LI>`CGAL::TDS_full_cell_mirror_storage_policy`. In that case, the mirror
|
<LI>`CGAL::TDS_full_cell_mirror_storage_policy`. In that case, the mirror
|
||||||
indices are stored.
|
indices are stored. This last policy is not supported when the dimension is larger than 127.
|
||||||
</UL>
|
</UL>
|
||||||
See the user manual for how to choose the second option.
|
See the user manual for how to choose the second option.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,8 @@
|
||||||
|
|
||||||
#include <CGAL/license/Triangulation.h>
|
#include <CGAL/license/Triangulation.h>
|
||||||
|
|
||||||
|
|
||||||
#include <CGAL/TDS_full_cell_default_storage_policy.h>
|
#include <CGAL/TDS_full_cell_default_storage_policy.h>
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
|
|
@ -30,7 +30,7 @@ struct TFC_data< Vertex_handle, Full_cell_handle, Maximal_dimension, TDS_full_
|
||||||
typedef TFC_data< Vertex_handle, Full_cell_handle, Maximal_dimension, TDS_full_cell_default_storage_policy > Base;
|
typedef TFC_data< Vertex_handle, Full_cell_handle, Maximal_dimension, TDS_full_cell_default_storage_policy > Base;
|
||||||
typedef typename Base::Vertex_handle_array Vertex_handle_array;
|
typedef typename Base::Vertex_handle_array Vertex_handle_array;
|
||||||
typedef typename Base::Full_cell_handle_array Full_cell_handle_array;
|
typedef typename Base::Full_cell_handle_array Full_cell_handle_array;
|
||||||
typedef typename internal::S_or_D_array< int, typename Base::Dimen_plus > Int_array;
|
typedef typename internal::S_or_D_array< std::int_least8_t, typename Base::Dimen_plus > Int_array;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Int_array mirror_vertices_;
|
Int_array mirror_vertices_;
|
||||||
|
|
@ -42,7 +42,7 @@ public:
|
||||||
|
|
||||||
void set_mirror_index(const int i, const int index)
|
void set_mirror_index(const int i, const int index)
|
||||||
{
|
{
|
||||||
mirror_vertices_[i] = index;
|
mirror_vertices_[i] = static_cast<std::int_least8_t>(index);
|
||||||
}
|
}
|
||||||
int mirror_index(const int i) const
|
int mirror_index(const int i) const
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue