Node3D gizmo improvements
* Clean-up of node_3d_editor_plugin.{h,cpp}: removed unused code, fixed some bugs.
* Moved node_3d_editor_gizmos.{h,cpp} to editor/plugins.
* Added support for multiple gizmos per node. This means custom gizmos will no longer override the built-in ones and that multiple gizmos can be used in more complex nodes.
* Added support for handle IDs. When adding handles to a gizmo, an ID can be specified for each one, making it easier to work with gizmos that have a variable number of handles.
* Added support for subgizmos, selectable elements that can be transformed without needing a node of their own. By overriding _subgizmo_intersect_frustum() and/or _subgizmo_intersect_ray() gizmos can define which subgizmos should be selected on a region or click selection. Subgizmo transformations are applied using get/set/commit virtual methods, similar to how handles work.
This commit is contained in:
@@ -164,7 +164,7 @@ void Camera3D::set_perspective(float p_fovy_degrees, float p_z_near, float p_z_f
|
||||
mode = PROJECTION_PERSPECTIVE;
|
||||
|
||||
RenderingServer::get_singleton()->camera_set_perspective(camera, fov, near, far);
|
||||
update_gizmo();
|
||||
update_gizmos();
|
||||
force_change = false;
|
||||
}
|
||||
|
||||
@@ -181,7 +181,7 @@ void Camera3D::set_orthogonal(float p_size, float p_z_near, float p_z_far) {
|
||||
force_change = false;
|
||||
|
||||
RenderingServer::get_singleton()->camera_set_orthogonal(camera, size, near, far);
|
||||
update_gizmo();
|
||||
update_gizmos();
|
||||
}
|
||||
|
||||
void Camera3D::set_frustum(float p_size, Vector2 p_offset, float p_z_near, float p_z_far) {
|
||||
@@ -198,7 +198,7 @@ void Camera3D::set_frustum(float p_size, Vector2 p_offset, float p_z_near, float
|
||||
force_change = false;
|
||||
|
||||
RenderingServer::get_singleton()->camera_set_frustum(camera, size, frustum_offset, near, far);
|
||||
update_gizmo();
|
||||
update_gizmos();
|
||||
}
|
||||
|
||||
void Camera3D::set_projection(Camera3D::Projection p_mode) {
|
||||
@@ -755,7 +755,7 @@ void ClippedCamera3D::_notification(int p_what) {
|
||||
}
|
||||
|
||||
if (p_what == NOTIFICATION_LOCAL_TRANSFORM_CHANGED) {
|
||||
update_gizmo();
|
||||
update_gizmos();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user