btGeneric6DofSpringConstraint не работает должным образом

Я пытаюсь соединить два тела (одно статическое и одно динамическое) с помощью пружины в Bullet. Я использую btGeneric6DofSpringCOnstraint.

Динамическое тело свисает со статического тела.

Во время симуляции меняю массу динамического тела:

btVector3 localInertia;
btb->getCollisionShape()->calculateLocalInertia(mass,localInertia);
btb->setMassProps(mass,localInertia);
btb->updateInertiaTensor();
//m_dynamicsWorld->addRigidBody(btb);
btb->activate(true);

Однако независимо от того, какую массу я использую, тело все еще висит на том же расстоянии от статического тела.

Есть идеи, почему это происходит?

1 ответ

Я предполагаю, что ограничение не использует новые массовые свойства, потому что оно не обновляется и кэширует некоторые внутренние предварительно вычисленные значения. Вы должны найти способ обновить ограничение, но извините, я не знаю, есть ли решение.

Другие вопросы по тегам