Skip to content

Commit 643b806

Browse files
committed
Draw a red rectangle where the first point on the shape is
1 parent 4ec496b commit 643b806

File tree

2 files changed

+16
-15
lines changed

2 files changed

+16
-15
lines changed

editor/src/document/document_file.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,8 @@ impl DocumentMessageHandler {
150150

151151
let p2v = |point: kurbo::Point| -> DVec2 { DVec2::from((point.x, point.y)) };
152152

153-
let points = shapes.map(|shape| {
154-
shape.path.segments().map(|segment| -> Vec<DVec2> {
153+
let points = shapes.flat_map(|shape| {
154+
shape.path.segments().flat_map(|segment| -> Vec<DVec2> {
155155
match segment {
156156
PathSeg::Line(line) => vec![p2v(line.p0), p2v(line.p1)],
157157
PathSeg::Quad(quad) => vec![p2v(quad.p0), p2v(quad.p1), p2v(quad.p2)],
@@ -160,7 +160,7 @@ impl DocumentMessageHandler {
160160
})
161161
});
162162

163-
points.flatten().flatten().collect::<Vec<DVec2>>()
163+
points.collect::<Vec<DVec2>>()
164164
}
165165
pub fn layerdata(&self, path: &[LayerId]) -> &LayerData {
166166
self.layer_data.get(path).expect("Layerdata does not exist")

editor/src/tool/tools/path.rs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -72,18 +72,19 @@ impl Fsm for PathToolFsmState {
7272
if let ToolMessage::Path(event) = event {
7373
match (self, event) {
7474
(_, SelectedLayersChanged) => {
75-
let response = match data.vector_handle_markers.take() {
76-
// Some(path) => Operation::DeleteLayer { path }.into(),
77-
path => {
78-
let path = path.unwrap_or_else(|| add_marker(responses));
79-
data.vector_handle_markers = Some(path.clone());
80-
81-
let transform = DAffine2::IDENTITY.to_cols_array();
82-
Operation::SetLayerTransformInViewport { path, transform }.into()
83-
}
84-
_ => Message::NoOp,
85-
};
86-
responses.push_back(response);
75+
let path = data.vector_handle_markers.clone().unwrap_or_else(|| add_marker(responses));
76+
let marker_list = document.selected_layers_vector_handles();
77+
if marker_list.len() >= 1 {
78+
let first_marker = marker_list[0] * 1000.;
79+
80+
data.vector_handle_markers = Some(path.clone());
81+
82+
let transform = DAffine2::from_translation(first_marker).to_cols_array();
83+
84+
let response = Operation::SetLayerTransformInViewport { path, transform }.into();
85+
responses.push_back(response);
86+
}
87+
8788
self
8889
}
8990
_ => self,

0 commit comments

Comments
 (0)