mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	a small cleanup
This commit is contained in:
		
							parent
							
								
									95abba5b96
								
							
						
					
					
						commit
						88648c8214
					
				
					 2 changed files with 31 additions and 13 deletions
				
			
		|  | @ -587,6 +587,23 @@ EigenMesh3D to_eigenmesh(const TriangleMesh& tmesh) { | |||
| 
 | ||||
| EigenMesh3D to_eigenmesh(const ModelObject& modelobj) { | ||||
|     auto&& rmesh = modelobj.raw_mesh(); | ||||
| 
 | ||||
|     // we need to transform the raw mesh...
 | ||||
|     // currently all the instances share the same x and y rotation and scaling
 | ||||
|     // so we have to extract those from e.g. the first instance and apply to the
 | ||||
|     // raw mesh. This is also true for the support points.
 | ||||
|     // BUT: when the support structure is spawned for each instance than it has
 | ||||
|     // to omit the X, Y rotation and scaling as those have been already applied
 | ||||
|     // or apply an inverse transformation on the support structure after it
 | ||||
|     // has been created.
 | ||||
| 
 | ||||
| //    auto rot = modelobj.instances.front()->get_rotation();
 | ||||
| //    auto scaling = modelobj.instances.front()->get_scaling_factor();
 | ||||
| 
 | ||||
| //    rmesh.rotate(float(rot(X)), Axis::X);
 | ||||
| //    rmesh.rotate(float(rot(Y)), Axis::Y);
 | ||||
| //    rmesh.scale(scaling);
 | ||||
| 
 | ||||
|     auto&& ret = to_eigenmesh(rmesh); | ||||
|     auto&& bb = rmesh.bounding_box(); | ||||
|     ret.ground_level = bb.min(Z); | ||||
|  | @ -635,9 +652,18 @@ PointSet support_points(const Model& model) { | |||
| PointSet support_points(const ModelObject& modelobject) | ||||
| { | ||||
|     PointSet ret(modelobject.sla_support_points.size(), 3); | ||||
|     auto rot = modelobject.instances.front()->get_rotation(); | ||||
| //    auto scaling = modelobject.instances.front()->get_scaling_factor();
 | ||||
| 
 | ||||
| //    Transform3d tr;
 | ||||
| //    tr.rotate(Eigen::AngleAxisd(rot(X), Vec3d::UnitX()) *
 | ||||
| //              Eigen::AngleAxisd(rot(Y), Vec3d::UnitY()));
 | ||||
| 
 | ||||
|     long i = 0; | ||||
|     for(const Vec3f& msource : modelobject.sla_support_points) { | ||||
|         ret.row(i++) = msource.cast<double>(); | ||||
|         Vec3d&& p = msource.cast<double>(); | ||||
| //        p = tr * p;
 | ||||
|         ret.row(i++) = p; | ||||
|     } | ||||
|     return ret; | ||||
| } | ||||
|  |  | |||
|  | @ -1875,21 +1875,13 @@ void Plater::priv::on_process_completed(wxCommandEvent &evt) | |||
|     case ptSLA: | ||||
|         // Update the SLAPrint from the current Model, so that the reload_scene()
 | ||||
|         // pulls the correct data.
 | ||||
| 
 | ||||
|         // FIXME: SLAPrint::apply is not ready for this. At this stage it would
 | ||||
|         // invalidate the previous result and the supports would not be available
 | ||||
|         // for rendering.
 | ||||
| //        if (this->update_background_process() & UPDATE_BACKGROUND_PROCESS_RESTART)
 | ||||
| //            this->schedule_background_process();
 | ||||
| 
 | ||||
|         { | ||||
| //        for(SLAPrintObject * po: sla_print.objects()) {
 | ||||
| //            TriangleMesh&& suppmesh = po->support_mesh();
 | ||||
| //            if(suppmesh.facets_count() > 0) {
 | ||||
| //                ModelObject* mo = model.add_object();
 | ||||
| //                for(const SLAPrintObject::Instance& inst : po->instances() ) {
 | ||||
| //                    mo->add_instance(*(mo->instances[inst.instance_id.id]));
 | ||||
| //                    mo->add_volume(suppmesh);
 | ||||
| //                }
 | ||||
| //            }
 | ||||
| //        }
 | ||||
|         } | ||||
|         _3DScene::reload_scene(canvas3D, true); | ||||
|         break; | ||||
|     } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 tamasmeszaros
						tamasmeszaros