Browse Source

Add corner radius to rectangle node

Jakub Ciemała 1 tháng trước cách đây
mục cha
commit
1d8c9178f0

+ 3 - 1
src/PixiEditor.ChangeableDocument/Changeables/Graph/Nodes/Shapes/RectangleNode.cs

@@ -11,6 +11,7 @@ public class RectangleNode : ShapeNode<RectangleVectorData>
 {
     public InputProperty<VecD> Center { get; }
     public InputProperty<VecD> Size { get; }
+    public InputProperty<double> CornerRadius { get; }
     public InputProperty<Paintable> StrokeColor { get; }
     public InputProperty<Paintable> FillColor { get; }
     public InputProperty<double> StrokeWidth { get; }
@@ -20,6 +21,7 @@ public class RectangleNode : ShapeNode<RectangleVectorData>
         Center = CreateInput<VecD>("Position", "POSITION", VecI.Zero);
         Size = CreateInput<VecD>("Size", "SIZE", new VecD(32, 32)).WithRules(
             v => v.Min(new VecD(0)));
+        CornerRadius = CreateInput<double>("CornerRadius", "RADIUS", 0);
         StrokeColor = CreateInput<Paintable>("StrokeColor", "STROKE_COLOR", new Color(0, 0, 0, 255));
         FillColor = CreateInput<Paintable>("FillColor", "FILL_COLOR", new Color(0, 0, 0, 255));
         StrokeWidth = CreateInput<double>("StrokeWidth", "STROKE_WIDTH", 1);
@@ -28,7 +30,7 @@ public class RectangleNode : ShapeNode<RectangleVectorData>
     protected override RectangleVectorData? GetShapeData(RenderContext context)
     {
         return new RectangleVectorData(Center.Value, Size.Value)
-            { Stroke = StrokeColor.Value, FillPaintable = FillColor.Value, StrokeWidth = (float)StrokeWidth.Value };
+            { CornerRadius = CornerRadius.Value, Stroke = StrokeColor.Value, FillPaintable = FillColor.Value, StrokeWidth = (float)StrokeWidth.Value };
     }
 
     public override Node CreateCopy() => new RectangleNode();