SharpVectors.Dom.Svg.SvgUseElement.CacheRenderingRegion C# (CSharp) Method

CacheRenderingRegion() public method

public CacheRenderingRegion ( ISvgRenderer renderer ) : void
renderer ISvgRenderer
return void
        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;
        }