226 this->
Set(1, 0, 0, 0, 1, 0, 0, 0, 1);
234 this->
Set(1, 0, 0, 0, 1, 0, 0, 0, 1);
239 if (fabs(
dot - 1.0) <= 1
e-6)
242 this->
Set(1, 0, 0, 0, 1, 0, 0, 0, 1);
245 else if (fabs(
dot + 1.0) <= 1
e-6)
248 this->
Set(-1, 0, 0, 0, -1, 0, 0, 0, -1);
254 this->SetFromAxisAngle(
cross, acos(
dot));
466 T
t0 = this->data[2][2]*this->data[1][1]
467 - this->data[2][1]*this->data[1][2];
469 T
t1 = -(this->data[2][2]*this->data[1][0]
470 -this->data[2][0]*this->data[1][2]);
472 T
t2 = this->data[2][1]*this->data[1][0]
473 - this->data[2][0]*this->data[1][1];
475 return t0 * this->data[0][0]
476 +
t1 * this->data[0][1]
477 +
t2 * this->data[0][2];
484 T
t0 = this->data[2][2]*this->data[1][1] -
485 this->data[2][1]*this->data[1][2];
487 T
t1 = -(this->data[2][2]*this->data[1][0] -
488 this->data[2][0]*this->data[1][2]);
490 T
t2 = this->data[2][1]*this->data[1][0] -
491 this->data[2][0]*this->data[1][1];
493 T
invDet = 1.0 / (
t0 * this->data[0][0] +
494 t1 * this->data[0][1] +
495 t2 * this->data[0][2]);
499 - (this->data[2][2] * this->data[0][1] -
500 this->data[2][1] * this->data[0][2]),
501 + (this->data[1][2] * this->data[0][1] -
502 this->data[1][1] * this->data[0][2]),
504 + (this->data[2][2] * this->data[0][0] -
505 this->data[2][0] * this->data[0][2]),
506 - (this->data[1][2] * this->data[0][0] -
507 this->data[1][0] * this->data[0][2]),
509 - (this->data[2][1] * this->data[0][0] -
510 this->data[2][0] * this->data[0][1]),
511 + (this->data[1][1] * this->data[0][0] -
512 this->data[1][0] * this->data[0][1]));
528 this->data[0][0], this->data[1][0], this->data[2][0],
529 this->data[0][1], this->data[1][1], this->data[2][1],
530 this->data[0][2], this->data[1][2], this->data[2][2]);