// Path: app/src/main/java/com/annimon/hotarufx/visual/visitors/NodeVisitor.java
// public interface NodeVisitor<R, T> {
// 
//     R visit(ArcNode node, T input);
//     R visit(CircleNode node, T input);
//     R visit(EllipseNode node, T input);
//     R visit(GroupNode node, T input);
//     R visit(ImageNode node, T input);
//     R visit(LineNode node, T input);
//     R visit(PolygonNode node, T input);
//     R visit(PolylineNode node, T input);
//     R visit(RectangleNode node, T input);
//     R visit(SVGPathNode node, T input);
//     R visit(TextNode node, T input);
// }


import com.annimon.hotarufx.visual.visitors.NodeVisitor;
import java.util.List;
import javafx.scene.shape.Polyline;
package com.annimon.hotarufx.visual.objects;


public class PolylineNode extends ShapeNode {

    public final Polyline polyline;

    public PolylineNode(List<Double> points) {
        this(new Polyline(), points);
    }

    private PolylineNode(Polyline polyline, List<Double> points) {
        super(polyline);
        this.polyline = polyline;
        polyline.getPoints().addAll(points);
    }

    @Override
// Path: app/src/main/java/com/annimon/hotarufx/visual/visitors/NodeVisitor.java
// public interface NodeVisitor<R, T> {
// 
//     R visit(ArcNode node, T input);
//     R visit(CircleNode node, T input);
//     R visit(EllipseNode node, T input);
//     R visit(GroupNode node, T input);
//     R visit(ImageNode node, T input);
//     R visit(LineNode node, T input);
//     R visit(PolygonNode node, T input);
//     R visit(PolylineNode node, T input);
//     R visit(RectangleNode node, T input);
//     R visit(SVGPathNode node, T input);
//     R visit(TextNode node, T input);
// }


// Path: app/src/main/java/com/annimon/hotarufx/visual/objects/PolylineNode.java
import com.annimon.hotarufx.visual.visitors.NodeVisitor;
import java.util.List;
import javafx.scene.shape.Polyline;

package com.annimon.hotarufx.visual.objects;


public class PolylineNode extends ShapeNode {

    public final Polyline polyline;

    public PolylineNode(List<Double> points) {
        this(new Polyline(), points);
    }

    private PolylineNode(Polyline polyline, List<Double> points) {
        super(polyline);
        this.polyline = polyline;
        polyline.getPoints().addAll(points);
    }

    @Override
    public <R, T> R accept(NodeVisitor<R, T> visitor, T input) {