| 1356 | (*i)->setForce(force); |
| 1357 | } |
| 1358 | void CPHShell::PlaceBindToElFormsRecursive(Fmatrix parent, u16 id, u16 element, VisMask& mask) |
| 1359 | { |
| 1360 | CBoneData& bone_data = m_pKinematics->LL_GetData(u16(id)); |
| 1361 | SJointIKData& joint_data = bone_data.IK_data; |
| 1362 | |
| 1363 | if (mask.is(/*1ui64<<(u64)*/ id)) //Вот тут проверить надо, кажется мне тут было не правильно. |
| 1364 | { |
| 1365 | if (no_physics_shape(bone_data.shape) || joint_data.type == jtRigid && element != u16(-1)) |
| 1366 | {} |
| 1367 | else |
| 1368 | { |
| 1369 | element++; |
| 1370 | R_ASSERT2(element < elements.size(), "Out of elements!!"); |
| 1371 | // if(elements.size()==element) return; |
| 1372 | CPHElement* E = (elements[element]); |
| 1373 | E->mXFORM.mul(parent, bone_data.bind_transform); |
| 1374 | } |
| 1375 | } |
| 1376 | for (vecBonesIt it = bone_data.children.begin(); it != bone_data.children.end(); ++it) |
| 1377 | PlaceBindToElFormsRecursive(mXFORM, (*it)->GetSelfID(), element, mask); |
| 1378 | } |
| 1379 | |
| 1380 | void CPHShell::BonesBindCalculate(u16 id_from) { BonesBindCalculateRecursive(Fidentity, 0); } |
| 1381 | void CPHShell::BonesBindCalculateRecursive(Fmatrix parent, u16 id) |