|
@@ -860,10 +860,19 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
|
|
_edit.snap=false;
|
|
_edit.snap=false;
|
|
_edit.mode=TRANSFORM_NONE;
|
|
_edit.mode=TRANSFORM_NONE;
|
|
|
|
|
|
|
|
+
|
|
//gizmo has priority over everything
|
|
//gizmo has priority over everything
|
|
|
|
|
|
|
|
+ bool can_select_gizmos=true;
|
|
|
|
+
|
|
|
|
+ {
|
|
|
|
+ int idx = view_menu->get_popup()->get_item_index(VIEW_GIZMOS);
|
|
|
|
+ can_select_gizmos = view_menu->get_popup()->is_item_checked( idx );
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
- if (spatial_editor->get_selected()) {
|
|
|
|
|
|
+ if (can_select_gizmos && spatial_editor->get_selected()) {
|
|
|
|
|
|
Ref<SpatialEditorGizmo> seg = spatial_editor->get_selected()->get_gizmo();
|
|
Ref<SpatialEditorGizmo> seg = spatial_editor->get_selected()->get_gizmo();
|
|
if (seg.is_valid()) {
|
|
if (seg.is_valid()) {
|
|
@@ -1934,6 +1943,18 @@ void SpatialEditorViewport::_menu_option(int p_option) {
|
|
view_menu->get_popup()->set_item_checked( idx, current );
|
|
view_menu->get_popup()->set_item_checked( idx, current );
|
|
|
|
|
|
} break;
|
|
} break;
|
|
|
|
+ case VIEW_GIZMOS: {
|
|
|
|
+
|
|
|
|
+ int idx = view_menu->get_popup()->get_item_index(VIEW_GIZMOS);
|
|
|
|
+ bool current = view_menu->get_popup()->is_item_checked( idx );
|
|
|
|
+ current=!current;
|
|
|
|
+ if (current)
|
|
|
|
+ camera->set_visible_layers( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+index))|(1<<GIZMO_EDIT_LAYER) );
|
|
|
|
+ else
|
|
|
|
+ camera->set_visible_layers( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+index)) );
|
|
|
|
+ view_menu->get_popup()->set_item_checked( idx, current );
|
|
|
|
+
|
|
|
|
+ } break;
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2115,6 +2136,9 @@ void SpatialEditorViewport::reset() {
|
|
cursor.distance=4;
|
|
cursor.distance=4;
|
|
cursor.region_select=false;
|
|
cursor.region_select=false;
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, EditorNode *p_editor, int p_index) {
|
|
SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, EditorNode *p_editor, int p_index) {
|
|
@@ -2139,7 +2163,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed
|
|
surface->set_area_as_parent_rect();
|
|
surface->set_area_as_parent_rect();
|
|
camera = memnew(Camera);
|
|
camera = memnew(Camera);
|
|
camera->set_disable_gizmo(true);
|
|
camera->set_disable_gizmo(true);
|
|
- camera->set_visible_layers( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+p_index)) );
|
|
|
|
|
|
+ camera->set_visible_layers( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+p_index))|(1<<GIZMO_EDIT_LAYER) );
|
|
//camera->set_environment(SpatialEditor::get_singleton()->get_viewport_environment());
|
|
//camera->set_environment(SpatialEditor::get_singleton()->get_viewport_environment());
|
|
viewport->add_child(camera);
|
|
viewport->add_child(camera);
|
|
camera->make_current();
|
|
camera->make_current();
|
|
@@ -2166,6 +2190,9 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed
|
|
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(VIEW_ENVIRONMENT),true);
|
|
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(VIEW_ENVIRONMENT),true);
|
|
view_menu->get_popup()->add_separator();
|
|
view_menu->get_popup()->add_separator();
|
|
view_menu->get_popup()->add_check_item("Audio Listener",VIEW_AUDIO_LISTENER);
|
|
view_menu->get_popup()->add_check_item("Audio Listener",VIEW_AUDIO_LISTENER);
|
|
|
|
+ view_menu->get_popup()->add_separator();
|
|
|
|
+ view_menu->get_popup()->add_check_item("Gizmos",VIEW_GIZMOS);
|
|
|
|
+ view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(VIEW_GIZMOS),true);
|
|
|
|
|
|
view_menu->get_popup()->add_separator();
|
|
view_menu->get_popup()->add_separator();
|
|
view_menu->get_popup()->add_item("Selection (F)",VIEW_CENTER_TO_SELECTION);
|
|
view_menu->get_popup()->add_item("Selection (F)",VIEW_CENTER_TO_SELECTION);
|
|
@@ -2362,11 +2389,16 @@ Dictionary SpatialEditor::get_state() const {
|
|
d["viewports"]=vpdata;
|
|
d["viewports"]=vpdata;
|
|
|
|
|
|
d["default_light"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_LIGHT) );;
|
|
d["default_light"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_LIGHT) );;
|
|
|
|
+ d["ambient_light_color"]=settings_ambient_color->get_color();
|
|
|
|
+
|
|
|
|
+ d["default_srgb"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_SRGB) );;
|
|
d["show_grid"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_GRID) );;
|
|
d["show_grid"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_GRID) );;
|
|
d["show_origin"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN) );;
|
|
d["show_origin"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN) );;
|
|
d["fov"]=get_fov();
|
|
d["fov"]=get_fov();
|
|
d["znear"]=get_znear();
|
|
d["znear"]=get_znear();
|
|
d["zfar"]=get_zfar();
|
|
d["zfar"]=get_zfar();
|
|
|
|
+ d["deflight_rot_x"]=settings_default_light_rot_x;
|
|
|
|
+ d["deflight_rot_y"]=settings_default_light_rot_y;
|
|
|
|
|
|
return d;
|
|
return d;
|
|
}
|
|
}
|
|
@@ -2407,11 +2439,12 @@ void SpatialEditor::set_state(const Dictionary& p_state) {
|
|
|
|
|
|
|
|
|
|
if (d.has("zfar"))
|
|
if (d.has("zfar"))
|
|
- settings_zfar->set_text(d["zfar"]);
|
|
|
|
|
|
+ settings_zfar->set_val(float(d["zfar"]));
|
|
if (d.has("znear"))
|
|
if (d.has("znear"))
|
|
- settings_znear->set_text(d["znear"]);
|
|
|
|
|
|
+ settings_znear->set_val(float(d["znear"]));
|
|
if (d.has("fov"))
|
|
if (d.has("fov"))
|
|
- settings_fov->set_text(d["fov"]);
|
|
|
|
|
|
+ settings_fov->set_val(float(d["fov"]));
|
|
|
|
+
|
|
if (d.has("default_light")) {
|
|
if (d.has("default_light")) {
|
|
bool use = d["default_light"];
|
|
bool use = d["default_light"];
|
|
|
|
|
|
@@ -2429,7 +2462,17 @@ void SpatialEditor::set_state(const Dictionary& p_state) {
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+ if (d.has("ambient_light_color")) {
|
|
|
|
+ settings_ambient_color->set_color(d["ambient_light_color"]);
|
|
|
|
+ viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,d["ambient_light_color"]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (d.has("default_srgb")) {
|
|
|
|
+ bool use = d["default_light"];
|
|
|
|
|
|
|
|
+ viewport_environment->set_enable_fx(Environment::FX_SRGB,use);
|
|
|
|
+ view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_SRGB), use );
|
|
|
|
+ }
|
|
if (d.has("show_grid")) {
|
|
if (d.has("show_grid")) {
|
|
bool use = d["show_grid"];
|
|
bool use = d["show_grid"];
|
|
|
|
|
|
@@ -2447,6 +2490,12 @@ void SpatialEditor::set_state(const Dictionary& p_state) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (d.has("deflight_rot_x"))
|
|
|
|
+ settings_default_light_rot_x=d["deflight_rot_x"];
|
|
|
|
+ if (d.has("deflight_rot_y"))
|
|
|
|
+ settings_default_light_rot_y=d["deflight_rot_y"];
|
|
|
|
+
|
|
|
|
+ _update_default_light_angle();
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
@@ -2609,10 +2658,28 @@ void SpatialEditor::_menu_item_pressed(int p_option) {
|
|
} else {
|
|
} else {
|
|
light_instance=VisualServer::get_singleton()->instance_create2(light,get_scene()->get_root()->get_world()->get_scenario());
|
|
light_instance=VisualServer::get_singleton()->instance_create2(light,get_scene()->get_root()->get_world()->get_scenario());
|
|
VisualServer::get_singleton()->instance_set_transform(light_instance,light_transform);
|
|
VisualServer::get_singleton()->instance_set_transform(light_instance,light_transform);
|
|
|
|
+
|
|
|
|
+ _update_default_light_angle();
|
|
}
|
|
}
|
|
|
|
|
|
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(p_option), light_instance.is_valid() );
|
|
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(p_option), light_instance.is_valid() );
|
|
|
|
|
|
|
|
+ } break;
|
|
|
|
+ case MENU_VIEW_USE_DEFAULT_SRGB: {
|
|
|
|
+
|
|
|
|
+ bool is_checked = view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(p_option) );
|
|
|
|
+
|
|
|
|
+ if (is_checked) {
|
|
|
|
+ viewport_environment->set_enable_fx(Environment::FX_SRGB,false);
|
|
|
|
+ } else {
|
|
|
|
+ viewport_environment->set_enable_fx(Environment::FX_SRGB,true);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ is_checked = ! is_checked;
|
|
|
|
+
|
|
|
|
+ view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(p_option), is_checked );
|
|
|
|
+
|
|
|
|
+
|
|
} break;
|
|
} break;
|
|
case MENU_VIEW_USE_1_VIEWPORT: {
|
|
case MENU_VIEW_USE_1_VIEWPORT: {
|
|
|
|
|
|
@@ -2824,7 +2891,7 @@ void SpatialEditor::_menu_item_pressed(int p_option) {
|
|
} break;
|
|
} break;
|
|
case MENU_VIEW_CAMERA_SETTINGS: {
|
|
case MENU_VIEW_CAMERA_SETTINGS: {
|
|
|
|
|
|
- settings_dialog->popup_centered(Size2(200,160));
|
|
|
|
|
|
+ settings_dialog->popup_centered(settings_vbc->get_combined_minimum_size()+Size2(50,50));
|
|
} break;
|
|
} break;
|
|
|
|
|
|
}
|
|
}
|
|
@@ -3233,13 +3300,15 @@ void SpatialEditor::_notification(int p_what) {
|
|
_menu_item_pressed(MENU_VIEW_USE_1_VIEWPORT);
|
|
_menu_item_pressed(MENU_VIEW_USE_1_VIEWPORT);
|
|
|
|
|
|
get_scene()->connect("node_removed",this,"_node_removed");
|
|
get_scene()->connect("node_removed",this,"_node_removed");
|
|
|
|
+ VS::get_singleton()->scenario_set_fallback_environment(get_viewport()->find_world()->get_scenario(),viewport_environment->get_rid());
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
if (p_what==NOTIFICATION_ENTER_SCENE) {
|
|
if (p_what==NOTIFICATION_ENTER_SCENE) {
|
|
|
|
|
|
gizmos = memnew( SpatialEditorGizmos );
|
|
gizmos = memnew( SpatialEditorGizmos );
|
|
_init_indicators();
|
|
_init_indicators();
|
|
-
|
|
|
|
|
|
+ _update_default_light_angle();
|
|
}
|
|
}
|
|
|
|
|
|
if (p_what==NOTIFICATION_EXIT_SCENE) {
|
|
if (p_what==NOTIFICATION_EXIT_SCENE) {
|
|
@@ -3374,7 +3443,8 @@ void SpatialEditor::_bind_methods() {
|
|
// ObjectTypeDB::bind_method("_update_selection",&SpatialEditor::_update_selection);
|
|
// ObjectTypeDB::bind_method("_update_selection",&SpatialEditor::_update_selection);
|
|
ObjectTypeDB::bind_method("_get_editor_data",&SpatialEditor::_get_editor_data);
|
|
ObjectTypeDB::bind_method("_get_editor_data",&SpatialEditor::_get_editor_data);
|
|
ObjectTypeDB::bind_method("_request_gizmo",&SpatialEditor::_request_gizmo);
|
|
ObjectTypeDB::bind_method("_request_gizmo",&SpatialEditor::_request_gizmo);
|
|
-
|
|
|
|
|
|
+ ObjectTypeDB::bind_method("_default_light_angle_input",&SpatialEditor::_default_light_angle_input);
|
|
|
|
+ ObjectTypeDB::bind_method("_update_ambient_light_color",&SpatialEditor::_update_ambient_light_color);
|
|
ObjectTypeDB::bind_method("_toggle_maximize_view",&SpatialEditor::_toggle_maximize_view);
|
|
ObjectTypeDB::bind_method("_toggle_maximize_view",&SpatialEditor::_toggle_maximize_view);
|
|
|
|
|
|
ADD_SIGNAL( MethodInfo("transform_key_request") );
|
|
ADD_SIGNAL( MethodInfo("transform_key_request") );
|
|
@@ -3384,9 +3454,9 @@ void SpatialEditor::_bind_methods() {
|
|
|
|
|
|
void SpatialEditor::clear() {
|
|
void SpatialEditor::clear() {
|
|
|
|
|
|
- settings_fov->set_text(EDITOR_DEF("3d_editor/default_fov",60.0));
|
|
|
|
- settings_znear->set_text(EDITOR_DEF("3d_editor/default_z_near",0.1));
|
|
|
|
- settings_zfar->set_text(EDITOR_DEF("3d_editor/default_z_far",1500.0));
|
|
|
|
|
|
+ settings_fov->set_val(EDITOR_DEF("3d_editor/default_fov",60.0));
|
|
|
|
+ settings_znear->set_val(EDITOR_DEF("3d_editor/default_z_near",0.1));
|
|
|
|
+ settings_zfar->set_val(EDITOR_DEF("3d_editor/default_z_far",1500.0));
|
|
|
|
|
|
for(int i=0;i<4;i++) {
|
|
for(int i=0;i<4;i++) {
|
|
viewports[i]->reset();
|
|
viewports[i]->reset();
|
|
@@ -3410,11 +3480,54 @@ void SpatialEditor::clear() {
|
|
viewports[i]->view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(SpatialEditorViewport::VIEW_AUDIO_LISTENER),i==0);
|
|
viewports[i]->view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(SpatialEditorViewport::VIEW_AUDIO_LISTENER),i==0);
|
|
viewports[i]->viewport->set_as_audio_listener(i==0);
|
|
viewports[i]->viewport->set_as_audio_listener(i==0);
|
|
}
|
|
}
|
|
|
|
+
|
|
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_GRID), true );
|
|
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_GRID), true );
|
|
|
|
|
|
|
|
+ settings_default_light_rot_x=Math_PI*0.3;
|
|
|
|
+ settings_default_light_rot_y=Math_PI*0.2;
|
|
|
|
+
|
|
|
|
+ viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,Color(0.15,0.15,0.15));
|
|
|
|
+ settings_ambient_color->set_color(Color(0.15,0.15,0.15));
|
|
|
|
+ if (!light_instance.is_valid())
|
|
|
|
+ _menu_item_pressed(MENU_VIEW_USE_DEFAULT_LIGHT);
|
|
|
|
+
|
|
|
|
+ _update_default_light_angle();
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+void SpatialEditor::_update_ambient_light_color(const Color& p_color) {
|
|
|
|
+
|
|
|
|
+ viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,settings_ambient_color->get_color());
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void SpatialEditor::_update_default_light_angle() {
|
|
|
|
+
|
|
|
|
+ Transform t;
|
|
|
|
+ t.basis.rotate(Vector3(1,0,0),settings_default_light_rot_x);
|
|
|
|
+ t.basis.rotate(Vector3(0,1,0),settings_default_light_rot_y);
|
|
|
|
+ settings_dlight->set_transform(t);
|
|
|
|
+ if (light_instance.is_valid()) {
|
|
|
|
+ VS::get_singleton()->instance_set_transform(light_instance,t);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void SpatialEditor::_default_light_angle_input(const InputEvent& p_event) {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (p_event.type==InputEvent::MOUSE_MOTION && p_event.mouse_motion.button_mask&(0x1|0x2|0x4)) {
|
|
|
|
+
|
|
|
|
+ settings_default_light_rot_y = Math::fposmod(settings_default_light_rot_y - p_event.mouse_motion.relative_x*0.01,Math_PI*2.0);
|
|
|
|
+ settings_default_light_rot_x = Math::fposmod(settings_default_light_rot_x - p_event.mouse_motion.relative_y*0.01,Math_PI*2.0);
|
|
|
|
+ _update_default_light_angle();
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
SpatialEditor::SpatialEditor(EditorNode *p_editor) {
|
|
SpatialEditor::SpatialEditor(EditorNode *p_editor) {
|
|
|
|
|
|
|
|
|
|
@@ -3510,6 +3623,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
|
|
p = view_menu->get_popup();
|
|
p = view_menu->get_popup();
|
|
|
|
|
|
p->add_check_item("Use Default Light",MENU_VIEW_USE_DEFAULT_LIGHT);
|
|
p->add_check_item("Use Default Light",MENU_VIEW_USE_DEFAULT_LIGHT);
|
|
|
|
+ p->add_check_item("Use Default sRGB",MENU_VIEW_USE_DEFAULT_SRGB);
|
|
p->add_separator();
|
|
p->add_separator();
|
|
|
|
|
|
p->add_check_item("1 Viewport",MENU_VIEW_USE_1_VIEWPORT,KEY_MASK_ALT+KEY_1);
|
|
p->add_check_item("1 Viewport",MENU_VIEW_USE_1_VIEWPORT,KEY_MASK_ALT+KEY_1);
|
|
@@ -3612,42 +3726,68 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
|
|
settings_dialog = memnew( ConfirmationDialog );
|
|
settings_dialog = memnew( ConfirmationDialog );
|
|
settings_dialog->set_title("Viewport Settings");
|
|
settings_dialog->set_title("Viewport Settings");
|
|
add_child(settings_dialog);
|
|
add_child(settings_dialog);
|
|
- l = memnew(Label);
|
|
|
|
- l->set_text("Perspective FOV (deg.):");
|
|
|
|
- l->set_pos(Point2(5,5));
|
|
|
|
- settings_dialog->add_child(l);
|
|
|
|
-
|
|
|
|
- settings_fov = memnew( LineEdit );
|
|
|
|
- settings_fov->set_anchor( MARGIN_RIGHT, ANCHOR_END );
|
|
|
|
- settings_fov->set_begin( Point2(15,22) );
|
|
|
|
- settings_fov->set_end( Point2(15,35) );
|
|
|
|
- settings_fov->set_text(EDITOR_DEF("3d_editor/default_fov",60.0));
|
|
|
|
- settings_dialog->add_child(settings_fov);
|
|
|
|
-
|
|
|
|
- l = memnew(Label);
|
|
|
|
- l->set_text("View Z-Near");
|
|
|
|
- l->set_pos(Point2(5,45));
|
|
|
|
- settings_dialog->add_child(l);
|
|
|
|
-
|
|
|
|
- settings_znear = memnew( LineEdit );
|
|
|
|
- settings_znear->set_anchor( MARGIN_RIGHT, ANCHOR_END );
|
|
|
|
- settings_znear->set_begin( Point2(15,62) );
|
|
|
|
- settings_znear->set_end( Point2(15,75) );
|
|
|
|
- settings_znear->set_text(EDITOR_DEF("3d_editor/default_z_near",0.1));
|
|
|
|
- settings_dialog->add_child(settings_znear);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- l = memnew(Label);
|
|
|
|
- l->set_text("View Z-Far");
|
|
|
|
- l->set_pos(Point2(5,85));
|
|
|
|
- settings_dialog->add_child(l);
|
|
|
|
-
|
|
|
|
- settings_zfar = memnew( LineEdit );
|
|
|
|
- settings_zfar->set_anchor( MARGIN_RIGHT, ANCHOR_END );
|
|
|
|
- settings_zfar->set_begin( Point2(15,102) );
|
|
|
|
- settings_zfar->set_end( Point2(15,115) );
|
|
|
|
- settings_zfar->set_text(EDITOR_DEF("3d_editor/default_z_far",1500.0));
|
|
|
|
- settings_dialog->add_child(settings_zfar);
|
|
|
|
|
|
+ settings_vbc = memnew( VBoxContainer );
|
|
|
|
+ settings_vbc->set_custom_minimum_size(Size2(200,0));
|
|
|
|
+ settings_dialog->add_child(settings_vbc);
|
|
|
|
+ settings_dialog->set_child_rect(settings_vbc);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ settings_light_base = memnew( Control );
|
|
|
|
+ settings_light_base->set_custom_minimum_size(Size2(128,128));
|
|
|
|
+ settings_light_base->connect("input_event",this,"_default_light_angle_input");
|
|
|
|
+ settings_vbc->add_margin_child("Default Light Normal:",settings_light_base);
|
|
|
|
+ settings_light_vp = memnew( Viewport );
|
|
|
|
+ settings_light_vp->set_use_own_world(true);
|
|
|
|
+ settings_light_base->add_child(settings_light_vp);
|
|
|
|
+
|
|
|
|
+ settings_dlight = memnew( DirectionalLight );
|
|
|
|
+ settings_light_vp->add_child(settings_dlight);
|
|
|
|
+ settings_sphere = memnew( ImmediateGeometry );
|
|
|
|
+ settings_sphere->begin(Mesh::PRIMITIVE_TRIANGLES,Ref<Texture>());
|
|
|
|
+ settings_sphere->set_color(Color(1,1,1));
|
|
|
|
+ settings_sphere->add_sphere(32,16,1);
|
|
|
|
+ settings_sphere->end();
|
|
|
|
+ settings_light_vp->add_child(settings_sphere);
|
|
|
|
+ settings_camera = memnew( Camera );
|
|
|
|
+ settings_light_vp->add_child(settings_camera);
|
|
|
|
+ settings_camera->set_translation(Vector3(0,0,2));
|
|
|
|
+ settings_camera->set_orthogonal(2.1,0.1,5);
|
|
|
|
+
|
|
|
|
+ settings_default_light_rot_x=Math_PI*0.3;
|
|
|
|
+ settings_default_light_rot_y=Math_PI*0.2;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ settings_ambient_color = memnew( ColorPickerButton );
|
|
|
|
+ settings_vbc->add_margin_child("Ambient Light Color:",settings_ambient_color);
|
|
|
|
+ settings_ambient_color->connect("color_changed",this,"_update_ambient_light_color");
|
|
|
|
+
|
|
|
|
+ viewport_environment->set_enable_fx(Environment::FX_AMBIENT_LIGHT,true);
|
|
|
|
+ viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,Color(0.15,0.15,0.15));
|
|
|
|
+ settings_ambient_color->set_color(Color(0.15,0.15,0.15));
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ settings_fov = memnew( SpinBox );
|
|
|
|
+ settings_fov->set_max(179);
|
|
|
|
+ settings_fov->set_min(1);
|
|
|
|
+ settings_fov->set_step(0.01);
|
|
|
|
+ settings_fov->set_val(EDITOR_DEF("3d_editor/default_fov",60.0));
|
|
|
|
+ settings_vbc->add_margin_child("Perspective FOV (deg.):",settings_fov);
|
|
|
|
+
|
|
|
|
+ settings_znear = memnew( SpinBox );
|
|
|
|
+ settings_znear->set_max(10000);
|
|
|
|
+ settings_znear->set_min(0.1);
|
|
|
|
+ settings_znear->set_step(0.01);
|
|
|
|
+ settings_znear->set_val(EDITOR_DEF("3d_editor/default_z_near",0.1));
|
|
|
|
+ settings_vbc->add_margin_child("View Z-Near:",settings_znear);
|
|
|
|
+
|
|
|
|
+ settings_zfar = memnew( SpinBox );
|
|
|
|
+ settings_zfar->set_max(10000);
|
|
|
|
+ settings_zfar->set_min(0.1);
|
|
|
|
+ settings_zfar->set_step(0.01);
|
|
|
|
+ settings_zfar->set_val(EDITOR_DEF("3d_editor/default_z_far",1500));
|
|
|
|
+ settings_vbc->add_margin_child("View Z-Far:",settings_zfar);
|
|
|
|
|
|
//settings_dialog->get_cancel()->hide();
|
|
//settings_dialog->get_cancel()->hide();
|
|
/* XFORM DIALOG */
|
|
/* XFORM DIALOG */
|