Lines Matching refs:mat
195 SkMatrix mat; in test_matrix_min_max_scale() local
196 mat.reset(); in test_matrix_min_max_scale()
199 mat.postConcat(mats[x]); in test_matrix_min_max_scale()
202 SkScalar minScale = mat.getMinScale(); in test_matrix_min_max_scale()
203 SkScalar maxScale = mat.getMaxScale(); in test_matrix_min_max_scale()
205 REPORTER_ASSERT(reporter, (maxScale < 0) == mat.hasPerspective()); in test_matrix_min_max_scale()
208 bool success = mat.getMinMaxScales(scales); in test_matrix_min_max_scale()
209 REPORTER_ASSERT(reporter, success == !mat.hasPerspective()); in test_matrix_min_max_scale()
212 if (mat.hasPerspective()) { in test_matrix_min_max_scale()
231 mat.mapVectors(vectors, SK_ARRAY_COUNT(vectors)); in test_matrix_min_max_scale()
249 SkMatrix mat; in test_matrix_is_similarity() local
252 mat.setIdentity(); in test_matrix_is_similarity()
253 REPORTER_ASSERT(reporter, mat.isSimilarity()); in test_matrix_is_similarity()
256 mat.reset(); in test_matrix_is_similarity()
257 mat.setTranslate(SkIntToScalar(100), SkIntToScalar(100)); in test_matrix_is_similarity()
258 REPORTER_ASSERT(reporter, mat.isSimilarity()); in test_matrix_is_similarity()
261 mat.reset(); in test_matrix_is_similarity()
262 mat.setScale(SkIntToScalar(15), SkIntToScalar(15)); in test_matrix_is_similarity()
263 REPORTER_ASSERT(reporter, mat.isSimilarity()); in test_matrix_is_similarity()
266 mat.reset(); in test_matrix_is_similarity()
267 mat.setScale(SkIntToScalar(-15), SkIntToScalar(15)); in test_matrix_is_similarity()
268 REPORTER_ASSERT(reporter, mat.isSimilarity()); in test_matrix_is_similarity()
271 mat.reset(); in test_matrix_is_similarity()
272 mat.setScale(SkIntToScalar(15), SkIntToScalar(20)); in test_matrix_is_similarity()
273 REPORTER_ASSERT(reporter, !mat.isSimilarity()); in test_matrix_is_similarity()
276 mat.reset(); in test_matrix_is_similarity()
277 mat.setScale(SkIntToScalar(15), SkIntToScalar(15), in test_matrix_is_similarity()
279 REPORTER_ASSERT(reporter, mat.isSimilarity()); in test_matrix_is_similarity()
282 mat.reset(); in test_matrix_is_similarity()
283 mat.setScale(SkIntToScalar(15), SkIntToScalar(20), in test_matrix_is_similarity()
285 REPORTER_ASSERT(reporter, !mat.isSimilarity()); in test_matrix_is_similarity()
288 mat.reset(); in test_matrix_is_similarity()
289 mat.setSkew(SkIntToScalar(15), SkIntToScalar(15)); in test_matrix_is_similarity()
290 REPORTER_ASSERT(reporter, !mat.isSimilarity()); in test_matrix_is_similarity()
293 mat.reset(); in test_matrix_is_similarity()
294 mat.setSkew(SkIntToScalar(15), SkIntToScalar(20)); in test_matrix_is_similarity()
295 REPORTER_ASSERT(reporter, !mat.isSimilarity()); in test_matrix_is_similarity()
298 mat.reset(); in test_matrix_is_similarity()
299 mat.setSkew(SkIntToScalar(15), SkIntToScalar(15), in test_matrix_is_similarity()
301 REPORTER_ASSERT(reporter, !mat.isSimilarity()); in test_matrix_is_similarity()
304 mat.reset(); in test_matrix_is_similarity()
305 mat.setSkew(SkIntToScalar(15), SkIntToScalar(20), in test_matrix_is_similarity()
307 REPORTER_ASSERT(reporter, !mat.isSimilarity()); in test_matrix_is_similarity()
310 mat.reset(); in test_matrix_is_similarity()
311 mat.setPerspX(SkScalarToPersp(SK_Scalar1 / 2)); in test_matrix_is_similarity()
312 REPORTER_ASSERT(reporter, !mat.isSimilarity()); in test_matrix_is_similarity()
315 mat.reset(); in test_matrix_is_similarity()
316 mat.setPerspY(SkScalarToPersp(SK_Scalar1 / 2)); in test_matrix_is_similarity()
317 REPORTER_ASSERT(reporter, !mat.isSimilarity()); in test_matrix_is_similarity()
321 mat.reset(); in test_matrix_is_similarity()
322 mat.setRotate(SkIntToScalar(angle)); in test_matrix_is_similarity()
324 REPORTER_ASSERT(reporter, mat.isSimilarity()); in test_matrix_is_similarity()
328 REPORTER_ASSERT(reporter, mat.isSimilarity(SK_ScalarNearlyZero + 0.00010113f)); in test_matrix_is_similarity()
333 mat.reset(); in test_matrix_is_similarity()
335 mat.postRotate(SkIntToScalar(1)); in test_matrix_is_similarity()
337 REPORTER_ASSERT(reporter, mat.isSimilarity()); in test_matrix_is_similarity()
340 mat.reset(); in test_matrix_is_similarity()
341 mat.setRotate(SkIntToScalar(30)); in test_matrix_is_similarity()
342 mat.postTranslate(SkIntToScalar(10), SkIntToScalar(20)); in test_matrix_is_similarity()
343 REPORTER_ASSERT(reporter, mat.isSimilarity()); in test_matrix_is_similarity()
346 mat.reset(); in test_matrix_is_similarity()
347 mat.setRotate(SkIntToScalar(30)); in test_matrix_is_similarity()
348 mat.postScale(SkIntToScalar(2), SkIntToScalar(2)); in test_matrix_is_similarity()
349 REPORTER_ASSERT(reporter, mat.isSimilarity()); in test_matrix_is_similarity()
352 mat.reset(); in test_matrix_is_similarity()
353 mat.setRotate(SkIntToScalar(30)); in test_matrix_is_similarity()
354 mat.postScale(SkIntToScalar(3), SkIntToScalar(2)); in test_matrix_is_similarity()
355 REPORTER_ASSERT(reporter, !mat.isSimilarity()); in test_matrix_is_similarity()
358 mat.setAll(0, 0, 0, 0, 0, 0, 0, 0, 0); in test_matrix_is_similarity()
359 REPORTER_ASSERT(reporter, !mat.isSimilarity()); in test_matrix_is_similarity()
362 mat.setAll(0, 0, 0, 0, 0, 0, 0, 0, SK_Scalar1); in test_matrix_is_similarity()
363 REPORTER_ASSERT(reporter, !mat.isSimilarity()); in test_matrix_is_similarity()
366 mat.setAll(0, SK_Scalar1, 0, in test_matrix_is_similarity()
369 REPORTER_ASSERT(reporter, mat.isSimilarity()); in test_matrix_is_similarity()
394 static bool check_matrix_recomposition(const SkMatrix& mat, in check_matrix_recomposition() argument
406 bool result = scalar_nearly_equal_relative(mat[SkMatrix::kMScaleX], in check_matrix_recomposition()
408 scalar_nearly_equal_relative(mat[SkMatrix::kMSkewX], in check_matrix_recomposition()
410 scalar_nearly_equal_relative(mat[SkMatrix::kMSkewY], in check_matrix_recomposition()
412 scalar_nearly_equal_relative(mat[SkMatrix::kMScaleY], in check_matrix_recomposition()
418 SkMatrix mat; in test_matrix_decomposition() local
427 mat.reset(); in test_matrix_decomposition()
428 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
429 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
431 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, NULL, NULL, NULL)); in test_matrix_decomposition()
434 mat.setRotate(kRotation0); in test_matrix_decomposition()
435 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
436 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
439 mat.setScale(kScale0, kScale0); in test_matrix_decomposition()
440 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
441 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
444 mat.setScale(kScale1, kScale0); in test_matrix_decomposition()
445 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
446 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
449 mat.setRotate(kRotation1); in test_matrix_decomposition()
450 mat.postScale(kScale0, kScale0); in test_matrix_decomposition()
451 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
452 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
455 mat.setScale(kScale0, kScale0); in test_matrix_decomposition()
456 mat.postRotate(kRotation1); in test_matrix_decomposition()
457 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
458 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
461 mat.setRotate(kRotation0); in test_matrix_decomposition()
462 mat.postScale(kScale1, -kScale1); in test_matrix_decomposition()
463 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
464 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
467 mat.setScale(kScale0, -kScale0); in test_matrix_decomposition()
468 mat.postRotate(kRotation1); in test_matrix_decomposition()
469 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
470 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
473 mat.setRotate(kRotation1); in test_matrix_decomposition()
474 mat.postScale(kScale1, kScale0); in test_matrix_decomposition()
475 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
476 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
479 mat.setRotate(90); in test_matrix_decomposition()
480 mat.postScale(kScale1, kScale0); in test_matrix_decomposition()
481 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
482 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
485 mat.setScale(kScale1, kScale0); in test_matrix_decomposition()
486 mat.postRotate(kRotation0); in test_matrix_decomposition()
487 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
488 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
491 mat.setScale(kScale1, kScale0); in test_matrix_decomposition()
492 mat.postRotate(90); in test_matrix_decomposition()
493 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
494 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
497 mat.setRotate(kRotation1); in test_matrix_decomposition()
498 mat.postScale(kScale0, kScale0); in test_matrix_decomposition()
499 mat.postRotate(kRotation0); in test_matrix_decomposition()
500 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
501 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
504 mat.setRotate(kRotation0); in test_matrix_decomposition()
505 mat.postScale(kScale1, kScale0); in test_matrix_decomposition()
506 mat.postRotate(kRotation1); in test_matrix_decomposition()
507 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
508 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
511 mat.setRotate(kRotation0); in test_matrix_decomposition()
512 mat.postScale(-kScale1, kScale0); in test_matrix_decomposition()
513 mat.postRotate(kRotation1); in test_matrix_decomposition()
514 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
515 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
524 mat.setRotate(rot0); in test_matrix_decomposition()
525 mat.postScale(sx, sy); in test_matrix_decomposition()
526 mat.postRotate(rot1); in test_matrix_decomposition()
528 if (SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)) { in test_matrix_decomposition()
529 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
532 SkScalar perpdot = mat[SkMatrix::kMScaleX]*mat[SkMatrix::kMScaleY] - in test_matrix_decomposition()
533 mat[SkMatrix::kMSkewX]*mat[SkMatrix::kMSkewY]; in test_matrix_decomposition()
539 mat.postTranslate(-1000.f, 1000.f); in test_matrix_decomposition()
540 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
541 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
544 mat[SkMatrix::kMPersp0] = 12.f; in test_matrix_decomposition()
545 mat[SkMatrix::kMPersp1] = 4.f; in test_matrix_decomposition()
546 mat[SkMatrix::kMPersp2] = 1872.f; in test_matrix_decomposition()
547 REPORTER_ASSERT(reporter, SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
548 REPORTER_ASSERT(reporter, check_matrix_recomposition(mat, rotation1, scale, rotation2)); in test_matrix_decomposition()
552 mat.reset(); in test_matrix_decomposition()
553 mat[SkMatrix::kMScaleX] = 0.f; in test_matrix_decomposition()
554 REPORTER_ASSERT(reporter, !SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
555 mat.reset(); in test_matrix_decomposition()
556 mat[SkMatrix::kMScaleY] = 0.f; in test_matrix_decomposition()
557 REPORTER_ASSERT(reporter, !SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
558 mat.reset(); in test_matrix_decomposition()
560 mat[SkMatrix::kMScaleX] = 1.f; in test_matrix_decomposition()
561 mat[SkMatrix::kMSkewX] = 2.f; in test_matrix_decomposition()
562 mat[SkMatrix::kMSkewY] = 4.f; in test_matrix_decomposition()
563 mat[SkMatrix::kMScaleY] = 8.f; in test_matrix_decomposition()
564 REPORTER_ASSERT(reporter, !SkDecomposeUpper2x2(mat, &rotation1, &scale, &rotation2)); in test_matrix_decomposition()
592 SkMatrix mat; in test_matrix_homogeneous() local
616 mat.reset(); in test_matrix_homogeneous()
618 mat.mapHomogeneousPoints(dst, randTriples, kTripleCount); in test_matrix_homogeneous()
624 mat.setAll(0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f); in test_matrix_homogeneous()
626 mat.mapHomogeneousPoints(dst, randTriples, kTripleCount); in test_matrix_homogeneous()
650 mat.setScale(kScale0, kScale0); in test_matrix_homogeneous()
655 mat.mapHomogeneousPoints(dst, src, 1); in test_matrix_homogeneous()
656 mat.mapPoints(&pnt, &pnt, 1); in test_matrix_homogeneous()
664 mat.setRotate(kRotation0); in test_matrix_homogeneous()
669 mat.mapHomogeneousPoints(dst, src, 1); in test_matrix_homogeneous()
670 mat.mapPoints(&pnt, &pnt, 1); in test_matrix_homogeneous()
678 mat.setRotate(kRotation1); in test_matrix_homogeneous()
679 mat.postScale(kScale0, kScale0); in test_matrix_homogeneous()
680 mat.postRotate(kRotation0); in test_matrix_homogeneous()
685 mat.mapHomogeneousPoints(dst, src, 1); in test_matrix_homogeneous()
686 mat.mapPoints(&pnt, &pnt, 1); in test_matrix_homogeneous()
706 SkMatrix mat, inverse, iden1, iden2; in DEF_TEST() local
708 mat.reset(); in DEF_TEST()
709 mat.setTranslate(SK_Scalar1, SK_Scalar1); in DEF_TEST()
710 REPORTER_ASSERT(reporter, mat.invert(&inverse)); in DEF_TEST()
711 iden1.setConcat(mat, inverse); in DEF_TEST()
714 mat.setScale(SkIntToScalar(2), SkIntToScalar(4)); in DEF_TEST()
715 REPORTER_ASSERT(reporter, mat.invert(&inverse)); in DEF_TEST()
716 iden1.setConcat(mat, inverse); in DEF_TEST()
718 test_flatten(reporter, mat); in DEF_TEST()
720 mat.setScale(SK_Scalar1/2, SkIntToScalar(2)); in DEF_TEST()
721 REPORTER_ASSERT(reporter, mat.invert(&inverse)); in DEF_TEST()
722 iden1.setConcat(mat, inverse); in DEF_TEST()
724 test_flatten(reporter, mat); in DEF_TEST()
726 mat.setScale(SkIntToScalar(3), SkIntToScalar(5), SkIntToScalar(20), 0); in DEF_TEST()
727 mat.postRotate(SkIntToScalar(25)); in DEF_TEST()
728 REPORTER_ASSERT(reporter, mat.invert(NULL)); in DEF_TEST()
729 REPORTER_ASSERT(reporter, mat.invert(&inverse)); in DEF_TEST()
730 iden1.setConcat(mat, inverse); in DEF_TEST()
732 iden2.setConcat(inverse, mat); in DEF_TEST()
734 test_flatten(reporter, mat); in DEF_TEST()
737 mat.setScale(0, SK_Scalar1); in DEF_TEST()
738 REPORTER_ASSERT(reporter, !mat.invert(NULL)); in DEF_TEST()
739 REPORTER_ASSERT(reporter, !mat.invert(&inverse)); in DEF_TEST()
740 mat.setScale(SK_Scalar1, 0); in DEF_TEST()
741 REPORTER_ASSERT(reporter, !mat.invert(NULL)); in DEF_TEST()
742 REPORTER_ASSERT(reporter, !mat.invert(&inverse)); in DEF_TEST()
782 mat.reset(); in DEF_TEST()
783 mat.set(SkMatrix::kMScaleX, SkIntToScalar(1)); in DEF_TEST()
784 mat.set(SkMatrix::kMSkewX, SkIntToScalar(2)); in DEF_TEST()
785 mat.set(SkMatrix::kMTransX, SkIntToScalar(3)); in DEF_TEST()
786 mat.set(SkMatrix::kMSkewY, SkIntToScalar(4)); in DEF_TEST()
787 mat.set(SkMatrix::kMScaleY, SkIntToScalar(5)); in DEF_TEST()
788 mat.set(SkMatrix::kMTransY, SkIntToScalar(6)); in DEF_TEST()
790 REPORTER_ASSERT(reporter, mat.asAffine(affine)); in DEF_TEST()
792 #define affineEqual(e) affine[SkMatrix::kA##e] == mat.get(SkMatrix::kM##e) in DEF_TEST()
801 mat.set(SkMatrix::kMPersp1, SkScalarToPersp(SK_Scalar1 / 2)); in DEF_TEST()
802 REPORTER_ASSERT(reporter, !mat.asAffine(affine)); in DEF_TEST()
806 mat.reset(); in DEF_TEST()
808 mat.set(SkMatrix::kMSkewX, -zero); in DEF_TEST()
809 REPORTER_ASSERT(reporter, are_equal(reporter, mat, mat2)); in DEF_TEST()
812 mat.reset(); in DEF_TEST()
813 mat.set(SkMatrix::kMSkewX, SK_ScalarNaN); in DEF_TEST()
815 REPORTER_ASSERT(reporter, !are_equal(reporter, mat, mat2)); in DEF_TEST()