Destroy a component at a given index
| 458 | |
| 459 | // Destroy a component at a given index |
| 460 | void SliderJointComponents::destroyComponent(uint32 index) { |
| 461 | |
| 462 | Components::destroyComponent(index); |
| 463 | |
| 464 | assert(mMapEntityToComponentIndex[mJointEntities[index]] == index); |
| 465 | |
| 466 | mMapEntityToComponentIndex.remove(mJointEntities[index]); |
| 467 | |
| 468 | mJointEntities[index].~Entity(); |
| 469 | mJoints[index] = nullptr; |
| 470 | mLocalAnchorPointBody1[index].~Vector3(); |
| 471 | mLocalAnchorPointBody2[index].~Vector3(); |
| 472 | mI1[index].~Matrix3x3(); |
| 473 | mI2[index].~Matrix3x3(); |
| 474 | mImpulseTranslation[index].~Vector2(); |
| 475 | mImpulseRotation[index].~Vector3(); |
| 476 | mInverseMassMatrixTranslation[index].~Matrix2x2(); |
| 477 | mInverseMassMatrixRotation[index].~Matrix3x3(); |
| 478 | mBiasTranslation[index].~Vector2(); |
| 479 | mBiasRotation[index].~Vector3(); |
| 480 | mInitOrientationDifferenceInv[index].~Quaternion(); |
| 481 | mSliderAxisBody1[index].~Vector3(); |
| 482 | mSliderAxisWorld[index].~Vector3(); |
| 483 | mR1[index].~Vector3(); |
| 484 | mR2[index].~Vector3(); |
| 485 | mN1[index].~Vector3(); |
| 486 | mN2[index].~Vector3(); |
| 487 | mR2CrossN1[index].~Vector3(); |
| 488 | mR2CrossN2[index].~Vector3(); |
| 489 | mR2CrossSliderAxis[index].~Vector3(); |
| 490 | mR1PlusUCrossN1[index].~Vector3(); |
| 491 | mR1PlusUCrossN2[index].~Vector3(); |
| 492 | mR1PlusUCrossSliderAxis[index].~Vector3(); |
| 493 | } |