mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	changed SliceIndex to use floating point keys.
This commit is contained in:
		
							parent
							
								
									34587bd00f
								
							
						
					
					
						commit
						729e35f1ff
					
				
					 2 changed files with 8 additions and 4 deletions
				
			
		| 
						 | 
					@ -624,8 +624,10 @@ void SLAPrint::process()
 | 
				
			||||||
            auto& lyrs = levels[h]; // this initializes a new record
 | 
					            auto& lyrs = levels[h]; // this initializes a new record
 | 
				
			||||||
            lyrs.emplace_back(oslices[i], po.m_instances);
 | 
					            lyrs.emplace_back(oslices[i], po.m_instances);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            float fh = float(double(h) * SCALING_FACTOR);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // now for the public slice index:
 | 
					            // 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
 | 
					            // There should be only one slice layer for each print object
 | 
				
			||||||
            assert(sr.model_slices_idx == EMPTY_SLICE);
 | 
					            assert(sr.model_slices_idx == EMPTY_SLICE);
 | 
				
			||||||
            sr.model_slices_idx = i;
 | 
					            sr.model_slices_idx = i;
 | 
				
			||||||
| 
						 | 
					@ -641,7 +643,9 @@ void SLAPrint::process()
 | 
				
			||||||
                auto& lyrs = levels[h];
 | 
					                auto& lyrs = levels[h];
 | 
				
			||||||
                lyrs.emplace_back(sslices[i], po.m_instances);
 | 
					                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);
 | 
					                assert(sr.support_slices_idx == EMPTY_SLICE);
 | 
				
			||||||
                sr.support_slices_idx = i;
 | 
					                sr.support_slices_idx = i;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -92,8 +92,8 @@ public:
 | 
				
			||||||
    // levels of the model in scaled-clipper coordinates. The levels correspond
 | 
					    // levels of the model in scaled-clipper coordinates. The levels correspond
 | 
				
			||||||
    // to the z coordinate of the object coordinate system.
 | 
					    // to the z coordinate of the object coordinate system.
 | 
				
			||||||
    struct SliceRecord {
 | 
					    struct SliceRecord {
 | 
				
			||||||
        using Key = long long;
 | 
					        using Key = float;
 | 
				
			||||||
        inline static float scale_back(Key h) { return float(h * SCALING_FACTOR); }
 | 
					//        inline static float scale_back(Key h) { return float(h * SCALING_FACTOR); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        using Idx = size_t;
 | 
					        using Idx = size_t;
 | 
				
			||||||
        static const Idx NONE = Idx(-1); // this will be the max limit of size_t
 | 
					        static const Idx NONE = Idx(-1); // this will be the max limit of size_t
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue