changed SliceIndex to use floating point keys.

This commit is contained in:
tamasmeszaros 2018-11-28 15:02:23 +01:00
parent 34587bd00f
commit 729e35f1ff
2 changed files with 8 additions and 4 deletions

View File

@ -624,8 +624,10 @@ void SLAPrint::process()
auto& lyrs = levels[h]; // this initializes a new record
lyrs.emplace_back(oslices[i], po.m_instances);
float fh = float(double(h) * SCALING_FACTOR);
// now for the public slice index:
SLAPrintObject::SliceRecord& sr = po.m_slice_index[h];
SLAPrintObject::SliceRecord& sr = po.m_slice_index[fh];
// There should be only one slice layer for each print object
assert(sr.model_slices_idx == EMPTY_SLICE);
sr.model_slices_idx = i;
@ -641,7 +643,9 @@ void SLAPrint::process()
auto& lyrs = levels[h];
lyrs.emplace_back(sslices[i], po.m_instances);
SLAPrintObject::SliceRecord& sr = po.m_slice_index[h];
float fh = float(double(h) * SCALING_FACTOR);
SLAPrintObject::SliceRecord& sr = po.m_slice_index[fh];
assert(sr.support_slices_idx == EMPTY_SLICE);
sr.support_slices_idx = i;
}

View File

@ -92,8 +92,8 @@ public:
// levels of the model in scaled-clipper coordinates. The levels correspond
// to the z coordinate of the object coordinate system.
struct SliceRecord {
using Key = long long;
inline static float scale_back(Key h) { return float(h * SCALING_FACTOR); }
using Key = float;
// inline static float scale_back(Key h) { return float(h * SCALING_FACTOR); }
using Idx = size_t;
static const Idx NONE = Idx(-1); // this will be the max limit of size_t