|
@@ -247,6 +247,7 @@ private:
|
|
Point2 _point_to_screen(const Vector3 &p_point);
|
|
Point2 _point_to_screen(const Vector3 &p_point);
|
|
Transform3D _get_camera_transform() const;
|
|
Transform3D _get_camera_transform() const;
|
|
int get_selected_count() const;
|
|
int get_selected_count() const;
|
|
|
|
+ void cancel_transform();
|
|
|
|
|
|
Vector3 _get_camera_position() const;
|
|
Vector3 _get_camera_position() const;
|
|
Vector3 _get_camera_normal() const;
|
|
Vector3 _get_camera_normal() const;
|
|
@@ -314,6 +315,8 @@ private:
|
|
int gizmo_handle = 0;
|
|
int gizmo_handle = 0;
|
|
bool gizmo_handle_secondary = false;
|
|
bool gizmo_handle_secondary = false;
|
|
Variant gizmo_initial_value;
|
|
Variant gizmo_initial_value;
|
|
|
|
+ bool original_local;
|
|
|
|
+ bool instant;
|
|
} _edit;
|
|
} _edit;
|
|
|
|
|
|
struct Cursor {
|
|
struct Cursor {
|
|
@@ -347,7 +350,7 @@ private:
|
|
real_t zoom_indicator_delay;
|
|
real_t zoom_indicator_delay;
|
|
int zoom_failed_attempts_count = 0;
|
|
int zoom_failed_attempts_count = 0;
|
|
|
|
|
|
- RID move_gizmo_instance[3], move_plane_gizmo_instance[3], rotate_gizmo_instance[4], scale_gizmo_instance[3], scale_plane_gizmo_instance[3];
|
|
|
|
|
|
+ RID move_gizmo_instance[3], move_plane_gizmo_instance[3], rotate_gizmo_instance[4], scale_gizmo_instance[3], scale_plane_gizmo_instance[3], axis_gizmo_instance[3];
|
|
|
|
|
|
String last_message;
|
|
String last_message;
|
|
String message;
|
|
String message;
|
|
@@ -402,6 +405,10 @@ private:
|
|
|
|
|
|
Transform3D _compute_transform(TransformMode p_mode, const Transform3D &p_original, const Transform3D &p_original_local, Vector3 p_motion, double p_extra, bool p_local, bool p_orthogonal);
|
|
Transform3D _compute_transform(TransformMode p_mode, const Transform3D &p_original, const Transform3D &p_original_local, Vector3 p_motion, double p_extra, bool p_local, bool p_orthogonal);
|
|
|
|
|
|
|
|
+ void begin_transform(TransformMode p_mode, bool instant);
|
|
|
|
+ void commit_transform();
|
|
|
|
+ void update_transform(Point2 p_mousepos, bool p_shift);
|
|
|
|
+
|
|
protected:
|
|
protected:
|
|
void _notification(int p_what);
|
|
void _notification(int p_what);
|
|
static void _bind_methods();
|
|
static void _bind_methods();
|
|
@@ -546,7 +553,7 @@ private:
|
|
Camera3D::Projection grid_camera_last_update_perspective = Camera3D::PROJECTION_PERSPECTIVE;
|
|
Camera3D::Projection grid_camera_last_update_perspective = Camera3D::PROJECTION_PERSPECTIVE;
|
|
Vector3 grid_camera_last_update_position = Vector3();
|
|
Vector3 grid_camera_last_update_position = Vector3();
|
|
|
|
|
|
- Ref<ArrayMesh> move_gizmo[3], move_plane_gizmo[3], rotate_gizmo[4], scale_gizmo[3], scale_plane_gizmo[3];
|
|
|
|
|
|
+ Ref<ArrayMesh> move_gizmo[3], move_plane_gizmo[3], rotate_gizmo[4], scale_gizmo[3], scale_plane_gizmo[3], axis_gizmo[3];
|
|
Ref<StandardMaterial3D> gizmo_color[3];
|
|
Ref<StandardMaterial3D> gizmo_color[3];
|
|
Ref<StandardMaterial3D> plane_gizmo_color[3];
|
|
Ref<StandardMaterial3D> plane_gizmo_color[3];
|
|
Ref<ShaderMaterial> rotate_gizmo_color[3];
|
|
Ref<ShaderMaterial> rotate_gizmo_color[3];
|
|
@@ -773,12 +780,14 @@ public:
|
|
|
|
|
|
ToolMode get_tool_mode() const { return tool_mode; }
|
|
ToolMode get_tool_mode() const { return tool_mode; }
|
|
bool are_local_coords_enabled() const { return tool_option_button[Node3DEditor::TOOL_OPT_LOCAL_COORDS]->is_pressed(); }
|
|
bool are_local_coords_enabled() const { return tool_option_button[Node3DEditor::TOOL_OPT_LOCAL_COORDS]->is_pressed(); }
|
|
|
|
+ void set_local_coords_enabled(bool on) const { tool_option_button[Node3DEditor::TOOL_OPT_LOCAL_COORDS]->set_pressed(on); }
|
|
bool is_snap_enabled() const { return snap_enabled ^ snap_key_enabled; }
|
|
bool is_snap_enabled() const { return snap_enabled ^ snap_key_enabled; }
|
|
double get_translate_snap() const;
|
|
double get_translate_snap() const;
|
|
double get_rotate_snap() const;
|
|
double get_rotate_snap() const;
|
|
double get_scale_snap() const;
|
|
double get_scale_snap() const;
|
|
|
|
|
|
Ref<ArrayMesh> get_move_gizmo(int idx) const { return move_gizmo[idx]; }
|
|
Ref<ArrayMesh> get_move_gizmo(int idx) const { return move_gizmo[idx]; }
|
|
|
|
+ Ref<ArrayMesh> get_axis_gizmo(int idx) const { return axis_gizmo[idx]; }
|
|
Ref<ArrayMesh> get_move_plane_gizmo(int idx) const { return move_plane_gizmo[idx]; }
|
|
Ref<ArrayMesh> get_move_plane_gizmo(int idx) const { return move_plane_gizmo[idx]; }
|
|
Ref<ArrayMesh> get_rotate_gizmo(int idx) const { return rotate_gizmo[idx]; }
|
|
Ref<ArrayMesh> get_rotate_gizmo(int idx) const { return rotate_gizmo[idx]; }
|
|
Ref<ArrayMesh> get_scale_gizmo(int idx) const { return scale_gizmo[idx]; }
|
|
Ref<ArrayMesh> get_scale_gizmo(int idx) const { return scale_gizmo[idx]; }
|