public void setStrokeThickness(int strokeThickness) {
throw new UnsupportedOperationException();
}
public void draw(Graphics2D graphics) {
Bounds clipBounds = new Bounds(graphics.getClipBounds());
// Draw each sub-shape
for (Shape shape : shapes) {
if (shape.isVisible()) {
int x = shape.getX();
int y = shape.getY();
Bounds transformedBounds = shape.getTransformedBounds();
transformedBounds = transformedBounds.translate(x, y);
if (transformedBounds.intersects(clipBounds)) {
Graphics2D shapeGraphics = (Graphics2D)graphics.create();
shapeGraphics.translate(x, y);
shapeGraphics.transform(shape.getTransforms().getAffineTransform());
shape.draw(shapeGraphics);
shapeGraphics.dispose();