mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-31 13:17:19 -06:00
A built-in add-on under Object › Plug-ins › Smart Pen: - The Smart Pen Tool draws and edits Bézier paths without switching tools: a click adds the next segment straight or curved (a panel toggle; Tab flips the segment being placed or the last one), a drag makes a smooth point (Alt breaks the handle, Shift snaps to 45°, Space moves the point), a curve after a straight segment joins it tangent. - On existing paths it selects and moves points, removes a point keeping the shape (Alt-click), toggles smooth/corner (double-click), drags handles, reshapes a segment by dragging it and inserts a point on it (Alt-click); it closes, continues and joins open paths. - The Smart Pen panel: next segment straight or curved, remove points keeping shape, make smooth, make corner, retract handles, close or join. The tool stays out of both toolbars as shipped; the All Tools drawer lists it under the add-on's heading. Commands are addon.pen.*; the existing Pen tool, commands and menus are unchanged.
24 lines
1.2 KiB
Rust
24 lines
1.2 KiB
Rust
//! Geometry for VectorCraft's built-in add-ons, one module per add-on, with the kernels they share.
|
|
//!
|
|
//! - [`keep_shape`]: remove anchors while refitting their neighbours' handles, so the outline keeps
|
|
//! its shape within a tolerance (shared by every add-on that takes anchors away).
|
|
//! - [`cleanup`]: Artwork Cleanup's path repairs (collinear, duplicate and near anchors, tiny
|
|
//! handles, nearly closed paths) and Rejoin Path Pieces.
|
|
//! - [`pathtools`]: Path Precision Tools' anchor edits, path readouts, extending open paths and
|
|
//! finding where paths cross.
|
|
//! - [`segment_reshape`]: bending a segment by dragging a point on it (shared by the tools that
|
|
//! reshape segments directly).
|
|
//! - [`pen`]: the Smart Pen's straight and curved segments and its point edits.
|
|
|
|
pub mod cleanup;
|
|
pub mod keep_shape;
|
|
pub mod pathtools;
|
|
pub mod pen;
|
|
pub mod segment_reshape;
|
|
|
|
pub use cleanup::{
|
|
Rejoined, close_nearly_closed, merge_duplicate_anchors, near_point_groups, rejoin, remove_collinear_anchors, retract_tiny_handles,
|
|
};
|
|
pub use keep_shape::{SHARP_CORNER_DEG, remove_anchor_keep_shape, simplify_anchors_keep_shape, simplify_keep_shape};
|
|
pub use segment_reshape::{ReshapeMode, reshape_segment};
|