code: private void render(SVG.Symbol obj, Box viewPort)
     {
        debug("Symbol render");
  
        if (viewPort.width == 0f || viewPort.height == 0f)
           return;
  
        // "If attribute 'preserveAspectRatio' is not specified, then the effect is as if a value of xMidYMid meet were specified."
        PreserveAspectRatio  positioning = (obj.preserveAspectRatio != null) ? obj.preserveAspectRatio : PreserveAspectRatio.LETTERBOX;
  
        updateStyleForElement(state, obj);
  
        state.viewPort = viewPort;
  
        if (!state.style.overflow) {
           setClipRect(state.viewPort.minX, state.viewPort.minY, state.viewPort.width, state.viewPort.height);
        }
  
        if (obj.viewBox != null) {
           canvas.concat(calculateViewBoxTransform(state.viewPort, obj.viewBox, positioning));
           state.viewBox = obj.viewBox;
        } else {
           canvas.translate(state.viewPort.minX, state.viewPort.minY);
        }
        
        boolean  compositing = pushLayer();
  
        renderChildren(obj, true);
  
        if (compositing)
           popLayer(obj);
  
        updateParentBoundingBox(obj);
     }
docs: ==============================================================================