mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 12:41:20 -06:00 
			
		
		
		
	Merge branch 'convex_hull' of https://github.com/prusa3d/Slic3r into gizmos_3d
This commit is contained in:
		
						commit
						115744b38d
					
				
					 3 changed files with 11 additions and 7 deletions
				
			
		|  | @ -204,6 +204,7 @@ GLVolume::GLVolume(float r, float g, float b, float a) | |||
|     , m_scale_factor(1.0f) | ||||
|     , m_transformed_bounding_box_dirty(true) | ||||
|     , m_transformed_convex_hull_bounding_box_dirty(true) | ||||
|     , m_convex_hull(nullptr) | ||||
|     , composite_id(-1) | ||||
|     , select_group_id(-1) | ||||
|     , drag_group_id(-1) | ||||
|  | @ -293,7 +294,7 @@ void GLVolume::set_scale_factor(float scale_factor) | |||
| 
 | ||||
| void GLVolume::set_convex_hull(const TriangleMesh& convex_hull) | ||||
| { | ||||
|     m_convex_hull = convex_hull; | ||||
|     m_convex_hull = &convex_hull; | ||||
| } | ||||
| 
 | ||||
| std::vector<float> GLVolume::world_matrix() const | ||||
|  | @ -322,8 +323,8 @@ BoundingBoxf3 GLVolume::transformed_convex_hull_bounding_box() const | |||
| { | ||||
|     if (m_transformed_convex_hull_bounding_box_dirty) | ||||
|     { | ||||
|         if (m_convex_hull.stl.stats.number_of_facets > 0) | ||||
|             m_transformed_convex_hull_bounding_box = m_convex_hull.transformed_bounding_box(world_matrix()); | ||||
|         if ((m_convex_hull != nullptr) && (m_convex_hull->stl.stats.number_of_facets > 0)) | ||||
|             m_transformed_convex_hull_bounding_box = m_convex_hull->transformed_bounding_box(world_matrix()); | ||||
|         else | ||||
|             m_transformed_convex_hull_bounding_box = bounding_box.transformed(world_matrix()); | ||||
| 
 | ||||
|  | @ -747,7 +748,6 @@ int GLVolumeCollection::load_wipe_tower_preview( | |||
|     v.drag_group_id = obj_idx * 1000; | ||||
|     v.is_wipe_tower = true; | ||||
|     v.shader_outside_printer_detection_enabled = ! size_unknown; | ||||
|     v.set_convex_hull(mesh.convex_hull_3d()); | ||||
|     return int(this->volumes.size() - 1); | ||||
| } | ||||
| 
 | ||||
|  | @ -833,7 +833,7 @@ bool GLVolumeCollection::check_outside_state(const DynamicPrintConfig* config, M | |||
| 
 | ||||
|     for (GLVolume* volume : this->volumes) | ||||
|     { | ||||
|         if ((volume != nullptr) && !volume->is_modifier) | ||||
|         if ((volume != nullptr) && !volume->is_modifier && (!volume->is_wipe_tower || (volume->is_wipe_tower && volume->shader_outside_printer_detection_enabled))) | ||||
|         { | ||||
|             const BoundingBoxf3& bb = volume->transformed_convex_hull_bounding_box(); | ||||
|             bool contained = print_volume.contains(bb); | ||||
|  |  | |||
|  | @ -264,8 +264,8 @@ private: | |||
|     mutable BoundingBoxf3 m_transformed_bounding_box; | ||||
|     // Whether or not is needed to recalculate the transformed bounding box.
 | ||||
|     mutable bool          m_transformed_bounding_box_dirty; | ||||
|     // Convex hull of the original mesh, if any.
 | ||||
|     TriangleMesh          m_convex_hull; | ||||
|     // Pointer to convex hull of the original mesh, if any.
 | ||||
|     const TriangleMesh*   m_convex_hull; | ||||
|     // Bounding box of this volume, in unscaled coordinates.
 | ||||
|     mutable BoundingBoxf3 m_transformed_convex_hull_bounding_box; | ||||
|     // Whether or not is needed to recalculate the transformed convex hull bounding box.
 | ||||
|  |  | |||
|  | @ -3232,6 +3232,10 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) | |||
|             } | ||||
|              | ||||
|             _on_move(volume_idxs); | ||||
| 
 | ||||
|             // force re-selection of the wipe tower, if needed
 | ||||
|             if ((volume_idxs.size() == 1) && m_volumes.volumes[volume_idxs[0]]->is_wipe_tower) | ||||
|                 select_volume(volume_idxs[0]); | ||||
|         } | ||||
|         else if (evt.LeftUp() && !m_mouse.dragging && (m_hover_volume_id == -1) && !gizmos_overlay_contains_mouse && !m_gizmos.is_dragging() && !is_layers_editing_enabled()) | ||||
|         { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Enrico Turri
						Enrico Turri