Improve nudging when tilted and add Artboard tool nudge resizing; disable menu bar entries when no layer is selected (#2098)

* Make nudging follow a tilted viewport

* Add artboard nudge resizing
This commit is contained in:
Keavon Chambers
2024-11-08 16:16:20 -08:00
committed by GitHub
parent 320d030c08
commit 457619794b
12 changed files with 237 additions and 115 deletions
@@ -10,7 +10,7 @@ use bezier_rs::{Bezier, BezierHandles, TValue};
use graphene_core::transform::Transform;
use graphene_core::vector::{ManipulatorPointId, PointId, VectorData, VectorModificationType};
use glam::DVec2;
use glam::{DAffine2, DVec2};
use graphene_std::vector::{HandleId, SegmentId};
#[derive(Debug, PartialEq, Eq, Copy, Clone, Default)]
@@ -628,7 +628,11 @@ impl ShapeState {
let transform_to_viewport_space = document.metadata().transform_to_viewport(layer);
let transform_to_document_space = document.metadata().transform_to_document(layer);
let delta_transform = if in_viewport_space { transform_to_viewport_space } else { transform_to_document_space };
let delta_transform = if in_viewport_space {
transform_to_viewport_space
} else {
DAffine2::from_angle(document.document_ptz.tilt()) * transform_to_document_space
};
let delta = delta_transform.inverse().transform_vector2(delta);
for &point in state.selected_points.iter() {
@@ -189,7 +189,7 @@ impl SelectedEdges {
if !enlargement_factor.y.is_finite() || old_size.y.abs() < f64::EPSILON * 1000. {
enlargement_factor.y = 1.;
}
let mut pivot = (self.bounds[0] * enlargement_factor - position) / (enlargement_factor - DVec2::splat(1.));
let mut pivot = (self.bounds[0] * enlargement_factor - position) / (enlargement_factor - DVec2::ONE);
if !pivot.x.is_finite() {
pivot.x = 0.;
}