mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-01 12:01:51 +00:00
506824cb9d
* Do not copy with allocations. * Remove unused DeepestNotMeContactTestResultCallback. * Avoid using pointers which should not be nullptr. * Move constructors implementation to headers. * Move types defined in .cpp are to unnamed namespace. * Comment unused arguments. * Avoid C-style casts.
25 lines
932 B
C++
25 lines
932 B
C++
#include "contacttestresultcallback.hpp"
|
|
|
|
#include <BulletCollision/CollisionDispatch/btCollisionObject.h>
|
|
|
|
#include "components/misc/convert.hpp"
|
|
|
|
#include "ptrholder.hpp"
|
|
|
|
namespace MWPhysics
|
|
{
|
|
btScalar ContactTestResultCallback::addSingleResult(btManifoldPoint& cp, const btCollisionObjectWrapper* col0Wrap,
|
|
int /*partId0*/, int /*index0*/, const btCollisionObjectWrapper* col1Wrap, int /*partId1*/, int /*index1*/)
|
|
{
|
|
const btCollisionObject* collisionObject = col0Wrap->m_collisionObject;
|
|
if (collisionObject == mTestedAgainst)
|
|
collisionObject = col1Wrap->m_collisionObject;
|
|
PtrHolder* holder = static_cast<PtrHolder*>(collisionObject->getUserPointer());
|
|
if (holder)
|
|
mResult.emplace_back(ContactPoint{ holder->getPtr(), Misc::Convert::toOsg(cp.m_positionWorldOnB),
|
|
Misc::Convert::toOsg(cp.m_normalWorldOnB) });
|
|
return 0.f;
|
|
}
|
|
|
|
}
|