mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 04:31:15 -06:00 
			
		
		
		
	Geometry info updated while using gizmos
This commit is contained in:
		
							parent
							
								
									266a4413bd
								
							
						
					
					
						commit
						ac7d21b50a
					
				
					 11 changed files with 120 additions and 24 deletions
				
			
		|  | @ -142,6 +142,24 @@ sub new { | |||
|         $self->rotate(rad2deg($angle_z), Z, 'absolute'); | ||||
|     }; | ||||
|      | ||||
| #=================================================================================================================================================== | ||||
|     # callback to update object's geometry info while using gizmos | ||||
|     my $on_update_geometry_info = sub { | ||||
|         my ($size_x, $size_y, $size_z, $scale_factor) = @_; | ||||
|      | ||||
|         my ($obj_idx, $object) = $self->selected_object; | ||||
|      | ||||
|         if ((defined $obj_idx) && ($self->{object_info_size})) { # have we already loaded the info pane? | ||||
|             $self->{object_info_size}->SetLabel(sprintf("%.2f x %.2f x %.2f", $size_x, $size_y, $size_z)); | ||||
|             my $model_object = $self->{model}->objects->[$obj_idx]; | ||||
|             if (my $stats = $model_object->mesh_stats) { | ||||
|                 $self->{object_info_volume}->SetLabel(sprintf('%.2f', $stats->{volume} * $scale_factor**3)); | ||||
|             } | ||||
|         } | ||||
|     }; | ||||
| #=================================================================================================================================================== | ||||
| 
 | ||||
|      | ||||
|     # Initialize 3D plater | ||||
|     if ($Slic3r::GUI::have_OpenGL) { | ||||
|         $self->{canvas3D} = Slic3r::GUI::Plater::3D->new($self->{preview_notebook}, $self->{objects}, $self->{model}, $self->{print}, $self->{config}); | ||||
|  | @ -160,6 +178,9 @@ sub new { | |||
|         Slic3r::GUI::_3DScene::register_on_enable_action_buttons_callback($self->{canvas3D}, $enable_action_buttons); | ||||
|         Slic3r::GUI::_3DScene::register_on_gizmo_scale_uniformly_callback($self->{canvas3D}, $on_gizmo_scale_uniformly); | ||||
|         Slic3r::GUI::_3DScene::register_on_gizmo_rotate_callback($self->{canvas3D}, $on_gizmo_rotate); | ||||
| #=================================================================================================================================================== | ||||
|         Slic3r::GUI::_3DScene::register_on_update_geometry_info_callback($self->{canvas3D}, $on_update_geometry_info); | ||||
| #=================================================================================================================================================== | ||||
|         Slic3r::GUI::_3DScene::enable_gizmos($self->{canvas3D}, 1); | ||||
|         Slic3r::GUI::_3DScene::enable_shader($self->{canvas3D}, 1); | ||||
|         Slic3r::GUI::_3DScene::enable_force_zoom_to_bed($self->{canvas3D}, 1); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Enrico Turri
						Enrico Turri