Lines Matching refs:inverse

451 bool SkMatrix44::invert(SkMatrix44* inverse) const {
453 if (inverse) {
454 inverse->setIdentity();
460 if (inverse) {
461 inverse->setTranslate(-fMat[3][0], -fMat[3][1], -fMat[3][2]);
471 if (inverse) {
476 inverse->fMat[0][0] = invXScale;
477 inverse->fMat[0][1] = 0;
478 inverse->fMat[0][2] = 0;
479 inverse->fMat[0][3] = 0;
481 inverse->fMat[1][0] = 0;
482 inverse->fMat[1][1] = invYScale;
483 inverse->fMat[1][2] = 0;
484 inverse->fMat[1][3] = 0;
486 inverse->fMat[2][0] = 0;
487 inverse->fMat[2][1] = 0;
488 inverse->fMat[2][2] = invZScale;
489 inverse->fMat[2][3] = 0;
491 inverse->fMat[3][0] = -fMat[3][0] * invXScale;
492 inverse->fMat[3][1] = -fMat[3][1] * invYScale;
493 inverse->fMat[3][2] = -fMat[3][2] * invZScale;
494 inverse->fMat[3][3] = 1;
496 inverse->setTypeMask(this->getType());
522 // of arithmetic that would otherwise be spent to compute the inverse
550 if (NULL == inverse) {
564 inverse->fMat[0][0] = SkDoubleToMScalar(a11 * b11 - a12 * b10);
565 inverse->fMat[0][1] = SkDoubleToMScalar(a02 * b10 - a01 * b11);
566 inverse->fMat[0][2] = SkDoubleToMScalar(b03);
567 inverse->fMat[0][3] = 0;
568 inverse->fMat[1][0] = SkDoubleToMScalar(a12 * b08 - a10 * b11);
569 inverse->fMat[1][1] = SkDoubleToMScalar(a00 * b11 - a02 * b08);
570 inverse->fMat[1][2] = SkDoubleToMScalar(-b01);
571 inverse->fMat[1][3] = 0;
572 inverse->fMat[2][0] = SkDoubleToMScalar(a10 * b10 - a11 * b08);
573 inverse->fMat[2][1] = SkDoubleToMScalar(a01 * b08 - a00 * b10);
574 inverse->fMat[2][2] = SkDoubleToMScalar(b00);
575 inverse->fMat[2][3] = 0;
576 inverse->fMat[3][0] = SkDoubleToMScalar(a11 * b07 - a10 * b09 - a12 * b06);
577 inverse->fMat[3][1] = SkDoubleToMScalar(a00 * b09 - a01 * b07 + a02 * b06);
578 inverse->fMat[3][2] = SkDoubleToMScalar(a31 * b01 - a30 * b03 - a32 * b00);
579 inverse->fMat[3][3] = 1;
581 inverse->setTypeMask(this->getType());
608 if (NULL == inverse) {
625 inverse->fMat[0][0] = SkDoubleToMScalar(a11 * b11 - a12 * b10 + a13 * b09);
626 inverse->fMat[0][1] = SkDoubleToMScalar(a02 * b10 - a01 * b11 - a03 * b09);
627 inverse->fMat[0][2] = SkDoubleToMScalar(a31 * b05 - a32 * b04 + a33 * b03);
628 inverse->fMat[0][3] = SkDoubleToMScalar(a22 * b04 - a21 * b05 - a23 * b03);
629 inverse->fMat[1][0] = SkDoubleToMScalar(a12 * b08 - a10 * b11 - a13 * b07);
630 inverse->fMat[1][1] = SkDoubleToMScalar(a00 * b11 - a02 * b08 + a03 * b07);
631 inverse->fMat[1][2] = SkDoubleToMScalar(a32 * b02 - a30 * b05 - a33 * b01);
632 inverse->fMat[1][3] = SkDoubleToMScalar(a20 * b05 - a22 * b02 + a23 * b01);
633 inverse->fMat[2][0] = SkDoubleToMScalar(a10 * b10 - a11 * b08 + a13 * b06);
634 inverse->fMat[2][1] = SkDoubleToMScalar(a01 * b08 - a00 * b10 - a03 * b06);
635 inverse->fMat[2][2] = SkDoubleToMScalar(a30 * b04 - a31 * b02 + a33 * b00);
636 inverse->fMat[2][3] = SkDoubleToMScalar(a21 * b02 - a20 * b04 - a23 * b00);
637 inverse->fMat[3][0] = SkDoubleToMScalar(a11 * b07 - a10 * b09 - a12 * b06);
638 inverse->fMat[3][1] = SkDoubleToMScalar(a00 * b09 - a01 * b07 + a02 * b06);
639 inverse->fMat[3][2] = SkDoubleToMScalar(a31 * b01 - a30 * b03 - a32 * b00);
640 inverse->fMat[3][3] = SkDoubleToMScalar(a20 * b03 - a21 * b01 + a22 * b00);
641 inverse->dirtyTypeMask();