SVGParser.GetElementList C# (CSharp) Method

GetElementList() public method

public GetElementList ( List elementList, SVGPaintable, paintable, SVGGraphics, render, SVGTransformList, summaryTransformList ) : void
elementList List
paintable SVGPaintable,
render SVGGraphics,
summaryTransformList SVGTransformList,
return void
    public void GetElementList(List<ISVGDrawable> elementList, SVGPaintable paintable,
                             SVGGraphics render, SVGTransformList summaryTransformList)
    {
        bool exitFlag = false;
        while(!exitFlag && Next()) {
          if(Node is BlockCloseNode) {
        exitFlag = true;
        continue;
          }

          switch(Node.Name) {
          case SVGNodeName.Rect:     elementList.Add(new SVGRectElement(Node.Attributes, summaryTransformList, paintable, render)); break;
          case SVGNodeName.Line:     elementList.Add(new SVGLineElement(Node.Attributes, summaryTransformList, paintable, render)); break;
          case SVGNodeName.Circle:   elementList.Add(new SVGCircleElement(Node.Attributes, summaryTransformList, paintable, render)); break;
          case SVGNodeName.Ellipse:  elementList.Add(new SVGEllipseElement(Node.Attributes, summaryTransformList, paintable, render)); break;
          case SVGNodeName.PolyLine: elementList.Add(new SVGPolylineElement(Node.Attributes, summaryTransformList, paintable, render)); break;
          case SVGNodeName.Polygon:  elementList.Add(new SVGPolygonElement(Node.Attributes, summaryTransformList, paintable, render)); break;
          case SVGNodeName.Path:     elementList.Add(new SVGPathElement(Node.Attributes, summaryTransformList, paintable, render)); break;

          case SVGNodeName.SVG:      elementList.Add(new SVGSVGElement(this, summaryTransformList, paintable, render)); break;
          case SVGNodeName.G:        elementList.Add(new SVGGElement(this, summaryTransformList, paintable, render)); break;

          case SVGNodeName.LinearGradient: paintable.AppendLinearGradient(new SVGLinearGradientElement(this, Node.Attributes)); break;
          case SVGNodeName.RadialGradient: paintable.AppendRadialGradient(new SVGRadialGradientElement(this, Node.Attributes)); break;

          case SVGNodeName.Defs:  GetElementList(elementList, paintable, render, summaryTransformList); break;
          case SVGNodeName.Title: GetElementList(elementList, paintable, render, summaryTransformList); break;
          case SVGNodeName.Desc:  GetElementList(elementList, paintable, render, summaryTransformList); break;
          }
        }
    }

Usage Example

Beispiel #1
0
 // Use this for initialization
 void Start()
 {
     parser = new SVGParser(svgAsset.text);
     elms   = new List <SVGElement>();
     parser.GetElementList(elms);
     foreach (SVGElement ele in elms)
     {
         Debug.Log(ele.ToString());
         ele.Render(null, baseMaterial);
     }
 }
All Usage Examples Of SVGParser::GetElementList