mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	Little cleanup to slice(): only used scaled coordinates in slicing instead of mixing them with unscaled
This commit is contained in:
		
							parent
							
								
									51af10da4f
								
							
						
					
					
						commit
						bac743a602
					
				
					 1 changed files with 5 additions and 3 deletions
				
			
		| 
						 | 
					@ -284,8 +284,7 @@ TriangleMesh::slice(const std::vector<double> &z, std::vector<Polygons>* layers)
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        for (std::vector<double>::const_iterator it = min_layer; it != max_layer + 1; ++it) {
 | 
					        for (std::vector<double>::const_iterator it = min_layer; it != max_layer + 1; ++it) {
 | 
				
			||||||
            std::vector<double>::size_type layer_idx = it - z.begin();
 | 
					            std::vector<double>::size_type layer_idx = it - z.begin();
 | 
				
			||||||
            double slice_z_u = *it;   // unscaled
 | 
					            double slice_z = *it / SCALING_FACTOR;
 | 
				
			||||||
            double slice_z = slice_z_u / SCALING_FACTOR;
 | 
					 | 
				
			||||||
            std::vector<IntersectionPoint> points;
 | 
					            std::vector<IntersectionPoint> points;
 | 
				
			||||||
            std::vector< std::vector<IntersectionPoint>::size_type > points_on_layer;
 | 
					            std::vector< std::vector<IntersectionPoint>::size_type > points_on_layer;
 | 
				
			||||||
            bool found_horizontal_edge = false;
 | 
					            bool found_horizontal_edge = false;
 | 
				
			||||||
| 
						 | 
					@ -313,8 +312,11 @@ TriangleMesh::slice(const std::vector<double> &z, std::vector<Polygons>* layers)
 | 
				
			||||||
                    
 | 
					                    
 | 
				
			||||||
                    /* We assume that this method is never being called for horizontal
 | 
					                    /* We assume that this method is never being called for horizontal
 | 
				
			||||||
                       facets, so no other edge is going to be on this layer. */
 | 
					                       facets, so no other edge is going to be on this layer. */
 | 
				
			||||||
 | 
					                    stl_vertex* v0 = &v_scaled_shared[ this->stl.v_indices[facet_idx].vertex[0] ];
 | 
				
			||||||
 | 
					                    stl_vertex* v1 = &v_scaled_shared[ this->stl.v_indices[facet_idx].vertex[1] ];
 | 
				
			||||||
 | 
					                    stl_vertex* v2 = &v_scaled_shared[ this->stl.v_indices[facet_idx].vertex[2] ];
 | 
				
			||||||
                    IntersectionLine line;
 | 
					                    IntersectionLine line;
 | 
				
			||||||
                    if (facet->vertex[0].z < slice_z_u || facet->vertex[1].z < slice_z_u || facet->vertex[2].z < slice_z_u) {
 | 
					                    if (v0->z < slice_z || v1->z < slice_z || v2->z < slice_z) {
 | 
				
			||||||
                        line.edge_type = feTop;
 | 
					                        line.edge_type = feTop;
 | 
				
			||||||
                        std::swap(a, b);
 | 
					                        std::swap(a, b);
 | 
				
			||||||
                        std::swap(a_id, b_id);
 | 
					                        std::swap(a_id, b_id);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue