MCPcopy Create free account
hub / github.com/MyGUI/mygui / parseTransformation

Function parseTransformation

MyGUIEngine/src/msdfgen/ext/import-svg.cpp:630–664  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

628}
629
630static SkMatrix parseTransformation(int &flags, const char *str) {
631 SkMatrix transformation;
632 skipExtraChars(str);
633 while (*str) {
634 SkScalar values[6];
635 int count;
636 SkMatrix partial;
637 if (readTransformationOp(values, count, str, "matrix") && count == 6) {
638 partial.setAll(values[0], values[2], values[4], values[1], values[3], values[5], SkScalar(0), SkScalar(0), SkScalar(1));
639 } else if (readTransformationOp(values, count, str, "translate") && (count == 1 || count == 2)) {
640 if (count == 1)
641 values[1] = SkScalar(0);
642 partial.setTranslate(values[0], values[1]);
643 } else if (readTransformationOp(values, count, str, "scale") && (count == 1 || count == 2)) {
644 if (count == 1)
645 values[1] = values[0];
646 partial.setScale(values[0], values[1]);
647 } else if (readTransformationOp(values, count, str, "rotate") && (count == 1 || count == 3)) {
648 if (count == 3)
649 partial.setRotate(values[0], values[1], values[2]);
650 else
651 partial.setRotate(values[0]);
652 } else if (readTransformationOp(values, count, str, "skewX") && count == 1) {
653 partial.setSkewX(SkScalar(tan(M_PI/180*values[0])));
654 } else if (readTransformationOp(values, count, str, "skewY") && count == 1) {
655 partial.setSkewY(SkScalar(tan(M_PI/180*values[0])));
656 } else {
657 flags |= SVG_IMPORT_PARTIAL_FAILURE_FLAG;
658 break;
659 }
660 transformation = transformation*partial;
661 skipExtraChars(str);
662 }
663 return transformation;
664}
665
666static SkMatrix combineTransformation(int &flags, const SkMatrix &parentTransformation, const char *transformationString, const char *transformationOriginString) {
667 if (transformationString && *transformationString) {

Callers 1

combineTransformationFunction · 0.85

Calls 3

skipExtraCharsFunction · 0.85
readTransformationOpFunction · 0.85
setScaleMethod · 0.45

Tested by

no test coverage detected