public Component getMainPanel() {
return container;
}
public void paintConvexHull() {
PNode pointSet = new PNode();
for (Vector2D point : points) {
final PNode node = PPath.createEllipse(point.getX() - 1, point.getY() - 1, 2, 2);
node.addAttribute("tooltip", point);
node.setPaint(Color.gray);
pointSet.addChild(node);
}
canvas.getLayer().addChild(pointSet);
ConvexHullGenerator2D generator = new MonotoneChain(true, 1e-6);
ConvexHull2D hull = generator.generate(points); //AklToussaintHeuristic.reducePoints(points));
PNode hullNode = new PNode();
for (Vector2D vertex : hull.getVertices()) {
final PPath node = PPath.createEllipse(vertex.getX() - 1, vertex.getY() - 1, 2, 2);
node.addAttribute("tooltip", vertex);
node.setPaint(Color.red);
node.setStrokePaint(Color.red);
hullNode.addChild(node);
}
for (Segment line : hull.getLineSegments()) {
final PPath node = PPath.createLine(line.getStart().getX(), line.getStart().getY(),
line.getEnd().getX(), line.getEnd().getY());
node.setPickable(false);
node.setPaint(Color.red);
node.setStrokePaint(Color.red);
hullNode.addChild(node);
}
canvas.getLayer().addChild(hullNode);
Encloser<Euclidean2D, Vector2D> encloser =