mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-10-03 23:08:12 +08:00
30 lines
683 B
Rust
30 lines
683 B
Rust
use bezier_rs::{Cap, Join};
|
|
use glam::DVec2;
|
|
use js_sys::Array;
|
|
use wasm_bindgen::{JsCast, JsValue};
|
|
|
|
pub fn parse_join(join: i32, miter_limit: f64) -> Join {
|
|
match join {
|
|
0 => Join::Bevel,
|
|
1 => Join::Miter(Some(miter_limit)),
|
|
2 => Join::Round,
|
|
_ => panic!("Unexpected Join value: '{join}'"),
|
|
}
|
|
}
|
|
|
|
pub fn parse_cap(cap: i32) -> Cap {
|
|
match cap {
|
|
0 => Cap::Butt,
|
|
1 => Cap::Round,
|
|
2 => Cap::Square,
|
|
_ => panic!("Unexpected Cap value: '{cap}'"),
|
|
}
|
|
}
|
|
|
|
pub fn parse_point(js_point: &JsValue) -> DVec2 {
|
|
let point = js_point.to_owned().dyn_into::<Array>().unwrap();
|
|
let x = point.get(0).as_f64().unwrap();
|
|
let y = point.get(1).as_f64().unwrap();
|
|
DVec2::new(x, y)
|
|
}
|