Skip to content

Commit 1b0ef1b

Browse files
committed
Work on rect grid lines
1 parent 94c26cc commit 1b0ef1b

File tree

2 files changed

+22
-25
lines changed

2 files changed

+22
-25
lines changed

editor/src/messages/portfolio/document/overlays/grid_overlays.rs

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,16 @@ fn grid_overlay_rectangular(document: &DocumentMessageHandler, overlay_context:
2525
let primary_start = bounds.0.iter().map(|&corner| corner[primary]).min_by(|a, b| a.partial_cmp(b).unwrap()).unwrap_or_default();
2626
let primary_end = bounds.0.iter().map(|&corner| corner[primary]).max_by(|a, b| a.partial_cmp(b).unwrap()).unwrap_or_default();
2727
let spacing = spacing[secondary];
28+
let first_index = ((min - origin[secondary]) / spacing).ceil() as i32;
2829
for line_index in 0..=((max - min) / spacing).ceil() as i32 {
30+
let is_major = is_major_line(
31+
line_index + first_index,
32+
if primary == 1 {
33+
document.snapping_state.grid.rectangular_major_interval_along_x
34+
} else {
35+
document.snapping_state.grid.rectangular_major_interval_along_y
36+
},
37+
);
2938
let secondary_pos = (((min - origin[secondary]) / spacing).ceil() + line_index as f64) * spacing + origin[secondary];
3039
let start = if primary == 0 {
3140
DVec2::new(primary_start, secondary_pos)
@@ -40,24 +49,16 @@ fn grid_overlay_rectangular(document: &DocumentMessageHandler, overlay_context:
4049
overlay_context.line(
4150
document_to_viewport.transform_point2(start),
4251
document_to_viewport.transform_point2(end),
43-
is_major_line(
44-
line_index,
45-
if primary == 0 {
46-
document.snapping_state.grid.rectangular_major_interval_along_x
47-
} else {
48-
document.snapping_state.grid.rectangular_major_interval_along_y
49-
},
50-
)
51-
.then_some(if document.snapping_state.grid.major_is_thick { &grid_color } else { &grid_color_minor }),
52-
is_major_line(
53-
line_index,
54-
if primary == 0 {
55-
document.snapping_state.grid.rectangular_major_interval_along_x
56-
} else {
57-
document.snapping_state.grid.rectangular_major_interval_along_y
58-
},
59-
)
60-
.then_some(if document.snapping_state.grid.major_is_thick { 3. } else { 1. }),
52+
if is_major {
53+
Some(&grid_color)
54+
} else {
55+
Some(&grid_color_minor)
56+
},
57+
if is_major && document.snapping_state.grid.major_is_thick {
58+
Some(3.)
59+
} else {
60+
Some(1.)
61+
},
6162
);
6263
}
6364
}

editor/src/messages/portfolio/document/utility_types/misc.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ impl Default for GridSnapping {
246246
isometric_major_interval_along_a: 1,
247247
grid_color: Color::from_rgb_str(COLOR_OVERLAY_GRAY_DARK.strip_prefix('#').unwrap()).unwrap().with_alpha(0.4),
248248
grid_color_minor: Color::from_rgb_str(COLOR_OVERLAY_GRAY_DARK.strip_prefix('#').unwrap()).unwrap().with_alpha(0.2),
249-
major_is_thick: true,
249+
major_is_thick: false,
250250
dot_display: false,
251251
}
252252
}
@@ -281,15 +281,11 @@ impl GridSnapping {
281281
}
282282
Some(multiplier)
283283
}
284-
284+
285285
pub fn has_minor_lines(&self) -> bool {
286286
match self.grid_type {
287287
GridType::Rectangular { .. } => self.rectangular_major_interval_along_x > 1 || self.rectangular_major_interval_along_y > 1,
288-
GridType::Isometric { .. } => {
289-
self.isometric_major_interval_along_x > 1
290-
|| self.isometric_major_interval_along_a > 1
291-
|| self.isometric_major_interval_along_b > 1
292-
}
288+
GridType::Isometric { .. } => self.isometric_major_interval_along_x > 1 || self.isometric_major_interval_along_a > 1 || self.isometric_major_interval_along_b > 1,
293289
}
294290
}
295291
}

0 commit comments

Comments
 (0)