public GRectangle getBounds() {
		PathState state = new PathState();
		GRectangle bounds = new GRectangle(-1, -1, -1, -1);
		state.sx = sx;
		state.sy = sy;
		synchronized (path) {
			int nElements = path.size();
			for (int i = 0; i < nElements; i++) {
				PathElement element = (PathElement) path.get(i);
				element.updateBounds(bounds, state);
			}
		}
		return bounds;
	}