| @@ -1157,9 +1157,9 @@ private: | |||||
| tokens.removeEmptyStrings (true); | tokens.removeEmptyStrings (true); | ||||
| float numbers [6]; | |||||
| float numbers[6]; | |||||
| for (int i = 0; i < 6; ++i) | |||||
| for (int i = 0; i < numElementsInArray (numbers); ++i) | |||||
| numbers[i] = tokens[i].getFloatValue(); | numbers[i] = tokens[i].getFloatValue(); | ||||
| AffineTransform trans; | AffineTransform trans; | ||||
| @@ -1171,33 +1171,23 @@ private: | |||||
| } | } | ||||
| else if (t.startsWithIgnoreCase ("translate")) | else if (t.startsWithIgnoreCase ("translate")) | ||||
| { | { | ||||
| jassert (tokens.size() == 2); | |||||
| trans = AffineTransform::translation (numbers[0], numbers[1]); | trans = AffineTransform::translation (numbers[0], numbers[1]); | ||||
| } | } | ||||
| else if (t.startsWithIgnoreCase ("scale")) | else if (t.startsWithIgnoreCase ("scale")) | ||||
| { | { | ||||
| if (tokens.size() == 1) | |||||
| trans = AffineTransform::scale (numbers[0]); | |||||
| else | |||||
| trans = AffineTransform::scale (numbers[0], numbers[1]); | |||||
| trans = AffineTransform::scale (numbers[0], numbers[tokens.size() > 1 ? 1 : 0]); | |||||
| } | } | ||||
| else if (t.startsWithIgnoreCase ("rotate")) | else if (t.startsWithIgnoreCase ("rotate")) | ||||
| { | { | ||||
| if (tokens.size() != 3) | |||||
| trans = AffineTransform::rotation (numbers[0] / (180.0f / float_Pi)); | |||||
| else | |||||
| trans = AffineTransform::rotation (numbers[0] / (180.0f / float_Pi), | |||||
| numbers[1], numbers[2]); | |||||
| trans = AffineTransform::rotation (numbers[0] / (180.0f / float_Pi), numbers[1], numbers[2]); | |||||
| } | } | ||||
| else if (t.startsWithIgnoreCase ("skewX")) | else if (t.startsWithIgnoreCase ("skewX")) | ||||
| { | { | ||||
| trans = AffineTransform (1.0f, std::tan (numbers[0] * (float_Pi / 180.0f)), 0.0f, | |||||
| 0.0f, 1.0f, 0.0f); | |||||
| trans = AffineTransform::shear (std::tan (numbers[0] * (float_Pi / 180.0f)), 0.0f); | |||||
| } | } | ||||
| else if (t.startsWithIgnoreCase ("skewY")) | else if (t.startsWithIgnoreCase ("skewY")) | ||||
| { | { | ||||
| trans = AffineTransform (1.0f, 0.0f, 0.0f, | |||||
| std::tan (numbers[0] * (float_Pi / 180.0f)), 1.0f, 0.0f); | |||||
| trans = AffineTransform::shear (0.0f, std::tan (numbers[0] * (float_Pi / 180.0f))); | |||||
| } | } | ||||
| result = trans.followedBy (result); | result = trans.followedBy (result); | ||||