| 190 | //----------------------------------------------------------------------------- |
| 191 | |
| 192 | MatrixF createOrientFromDir( const Point3F &direction ) |
| 193 | { |
| 194 | Point3F j = direction; |
| 195 | Point3F k(0.0f, 0.0f, 1.0f); |
| 196 | Point3F i; |
| 197 | |
| 198 | mCross( j, k, &i ); |
| 199 | |
| 200 | if( i.magnitudeSafe() == 0.0f ) |
| 201 | { |
| 202 | i.set( 0.0f, -1.0f, 0.0f ); |
| 203 | } |
| 204 | |
| 205 | i.normalizeSafe(); |
| 206 | mCross( i, j, &k ); |
| 207 | |
| 208 | MatrixF mat( true ); |
| 209 | mat.setColumn( 0, i ); |
| 210 | mat.setColumn( 1, j ); |
| 211 | mat.setColumn( 2, k ); |
| 212 | |
| 213 | return mat; |
| 214 | } |
| 215 | |
| 216 | //----------------------------------------------------------------------------- |
| 217 |
no test coverage detected