Чтобы получить относительные точки на форме столкновения (сложной формы), я пробовал raytest изнутри из формы, но никогда не работал изнутри. он работал только со стороны.Физика пули: Как получить относительные точки на форме столкновения
Вот мои настройки и код:
- C++ openframeworks bullet physics addson
- Visual Studio 2012
- сделал Rigidbody под названием "форма"
- сделал btDiscreteDynamicsWorld называется "мир"
Ниже приведен пример кода для определения наилучшего кода:
btVector3 ray_from = shape->getCenterOfMassPosition() ; // center of mass of the shape called stones[0]
btVector3 ray_to = ray_from + btVector3(0, -100., 0); // ray to the top
btCollisionWorld::AllHitsRayResultCallback allResults(ray_from, ray_to);
world->rayTest(ray_from, ray_to, allResults);
for (int i = 0; i < allResults.m_hitFractions.size(); i++)
{
btVector3 p = ray_from.lerp(ray_to, allResults.m_hitFractions[i]);
ray_all_results.push_back(new btVector3(p.getX(), p.getY(), p.getZ()));
}
'rayCallback.m_flags & = btTriangleRaycastCallback :: kF_FilterBackfaces;!' Не делать то, что вы ожидаете, что делать (удаление флага)! вы на самом деле имели в виду: 'rayCallback.m_flags & = ~ btTriangleRaycastCallback :: kF_FilterBackfaces;' – BeyelerStudios
О, правильно. Но это не меняет того факта, что параметр флага никогда не проверяется снова в коде. – Ben