| 216 | //----------------------------------------------------------------------------- |
| 217 | |
| 218 | void getMatrixFromUpVector( const VectorF &up, MatrixF *outMat ) |
| 219 | { |
| 220 | AssertFatal( up.isUnitLength(), "MathUtils::getMatrixFromUpVector() - Up vector was not normalized!" ); |
| 221 | AssertFatal( outMat, "MathUtils::getMatrixFromUpVector() - Got null output matrix!" ); |
| 222 | AssertFatal( outMat->isAffine(), "MathUtils::getMatrixFromUpVector() - Got uninitialized matrix!" ); |
| 223 | |
| 224 | VectorF forward = mPerp( up ); |
| 225 | VectorF right = mCross( forward, up ); |
| 226 | right.normalize(); |
| 227 | forward = mCross( up, right ); |
| 228 | forward.normalize(); |
| 229 | |
| 230 | outMat->setColumn( 0, right ); |
| 231 | outMat->setColumn( 1, forward ); |
| 232 | outMat->setColumn( 2, up ); |
| 233 | } |
| 234 | |
| 235 | //----------------------------------------------------------------------------- |
| 236 |
no test coverage detected