feat(svg-editor): implement interactive SVG node editor with parsing and editing capabilities
feat(debug-logger): add DebugSignalLogger plugin for event logging and inspection feat(plugins): introduce built-in plugins module and integrate debug logger feat(plugin-integration): create integration layer for mapping Iced Messages to CoreEvents feat(plugin-registry): establish PluginRegistry for managing plugins and event dispatching
This commit is contained in:
@@ -430,6 +430,7 @@ fn parse_svg_shapes(svg_bytes: &[u8], scale_x: f32, scale_y: f32) -> Vec<VectorS
|
||||
let h = attrs.get("height").map(|v| parse_svg_float(v, 0.0)).unwrap_or(0.0) * scale_y;
|
||||
if w > 0.0 && h > 0.0 {
|
||||
shapes.push(VectorShape::Rect {
|
||||
name: String::new(),
|
||||
x1: x, y1: y,
|
||||
x2: x + w, y2: y + h,
|
||||
stroke: stroke_width,
|
||||
@@ -448,6 +449,7 @@ fn parse_svg_shapes(svg_bytes: &[u8], scale_x: f32, scale_y: f32) -> Vec<VectorS
|
||||
let r = attrs.get("r").map(|v| parse_svg_float(v, 0.0)).unwrap_or(0.0) * scale_x;
|
||||
if r > 0.0 {
|
||||
shapes.push(VectorShape::Circle {
|
||||
name: String::new(),
|
||||
x1: cx - r, y1: cy - r,
|
||||
x2: cx + r, y2: cy + r,
|
||||
stroke: stroke_width,
|
||||
@@ -466,6 +468,7 @@ fn parse_svg_shapes(svg_bytes: &[u8], scale_x: f32, scale_y: f32) -> Vec<VectorS
|
||||
let ry = attrs.get("ry").map(|v| parse_svg_float(v, 0.0)).unwrap_or(0.0) * scale_y;
|
||||
if rx > 0.0 && ry > 0.0 {
|
||||
shapes.push(VectorShape::Circle {
|
||||
name: String::new(),
|
||||
x1: cx - rx, y1: cy - ry,
|
||||
x2: cx + rx, y2: cy + ry,
|
||||
stroke: stroke_width,
|
||||
@@ -483,6 +486,7 @@ fn parse_svg_shapes(svg_bytes: &[u8], scale_x: f32, scale_y: f32) -> Vec<VectorS
|
||||
let x2 = (attrs.get("x2").map(|v| parse_svg_float(v, 0.0)).unwrap_or(0.0) + tx) * scale_x;
|
||||
let y2 = (attrs.get("y2").map(|v| parse_svg_float(v, 0.0)).unwrap_or(0.0) + ty) * scale_y;
|
||||
shapes.push(VectorShape::Line {
|
||||
name: String::new(),
|
||||
x1, y1, x2, y2,
|
||||
stroke: stroke_width,
|
||||
color: stroke_color,
|
||||
@@ -506,6 +510,7 @@ fn parse_svg_shapes(svg_bytes: &[u8], scale_x: f32, scale_y: f32) -> Vec<VectorS
|
||||
}
|
||||
if pts.len() >= 2 {
|
||||
shapes.push(VectorShape::FreePath {
|
||||
name: String::new(),
|
||||
pts,
|
||||
closed: tag == "polygon",
|
||||
stroke: stroke_width,
|
||||
|
||||
Reference in New Issue
Block a user