Skip to content

Commit

Permalink
Adds a scaling factor accounting for document and viewport scales
Browse files Browse the repository at this point in the history
  • Loading branch information
mTvare6 committed Jan 14, 2025
1 parent 4b58cce commit 19cb5bb
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,9 @@ impl MessageHandler<DocumentMessage, DocumentMessageData<'_>> for DocumentMessag
* DAffine2::from_scale(DVec2::splat(self.document_ptz.zoom().recip()))
* DAffine2::from_translation(-DVec2::Y * 4.);

responses.add(TransformLayerMessage::Overlays(overlay_context, transform));
// For now includes scaling factor, might include more based on G/R/S overlays
let metadata = self.metadata().document_to_viewport;
responses.add(TransformLayerMessage::Overlays(overlay_context, transform, metadata));
break;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use glam::DAffine2;
#[impl_message(Message, ToolMessage, TransformLayer)]
#[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)]
pub enum TransformLayerMessage {
Overlays(OverlayContext, DAffine2),
Overlays(OverlayContext, DAffine2, DAffine2),
// Messages
ApplyTransformOperation,
BeginGrab,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
use crate::consts::COLOR_OVERLAY_SNAP_BACKGROUND;
use crate::consts::SLOWING_DIVISOR;
use crate::messages::input_mapper::utility_types::input_mouse::ViewportPosition;
use crate::messages::portfolio::document::utility_types::transformation::{Axis, OriginalTransforms, Selected, TransformOperation, Typing};
use crate::messages::portfolio::document::overlays::utility_types::{OverlayProvider, Pivot};
use crate::messages::portfolio::document::utility_types::transformation::{Axis, OriginalTransforms, Selected, TransformOperation, Typing};
use crate::messages::prelude::*;
use crate::messages::tool::common_functionality::shape_editor::ShapeState;
use crate::messages::tool::utility_types::{ToolData, ToolType};
use crate::consts::COLOR_OVERLAY_SNAP_BACKGROUND;

use graphene_core::vector::ManipulatorPointId;

Expand Down Expand Up @@ -91,7 +91,7 @@ impl MessageHandler<TransformLayerMessage, TransformData<'_>> for TransformLayer
};

match message {
TransformLayerMessage::Overlays(overlay_context, transform) => {
TransformLayerMessage::Overlays(overlay_context, transform, document_to_viewport) => {
let axis_constraint = match self.transform_operation {
TransformOperation::Grabbing(grabbing) => grabbing.constraint,
TransformOperation::Scaling(scaling) => scaling.constraint,
Expand All @@ -107,8 +107,7 @@ impl MessageHandler<TransformLayerMessage, TransformData<'_>> for TransformLayer

let grs_value_text = match self.transform_operation {
TransformOperation::None => String::new(),
// TODO: Fix that the translation is showing numbers in viewport space, not document space
TransformOperation::Grabbing(translation) => format!("Translating {}", axis_text(translation.to_dvec(), true)),
TransformOperation::Grabbing(translation) => format!("Translating {}", axis_text(document_to_viewport.inverse().transform_vector2(translation.to_dvec()), true)),
TransformOperation::Rotating(rotation) => format!("Rotating by {:.3}°", rotation.to_f64(self.snap) * 360. / std::f64::consts::TAU),
TransformOperation::Scaling(scale) => format!("Scaling {}", axis_text(scale.to_dvec(self.snap), false)),
};
Expand Down

0 comments on commit 19cb5bb

Please sign in to comment.