public void TransformParseAttr(string type, string parms) { float[] values = StringParser.ConvertAttrNumber(parms); float y; float x; switch (type) { case "matrix": _type = SVGTransformType.SVG_TRANSFORM_MATRIX; setMatrix(new SVGMatrix(values[0], values[1], values[2], values[3], values[4], values[5])); break; case "translate": _type = SVGTransformType.SVG_TRANSFORM_TRANSLATE; y = values.Length == 2 ? y = values[1] : 0; setTranslate(values[0], y); break; case "scale": _type = SVGTransformType.SVG_TRANSFORM_SCALE; y = values.Length == 2 ? y = values[1] : 0; setScale(values[0], y); break; case "rotate": _type = SVGTransformType.SVG_TRANSFORM_ROTATE; x = values.Length >= 2 ? x = values[1] : 0; y = values.Length >= 3 ? y = values[0] : 0; setRotate(values[0], x, y); break; case "skewX": _type = SVGTransformType.SVG_TRANSFORM_SKEWX; setSkewX(values[0]); break; case "skewY": _type = SVGTransformType.SVG_TRANSFORM_SKEWY; setSkewY(values[0]); break; default: Debug.Log("Transformacion Desconocida!"); break; } }
public void setSkewY(float angle) { _type = SVGTransformType.SVG_TRANSFORM_SKEWY; _matrix = new SVGMatrix().SkewY(angle); }
public void setRotate(float angle, float cx, float cy) { _type = SVGTransformType.SVG_TRANSFORM_ROTATE; _matrix = new SVGMatrix().Translate(cx, cy).Rotate(angle).Translate(-cx, -cy); }
public void setScale(float sx, float sy) { _type = SVGTransformType.SVG_TRANSFORM_SCALE; _matrix = new SVGMatrix().ScaleNonUniform(sx, sy); }
public void setTranslate(float tx, float ty) { _type = SVGTransformType.SVG_TRANSFORM_TRANSLATE; _matrix = new SVGMatrix().Translate(tx, ty); }
public SVGTransform() { _matrix = new SVGMatrix(); _type = SVGTransformType.SVG_TRANSFORM_MATRIX; _angle = 0; }