public override void CacheRenderingRegion(ISvgRenderer renderer)
{
SvgTransformableElement refEl = ReferencedElement as SvgTransformableElement;
if (refEl == null)
return;
if(renderingNode == null)
{
renderingNode = renderer.GetRenderingNode(this);
}
// Check if it has already been calculated
if (renderingNode != null && renderingNode.ScreenRegion != RectangleF.Empty)
return;
XmlElement refElParent = (XmlElement)refEl.ParentNode;
OwnerDocument.Static = true;
CopyToReferencedElement(refEl);
refElParent.RemoveChild(refEl);
this.AppendChild(refEl);
refEl.CacheRenderingRegion(renderer);
renderingNode.ScreenRegion = refEl.RenderingNode.ScreenRegion;
this.RemoveChild(refEl);
RestoreReferencedElement(refEl);
refElParent.AppendChild(refEl);
OwnerDocument.Static = false;
}