#include "Test.h" #include "SkPathMeasure.h" static void TestPathMeasure(skiatest::Reporter* reporter) { SkPath path; path.moveTo(0, 0); path.lineTo(SK_Scalar1, 0); path.lineTo(SK_Scalar1, SK_Scalar1); path.lineTo(0, SK_Scalar1); SkPathMeasure meas(path, true); SkScalar length = meas.getLength(); SkASSERT(length == SK_Scalar1*4); path.reset(); path.moveTo(0, 0); path.lineTo(SK_Scalar1*3, SK_Scalar1*4); meas.setPath(&path, false); length = meas.getLength(); REPORTER_ASSERT(reporter, length == SK_Scalar1*5); path.reset(); path.addCircle(0, 0, SK_Scalar1); meas.setPath(&path, true); length = meas.getLength(); // SkDebugf("circle arc-length = %g\n", length); for (int i = 0; i < 8; i++) { SkScalar d = length * i / 8; SkPoint p; SkVector v; meas.getPosTan(d, &p, &v); #if 0 SkDebugf("circle arc-length=%g, pos[%g %g] tan[%g %g]\n", d, p.fX, p.fY, v.fX, v.fY); #endif } } #include "TestClassDef.h" DEFINE_TESTCLASS("PathMeasure", PathMeasureTestClass, TestPathMeasure)