| 631 | } |
| 632 | |
| 633 | void BuildMatrix(Fmatrix& mView, const float invsz, const Fvector norm, const Fvector& from) |
| 634 | { |
| 635 | // build projection |
| 636 | Fmatrix mScale; |
| 637 | Fvector at, up, right, y; |
| 638 | at.sub(from, norm); |
| 639 | y.set(0, 1, 0); |
| 640 | if (_abs(norm.y) > .99f) |
| 641 | y.set(1, 0, 0); |
| 642 | right.crossproduct(y, norm); |
| 643 | up.crossproduct(norm, right); |
| 644 | mView.build_camera(from, at, up); |
| 645 | mScale.scale(invsz, invsz, invsz); |
| 646 | mView.mulA_43(mScale); |
| 647 | } |
| 648 | void CKinematics::EnumBoneVertices(SEnumVerticesCallback& C, const u16 bone_id) |
| 649 | { |
| 650 | for (u32 i = 0; i < children.size(); i++) |
no test coverage detected