From 13cb0972ae12e0b317acf3dc6d71cc5b828ae51a Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 5 Aug 2021 12:20:54 +0300 Subject: [PATCH] fixed "add point" in curve editor --- rg3d-ui/src/curve/mod.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/rg3d-ui/src/curve/mod.rs b/rg3d-ui/src/curve/mod.rs index b52c1e727..2208472d5 100644 --- a/rg3d-ui/src/curve/mod.rs +++ b/rg3d-ui/src/curve/mod.rs @@ -329,7 +329,7 @@ impl> Control for CurveEditor { self.change_selected_keys_kind(kind.clone(), ui); } CurveEditorMessage::AddKey(screen_pos) => { - let local_pos = self.point_to_local_space(*screen_pos); + let local_pos = dbg!(self.point_to_local_space(*screen_pos)); self.keys.push(CurveKeyView { position: local_pos, kind: CurveKeyKind::Linear, @@ -450,9 +450,13 @@ impl> CurveEditor { /// Transforms a point to local space. pub fn point_to_local_space(&self, point: Vector2) -> Vector2 { - self.inv_screen_matrix + let mut p = point - self.screen_position(); + p.y = self.actual_size().y - p.y; + self.view_matrix .get() - .transform_point(&Point2::from(point)) + .try_inverse() + .unwrap_or_default() + .transform_point(&Point2::from(p)) .coords }