mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-10-03 03:58:12 +08:00
Make the Pen tool use Ctrl to lock the angle of handles such that they maintain colinearity (#2284)
* pen tool feature and other minor fixes * ctrl done,need to improve handle_modifications * completes collinear and ctrl for all cases,need to refactor * more bug fix need to refactor * fixed minor issues and refactor done * Code review * minor bug fixes --------- Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
co-authored by
Keavon Chambers
parent
687744d999
commit
e444785301
@@ -591,11 +591,14 @@ impl<'a> Selected<'a> {
|
||||
responses.add(GraphOperationMessage::Vector { layer, modification_type });
|
||||
|
||||
if let Some((id, initial)) = handle.mirror {
|
||||
let direction = viewspace.transform_vector2(new_pos_viewport - relative).try_normalize();
|
||||
let length = viewspace.transform_vector2(initial - relative).length();
|
||||
let new_relative = direction.map_or(initial - relative, |direction| viewspace.inverse().transform_vector2(-direction * length));
|
||||
let modification_type = id.set_relative_position(new_relative);
|
||||
responses.add(GraphOperationMessage::Vector { layer, modification_type });
|
||||
// When the handle is scaled to zero, don't update the mirror handle
|
||||
if (new_pos_viewport - relative).length_squared() > f64::EPSILON {
|
||||
let direction = viewspace.transform_vector2(new_pos_viewport - relative).try_normalize();
|
||||
let length = viewspace.transform_vector2(initial - relative).length();
|
||||
let new_relative = direction.map_or(initial - relative, |direction| viewspace.inverse().transform_vector2(-direction * length));
|
||||
let modification_type = id.set_relative_position(new_relative);
|
||||
responses.add(GraphOperationMessage::Vector { layer, modification_type });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user