mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 04:31:15 -06:00 
			
		
		
		
	Merge branch 'master' of https://github.com/prusa3d/Slic3r into et_multivolume_models
This commit is contained in:
		
						commit
						ead45c4fb2
					
				
					 5 changed files with 19 additions and 13 deletions
				
			
		|  | @ -175,6 +175,11 @@ struct AMFParserContext | |||
|         bool  mirrory_set; | ||||
|         float mirrorz; | ||||
|         bool  mirrorz_set; | ||||
| 
 | ||||
|         bool anything_set() const { return deltax_set || deltay_set || deltaz_set || | ||||
|                                            rx_set || ry_set || rz_set || | ||||
|                                            scalex_set || scaley_set || scalez_set || | ||||
|                                            mirrorx_set || mirrory_set || mirrorz_set; } | ||||
|     }; | ||||
| 
 | ||||
|     struct Object { | ||||
|  | @ -644,11 +649,7 @@ void AMFParserContext::endDocument() | |||
|             continue; | ||||
|         } | ||||
|         for (const Instance &instance : object.second.instances) | ||||
| #if ENABLE_VOLUMES_CENTERING_FIXES | ||||
|         { | ||||
| #else | ||||
|             if (instance.deltax_set && instance.deltay_set) { | ||||
| #endif // ENABLE_VOLUMES_CENTERING_FIXES
 | ||||
|             if (instance.anything_set()) { | ||||
|                 ModelInstance *mi = m_model.objects[object.second.idx]->add_instance(); | ||||
|                 mi->set_offset(Vec3d(instance.deltax_set ? (double)instance.deltax : 0.0, instance.deltay_set ? (double)instance.deltay : 0.0, instance.deltaz_set ? (double)instance.deltaz : 0.0)); | ||||
|                 mi->set_rotation(Vec3d(instance.rx_set ? (double)instance.rx : 0.0, instance.ry_set ? (double)instance.ry : 0.0, instance.rz_set ? (double)instance.rz : 0.0)); | ||||
|  |  | |||
|  | @ -2293,11 +2293,13 @@ int GLCanvas3D::check_volumes_outside_state() const | |||
|     return (int)state; | ||||
| } | ||||
| 
 | ||||
| void GLCanvas3D::toggle_sla_auxiliaries_visibility(bool visible) | ||||
| void GLCanvas3D::toggle_sla_auxiliaries_visibility(bool visible, const ModelObject* mo, int instance_idx) | ||||
| { | ||||
|     for (GLVolume* vol : m_volumes.volumes) { | ||||
|         if (vol->composite_id.volume_id < 0) | ||||
|              vol->is_active = visible; | ||||
|         if ((mo == nullptr || m_model->objects[vol->composite_id.object_id] == mo) | ||||
|         && (instance_idx == -1 || vol->composite_id.instance_id == instance_idx) | ||||
|         && vol->composite_id.volume_id < 0) | ||||
|             vol->is_active = visible; | ||||
|     } | ||||
| 
 | ||||
|     m_render_sla_auxiliaries = visible; | ||||
|  | @ -2313,7 +2315,7 @@ void GLCanvas3D::toggle_model_objects_visibility(bool visible, const ModelObject | |||
|         } | ||||
|     } | ||||
|     if (visible && !mo) | ||||
|         toggle_sla_auxiliaries_visibility(true); | ||||
|         toggle_sla_auxiliaries_visibility(true, mo, instance_idx); | ||||
| 
 | ||||
|     if (!mo && !visible && !m_model->objects.empty() && (m_model->objects.size() > 1 || m_model->objects.front()->instances.size() > 1)) | ||||
|         _set_warning_texture(WarningTexture::SomethingNotShown, true); | ||||
|  |  | |||
|  | @ -584,6 +584,9 @@ private: | |||
|     bool m_regenerate_volumes; | ||||
|     bool m_moving; | ||||
|     bool m_tab_down; | ||||
| 
 | ||||
|     // Following variable is obsolete and it should be safe to remove it.
 | ||||
|     // I just don't want to do it now before a release (Lukas Matena 24.3.2019)
 | ||||
|     bool m_render_sla_auxiliaries; | ||||
| 
 | ||||
|     std::string m_color_by; | ||||
|  | @ -610,7 +613,7 @@ public: | |||
|     void reset_volumes(); | ||||
|     int check_volumes_outside_state() const; | ||||
| 
 | ||||
|     void toggle_sla_auxiliaries_visibility(bool visible); | ||||
|     void toggle_sla_auxiliaries_visibility(bool visible, const ModelObject* mo = nullptr, int instance_idx = -1); | ||||
|     void toggle_model_objects_visibility(bool visible, const ModelObject* mo = nullptr, int instance_idx = -1); | ||||
| 
 | ||||
|     void set_config(const DynamicPrintConfig* config); | ||||
|  |  | |||
|  | @ -666,7 +666,7 @@ RENDER_AGAIN: | |||
|     m_imgui->end(); | ||||
| 
 | ||||
|     if (m_editing_mode != m_old_editing_state) { // user toggled between editing/non-editing mode
 | ||||
|         m_parent.toggle_sla_auxiliaries_visibility(!m_editing_mode); | ||||
|         m_parent.toggle_sla_auxiliaries_visibility(!m_editing_mode, m_model_object, m_active_instance); | ||||
|         force_refresh = true; | ||||
|     } | ||||
|     m_old_editing_state = m_editing_mode; | ||||
|  |  | |||
|  | @ -1713,7 +1713,7 @@ std::vector<size_t> Plater::priv::load_model_objects(const ModelObjectPtrs &mode | |||
|             object->center_around_origin(); | ||||
|             new_instances.emplace_back(object->add_instance()); | ||||
| #else /* AUTOPLACEMENT_ON_LOAD */ | ||||
|             // if object has no defined position(s) we need to rearrange everything after loading               object->center_around_origin();
 | ||||
|             // if object has no defined position(s) we need to rearrange everything after loading
 | ||||
|             need_arrange = true; | ||||
|              // add a default instance and center object around origin  
 | ||||
|             object->center_around_origin();  // also aligns object to Z = 0 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Enrico Turri
						Enrico Turri