mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 13:41:03 +00:00 
			
		
		
		
	SpatialEditor: uniform min/max of fov,znear,zfar
Clamp FOV to [0.01, 179], Znear and Zfar to [0.01, 10000]
This commit is contained in:
		
							parent
							
								
									7ac50b523b
								
							
						
					
					
						commit
						b8feae4db6
					
				
					 1 changed files with 16 additions and 21 deletions
				
			
		|  | @ -57,6 +57,12 @@ | ||||||
| 
 | 
 | ||||||
| #define FREELOOK_MIN_SPEED 0.1 | #define FREELOOK_MIN_SPEED 0.1 | ||||||
| 
 | 
 | ||||||
|  | #define MIN_Z 0.01 | ||||||
|  | #define MAX_Z 10000 | ||||||
|  | 
 | ||||||
|  | #define MIN_FOV 0.01 | ||||||
|  | #define MAX_FOV 179 | ||||||
|  | 
 | ||||||
| void SpatialEditorViewport::_update_camera() { | void SpatialEditorViewport::_update_camera() { | ||||||
| 	if (orthogonal) { | 	if (orthogonal) { | ||||||
| 		//camera->set_orthogonal(size.width*cursor.distance,get_znear(),get_zfar());
 | 		//camera->set_orthogonal(size.width*cursor.distance,get_znear(),get_zfar());
 | ||||||
|  | @ -153,26 +159,15 @@ int SpatialEditorViewport::get_selected_count() const { | ||||||
| 
 | 
 | ||||||
| float SpatialEditorViewport::get_znear() const { | float SpatialEditorViewport::get_znear() const { | ||||||
| 
 | 
 | ||||||
| 	float val = spatial_editor->get_znear(); | 	return CLAMP(spatial_editor->get_znear(), MIN_Z, MAX_Z); | ||||||
| 	if (val < 0.001) |  | ||||||
| 		val = 0.001; |  | ||||||
| 	return val; |  | ||||||
| } | } | ||||||
| float SpatialEditorViewport::get_zfar() const { | float SpatialEditorViewport::get_zfar() const { | ||||||
| 
 | 
 | ||||||
| 	float val = spatial_editor->get_zfar(); | 	return CLAMP(spatial_editor->get_zfar(), MIN_Z, MAX_Z); | ||||||
| 	if (val < 0.001) |  | ||||||
| 		val = 0.001; |  | ||||||
| 	return val; |  | ||||||
| } | } | ||||||
| float SpatialEditorViewport::get_fov() const { | float SpatialEditorViewport::get_fov() const { | ||||||
| 
 | 
 | ||||||
| 	float val = spatial_editor->get_fov(); | 	return CLAMP(spatial_editor->get_fov(), MIN_FOV, MAX_FOV); | ||||||
| 	if (val < 0.001) |  | ||||||
| 		val = 0.001; |  | ||||||
| 	if (val > 89) |  | ||||||
| 		val = 89; |  | ||||||
| 	return val; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Transform SpatialEditorViewport::_get_camera_transform() const { | Transform SpatialEditorViewport::_get_camera_transform() const { | ||||||
|  | @ -3933,27 +3928,27 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { | ||||||
| 	settings_dialog->set_title(TTR("Viewport Settings")); | 	settings_dialog->set_title(TTR("Viewport Settings")); | ||||||
| 	add_child(settings_dialog); | 	add_child(settings_dialog); | ||||||
| 	settings_vbc = memnew(VBoxContainer); | 	settings_vbc = memnew(VBoxContainer); | ||||||
| 	settings_vbc->set_custom_minimum_size(Size2(200, 0)); | 	settings_vbc->set_custom_minimum_size(Size2(200, 0) * EDSCALE); | ||||||
| 	settings_dialog->add_child(settings_vbc); | 	settings_dialog->add_child(settings_vbc); | ||||||
| 	//settings_dialog->set_child_rect(settings_vbc);
 | 	//settings_dialog->set_child_rect(settings_vbc);
 | ||||||
| 
 | 
 | ||||||
| 	settings_fov = memnew(SpinBox); | 	settings_fov = memnew(SpinBox); | ||||||
| 	settings_fov->set_max(179); | 	settings_fov->set_max(MAX_FOV); | ||||||
| 	settings_fov->set_min(1); | 	settings_fov->set_min(MIN_FOV); | ||||||
| 	settings_fov->set_step(0.01); | 	settings_fov->set_step(0.01); | ||||||
| 	settings_fov->set_value(EDITOR_DEF("editors/3d/default_fov", 55.0)); | 	settings_fov->set_value(EDITOR_DEF("editors/3d/default_fov", 55.0)); | ||||||
| 	settings_vbc->add_margin_child(TTR("Perspective FOV (deg.):"), settings_fov); | 	settings_vbc->add_margin_child(TTR("Perspective FOV (deg.):"), settings_fov); | ||||||
| 
 | 
 | ||||||
| 	settings_znear = memnew(SpinBox); | 	settings_znear = memnew(SpinBox); | ||||||
| 	settings_znear->set_max(10000); | 	settings_znear->set_max(MAX_Z); | ||||||
| 	settings_znear->set_min(0.1); | 	settings_znear->set_min(MIN_Z); | ||||||
| 	settings_znear->set_step(0.01); | 	settings_znear->set_step(0.01); | ||||||
| 	settings_znear->set_value(EDITOR_DEF("editors/3d/default_z_near", 0.1)); | 	settings_znear->set_value(EDITOR_DEF("editors/3d/default_z_near", 0.1)); | ||||||
| 	settings_vbc->add_margin_child(TTR("View Z-Near:"), settings_znear); | 	settings_vbc->add_margin_child(TTR("View Z-Near:"), settings_znear); | ||||||
| 
 | 
 | ||||||
| 	settings_zfar = memnew(SpinBox); | 	settings_zfar = memnew(SpinBox); | ||||||
| 	settings_zfar->set_max(10000); | 	settings_zfar->set_max(MAX_Z); | ||||||
| 	settings_zfar->set_min(0.1); | 	settings_zfar->set_min(MIN_Z); | ||||||
| 	settings_zfar->set_step(0.01); | 	settings_zfar->set_step(0.01); | ||||||
| 	settings_zfar->set_value(EDITOR_DEF("editors/3d/default_z_far", 1500)); | 	settings_zfar->set_value(EDITOR_DEF("editors/3d/default_z_far", 1500)); | ||||||
| 	settings_vbc->add_margin_child(TTR("View Z-Far:"), settings_zfar); | 	settings_vbc->add_margin_child(TTR("View Z-Far:"), settings_zfar); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Poommetee Ketson
						Poommetee Ketson