diff --git a/editor/src/messages/portfolio/document/utility_types/misc.rs b/editor/src/messages/portfolio/document/utility_types/misc.rs
index b3c99e594f..6db72e8e56 100644
--- a/editor/src/messages/portfolio/document/utility_types/misc.rs
+++ b/editor/src/messages/portfolio/document/utility_types/misc.rs
@@ -91,7 +91,6 @@ impl SnappingState {
match target {
SnapTarget::BoundingBox(target) => match target {
BoundingBoxSnapTarget::CornerPoint => self.bounding_box.corner_point,
- BoundingBoxSnapTarget::AlongEdge => self.bounding_box.along_edge,
BoundingBoxSnapTarget::EdgeMidpoint => self.bounding_box.edge_midpoint,
BoundingBoxSnapTarget::CenterPoint => self.bounding_box.center_point,
},
@@ -106,7 +105,7 @@ impl SnappingState {
SnapTarget::Artboard(_) => self.artboards,
SnapTarget::Grid(_) => self.grid_snapping,
SnapTarget::Alignment(AlignmentSnapTarget::AlignWithAnchorPoint) => self.path.align_with_anchor_point,
- SnapTarget::Alignment(_) => self.bounding_box.align_with_corner_point,
+ SnapTarget::Alignment(_) => self.bounding_box.align_with_edges,
SnapTarget::DistributeEvenly(_) => self.bounding_box.distribute_evenly,
_ => false,
}
@@ -119,8 +118,7 @@ pub struct BoundingBoxSnapping {
pub center_point: bool,
pub corner_point: bool,
pub edge_midpoint: bool,
- pub along_edge: bool,
- pub align_with_corner_point: bool,
+ pub align_with_edges: bool,
pub distribute_evenly: bool,
}
@@ -130,8 +128,7 @@ impl Default for BoundingBoxSnapping {
center_point: true,
corner_point: true,
edge_midpoint: true,
- along_edge: true,
- align_with_corner_point: true,
+ align_with_edges: true,
distribute_evenly: true,
}
}
@@ -378,13 +375,11 @@ impl fmt::Display for SnapSource {
}
type GetSnapState = for<'a> fn(&'a mut SnappingState) -> &'a mut bool;
-pub const SNAP_FUNCTIONS_FOR_BOUNDING_BOXES: [(&str, GetSnapState, &str); 6] = [
+pub const SNAP_FUNCTIONS_FOR_BOUNDING_BOXES: [(&str, GetSnapState, &str); 5] = [
(
- // TODO: Rename to "Beyond Edges" and update behavior to snap to an infinite extension of the bounding box edges
- // TODO: (even when the layer is locally rotated) instead of horizontally/vertically aligning with the corner points
- "Align with Corner Points",
- (|snapping_state| &mut snapping_state.bounding_box.align_with_corner_point) as GetSnapState,
- "Snaps to horizontal/vertical alignment with the corner points of any layer's bounding box",
+ "Align with Edges",
+ (|snapping_state| &mut snapping_state.bounding_box.align_with_edges) as GetSnapState,
+ "Snaps to horizontal/vertical alignment with the edges of any layer's bounding box",
),
(
"Corner Points",
@@ -401,11 +396,6 @@ pub const SNAP_FUNCTIONS_FOR_BOUNDING_BOXES: [(&str, GetSnapState, &str); 6] = [
(|snapping_state| &mut snapping_state.bounding_box.edge_midpoint) as GetSnapState,
"Snaps to any of the four points at the middle of the edges of any layer's bounding box",
),
- (
- "Along Edges",
- (|snapping_state| &mut snapping_state.bounding_box.along_edge) as GetSnapState,
- "Snaps anywhere along the four edges of any layer's bounding box",
- ),
(
"Distribute Evenly",
(|snapping_state| &mut snapping_state.bounding_box.distribute_evenly) as GetSnapState,
@@ -463,7 +453,6 @@ pub enum BoundingBoxSnapTarget {
CornerPoint,
CenterPoint,
EdgeMidpoint,
- AlongEdge,
}
impl fmt::Display for BoundingBoxSnapTarget {
@@ -472,7 +461,6 @@ impl fmt::Display for BoundingBoxSnapTarget {
BoundingBoxSnapTarget::CornerPoint => write!(f, "Bounding Box: Corner Point"),
BoundingBoxSnapTarget::CenterPoint => write!(f, "Bounding Box: Center Point"),
BoundingBoxSnapTarget::EdgeMidpoint => write!(f, "Bounding Box: Edge Midpoint"),
- BoundingBoxSnapTarget::AlongEdge => write!(f, "Bounding Box: Along Edge"),
}
}
}
diff --git a/editor/src/messages/tool/common_functionality/snapping.rs b/editor/src/messages/tool/common_functionality/snapping.rs
index a289ee7fde..d23b2c54c0 100644
--- a/editor/src/messages/tool/common_functionality/snapping.rs
+++ b/editor/src/messages/tool/common_functionality/snapping.rs
@@ -8,7 +8,7 @@ pub use {alignment_snapper::*, distribution_snapper::*, grid_snapper::*, layer_s
use crate::consts::{COLOR_OVERLAY_BLUE, COLOR_OVERLAY_SNAP_BACKGROUND, COLOR_OVERLAY_WHITE};
use crate::messages::portfolio::document::overlays::utility_types::{OverlayContext, Pivot};
use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier;
-use crate::messages::portfolio::document::utility_types::misc::{BoundingBoxSnapTarget, GridSnapTarget, PathSnapTarget, SnapTarget};
+use crate::messages::portfolio::document::utility_types::misc::{GridSnapTarget, PathSnapTarget, SnapTarget};
use crate::messages::prelude::*;
use bezier_rs::{Subpath, TValue};
@@ -135,14 +135,7 @@ fn get_closest_line(lines: &[SnappedLine]) -> Option<&SnappedPoint> {
fn get_closest_intersection(snap_to: DVec2, curves: &[SnappedCurve]) -> Option When checked (default), overlays are shown. When unchecked, they are hidden. Overlays are the temporary contextual visualizations (like bounding boxes and vector manipulators) that are usually blue and appear atop the viewport when using tools. When checked (default), drawing and dragging shapes and vector points means they will snap to other areas of geometric interest like corners or anchor points. When unchecked, the selection moves freely. Snapping options relating to **Bounding Boxes**:
Fine-grained options are available by clicking the overflow button to access its options popover menu:
Snapping options relating to **Paths**:
When checked (default), drawing and dragging shapes and vector points means they will snap to other areas of geometric interest like corners or anchor points. When unchecked, the selection moves freely.
Fine-grained options are available by clicking the overflow button to access its options popover menu. Each option has a tooltip explaining what it does by hovering the cursor over it.
Snapping options relating to **Bounding Boxes**:
Snapping options relating to **Paths**:
When checked (off by default), grid lines are shown and snapping to them becomes active. The initial grid scale is 1 document unit, helping you draw pixel-perfect artwork.
**Type** sets whether the grid pattern is made of squares or triangles.
**Rectangular** is a pattern of horizontal and vertical lines:
It has one option unique to this mode:
**Isometric** is a pattern of triangles:
It has two options unique to this mode:
**Normal** (default): The artwork is rendered normally.
**Outline**: The artwork is rendered as a wireframe.
**Pixels**: **Not implemented yet.** The artwork is rendered as it would appear when exported as a bitmap image at 100% scale regardless of the viewport zoom level.
| | Zoom In |Zooms the viewport in to the next whole increment.
|