Lines Matching refs:row
208 const Vec3<T> &row,
350 const Vec2<T> &row,
486 Vec3<T> row[3];
488 row[0] = Vec3<T> (mat[0][0], mat[0][1], mat[0][2]);
489 row[1] = Vec3<T> (mat[1][0], mat[1][1], mat[1][2]);
490 row[2] = Vec3<T> (mat[2][0], mat[2][1], mat[2][2]);
495 if (Imath::abs (row[i][j]) > maxVal)
496 maxVal = Imath::abs (row[i][j]);
509 if (! checkForZeroScaleInRow (maxVal, row[i], exc))
512 row[i] /= maxVal;
516 scl.x = row[0].length ();
517 if (! checkForZeroScaleInRow (scl.x, row[0], exc))
520 // Normalize first row.
521 row[0] /= scl.x;
533 // Compute XY shear factor and make 2nd row orthogonal to 1st.
534 shr[0] = row[0].dot (row[1]);
535 row[1] -= shr[0] * row[0];
538 scl.y = row[1].length ();
539 if (! checkForZeroScaleInRow (scl.y, row[1], exc))
542 // Normalize 2nd row and correct the XY shear factor for Y scaling.
543 row[1] /= scl.y;
546 // Compute XZ and YZ shears, orthogonalize 3rd row.
547 shr[1] = row[0].dot (row[2]);
548 row[2] -= shr[1] * row[0];
549 shr[2] = row[1].dot (row[2]);
550 row[2] -= shr[2] * row[1];
553 scl.z = row[2].length ();
554 if (! checkForZeroScaleInRow (scl.z, row[2], exc))
557 // Normalize 3rd row and correct the XZ and YZ shear factors for Z scaling.
558 row[2] /= scl.z;
565 if (row[0].dot (row[1].cross (row[2])) < 0)
569 row[i] *= -1;
576 mat[i][0] = row[i][0];
577 mat[i][1] = row[i][1];
578 mat[i][2] = row[i][2];
797 const Vec3<T> &row,
802 if ((abs (scl) < 1 && abs (row[i]) >= limits<T>::max() * abs (scl)))
907 // Rotate the x-axis into targetPerpDir (row 0),
908 // rotate the y-axis into targetUpDir (row 1),
909 // rotate the z-axis into targetDir (row 2).
912 Vec3<T> row[3];
913 row[0] = targetPerpDir.normalized ();
914 row[1] = targetUpDir .normalized ();
915 row[2] = targetDir .normalized ();
917 result.x[0][0] = row[0][0];
918 result.x[0][1] = row[0][1];
919 result.x[0][2] = row[0][2];
922 result.x[1][0] = row[1][0];
923 result.x[1][1] = row[1][1];
924 result.x[1][2] = row[1][2];
927 result.x[2][0] = row[2][0];
928 result.x[2][1] = row[2][1];
929 result.x[2][2] = row[2][2];
1161 Vec2<T> row[2];
1163 row[0] = Vec2<T> (mat[0][0], mat[0][1]);
1164 row[1] = Vec2<T> (mat[1][0], mat[1][1]);
1169 if (Imath::abs (row[i][j]) > maxVal)
1170 maxVal = Imath::abs (row[i][j]);
1183 if (! checkForZeroScaleInRow (maxVal, row[i], exc))
1186 row[i] /= maxVal;
1190 scl.x = row[0].length ();
1191 if (! checkForZeroScaleInRow (scl.x, row[0], exc))
1194 // Normalize first row.
1195 row[0] /= scl.x;
1206 // Compute XY shear factor and make 2nd row orthogonal to 1st.
1207 shr = row[0].dot (row[1]);
1208 row[1] -= shr * row[0];
1211 scl.y = row[1].length ();
1212 if (! checkForZeroScaleInRow (scl.y, row[1], exc))
1215 // Normalize 2nd row and correct the XY shear factor for Y scaling.
1216 row[1] /= scl.y;
1223 if (row[0][0] * row[1][1] - row[0][1] * row[1][0] < 0)
1225 row[1][0] *= -1;
1226 row[1][1] *= -1;
1235 mat[i][0] = row[i][0];
1236 mat[i][1] = row[i][1];
1294 const Vec2<T> &row,
1299 if ((abs (scl) < 1 && abs (row[i]) >= limits<T>::max() * abs (scl)))