mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-27 14:38:12 +08:00
* Added Subpath constructor, iterator and length * Asserted that subpaths of len < 2 cannot be closed. Added len() and comments * Added subpath to_svg(), made structs public, made quadratic use either in_handle or out_handle * add bezier handles * Added basic interactivity and index traits * Added SubPath interactivity * Added svg styling * Broke subpath impl across multiple files. More sylistic changes per review * Fixed format error * Added closed subpath to documentation page * Modified subpath to_svg to use functional style * Stylistic changes per review * Fixed build errors * More sylistic changes per review * Moved svg commands to constants * Moved formatting for svg arguments to ToSVGOptions * Renamed files in git * Even more stylistic changes per review
29 lines
1.2 KiB
Rust
29 lines
1.2 KiB
Rust
// Implementation constants
|
|
|
|
/// Constant used to determine if `f64`s are equivalent.
|
|
pub const MAX_ABSOLUTE_DIFFERENCE: f64 = 1e-3;
|
|
/// A stricter constant used to determine if `f64`s are equivalent.
|
|
pub const STRICT_MAX_ABSOLUTE_DIFFERENCE: f64 = 1e-6;
|
|
/// Number of distances used in search algorithm for `project`.
|
|
pub const NUM_DISTANCES: usize = 5;
|
|
/// Maximum allowed angle that the normal of the `start` or `end` point can make with the normal of the corresponding handle for a curve to be considered scalable/simple.
|
|
pub const SCALABLE_CURVE_MAX_ENDPOINT_NORMAL_ANGLE: f64 = std::f64::consts::PI / 3.;
|
|
|
|
// Method argument defaults
|
|
|
|
/// Default `t` value used for the `curve_through_points` functions.
|
|
pub const DEFAULT_T_VALUE: f64 = 0.5;
|
|
/// Default LUT step size in `compute_lookup_table` function.
|
|
pub const DEFAULT_LUT_STEP_SIZE: i32 = 10;
|
|
/// Default number of subdivisions used in `length` calculation.
|
|
pub const DEFAULT_LENGTH_SUBDIVISIONS: i32 = 1000;
|
|
/// Default step size for `reduce` function.
|
|
pub const DEFAULT_REDUCE_STEP_SIZE: f64 = 0.01;
|
|
|
|
// SVG constants
|
|
pub const SVG_ARG_CUBIC: &str = "C";
|
|
pub const SVG_ARG_LINEAR: &str = "L";
|
|
pub const SVG_ARG_MOVE: &str = "M";
|
|
pub const SVG_ARG_QUADRATIC: &str = "Q";
|
|
pub const SVG_ARG_CLOSED: &str = "Z";
|