mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	Do reprojection also after netfabb repair
This commit is contained in:
		
							parent
							
								
									f7a43f9757
								
							
						
					
					
						commit
						f91c27b2ff
					
				
					 2 changed files with 19 additions and 10 deletions
				
			
		|  | @ -5,6 +5,7 @@ | |||
| #include "SupportPoint.hpp" | ||||
| #include "Hollowing.hpp" | ||||
| #include "EigenMesh3D.hpp" | ||||
| #include "libslic3r/Model.hpp" | ||||
| 
 | ||||
| #include <tbb/parallel_for.h> | ||||
| 
 | ||||
|  | @ -24,5 +25,21 @@ void reproject_support_points(const EigenMesh3D &mesh, std::vector<PointType> &p | |||
|     }); | ||||
| } | ||||
| 
 | ||||
| inline void reproject_points_and_holes(ModelObject *object) | ||||
| { | ||||
|     bool has_sppoints = !object->sla_support_points.empty(); | ||||
|     bool has_holes   = !object->sla_drain_holes.empty(); | ||||
| 
 | ||||
|     if (!object || (!has_holes && !has_sppoints)) return; | ||||
| 
 | ||||
|     EigenMesh3D emesh{object->raw_mesh()}; | ||||
| 
 | ||||
|     if (has_sppoints) | ||||
|         reproject_support_points(emesh, object->sla_support_points); | ||||
| 
 | ||||
|     if (has_holes) | ||||
|         reproject_support_points(emesh, object->sla_drain_holes); | ||||
| } | ||||
| 
 | ||||
| }} | ||||
| #endif // REPROJECTPOINTSONMESH_HPP
 | ||||
|  |  | |||
|  | @ -3124,16 +3124,7 @@ void Plater::priv::reload_from_disk() | |||
|                     old_model_object->delete_volume(old_model_object->volumes.size() - 1); | ||||
|                     old_model_object->ensure_on_bed(); | ||||
| 
 | ||||
|                     std::unique_ptr<sla::EigenMesh3D> emesh; | ||||
|                     if (!old_model_object->sla_support_points.empty()) { | ||||
|                         emesh = std::make_unique<sla::EigenMesh3D>(old_model_object->raw_mesh()); | ||||
|                         sla::reproject_support_points(*emesh, old_model_object->sla_support_points); | ||||
|                     } | ||||
| 
 | ||||
|                     if (!old_model_object->sla_drain_holes.empty()) { | ||||
|                         if (!emesh) emesh = std::make_unique<sla::EigenMesh3D>(old_model_object->raw_mesh()); | ||||
|                         sla::reproject_support_points(*emesh, old_model_object->sla_drain_holes); | ||||
|                     } | ||||
|                     sla::reproject_points_and_holes(old_model_object); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | @ -3189,6 +3180,7 @@ void Plater::priv::fix_through_netfabb(const int obj_idx, const int vol_idx/* = | |||
|     Plater::TakeSnapshot snapshot(q, _L("Fix Throught NetFabb")); | ||||
| 
 | ||||
|     fix_model_by_win10_sdk_gui(*model.objects[obj_idx], vol_idx); | ||||
|     sla::reproject_points_and_holes(model.objects[obj_idx]); | ||||
|     this->update(); | ||||
|     this->object_list_changed(); | ||||
|     this->schedule_background_process(); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 tamasmeszaros
						tamasmeszaros