| 257 | } |
| 258 | |
| 259 | Matrix3D Matrix3D::MakeSkew(float angle, const Vector3D& a, const Vector3D& b) |
| 260 | { |
| 261 | float t = Tan(angle); |
| 262 | float x = a.x * t; |
| 263 | float y = a.y * t; |
| 264 | float z = a.z * t; |
| 265 | |
| 266 | return (Matrix3D(x * b.x + 1.0F, x * b.y, x * b.z, |
| 267 | y * b.x, y * b.y + 1.0F, y * b.z, |
| 268 | z * b.x, z * b.y, z * b.z + 1.0F)); |
| 269 | } |
| 270 | |
| 271 | |
| 272 | Matrix3D Terathon::operator *(const Matrix3D& m, float s) |