/** * Constructs a circle according to the specified parameters. * * @param ctx the bridge context to use * @param e the element that describes a rect element * @param shapeNode the shape node to initialize */ protected void buildShape(BridgeContext ctx, Element e, ShapeNode shapeNode) { try { SVGOMCircleElement ce = (SVGOMCircleElement) e; // 'cx' attribute - default is 0 AbstractSVGAnimatedLength _cx = (AbstractSVGAnimatedLength) ce.getCx(); float cx = _cx.getCheckedValue(); // 'cy' attribute - default is 0 AbstractSVGAnimatedLength _cy = (AbstractSVGAnimatedLength) ce.getCy(); float cy = _cy.getCheckedValue(); // 'r' attribute - required AbstractSVGAnimatedLength _r = (AbstractSVGAnimatedLength) ce.getR(); float r = _r.getCheckedValue(); float x = cx - r; float y = cy - r; float w = r * 2; shapeNode.setShape(new Ellipse2D.Float(x, y, w, w)); } catch (LiveAttributeException ex) { throw new BridgeException(ctx, ex); } }