Use the kF_UseGjkConvexCastRaytest for more accurate picking
fix upAxis in some demos
This commit is contained in:
@@ -13,10 +13,10 @@ struct DrawGridData
|
||||
int upAxis;
|
||||
float gridColor[4];
|
||||
|
||||
DrawGridData(int upAxis = 1)
|
||||
DrawGridData(int upAx = 1)
|
||||
: gridSize(10),
|
||||
upOffset(0.001f),
|
||||
upAxis(upAxis)
|
||||
upAxis(upAx)
|
||||
{
|
||||
gridColor[0] = 0.6f;
|
||||
gridColor[1] = 0.6f;
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
#include "CommonGraphicsAppInterface.h"
|
||||
#include "CommonWindowInterface.h"
|
||||
#include "BulletCollision/NarrowPhaseCollision/btRaycastCallback.h"
|
||||
|
||||
struct CommonRigidBodyBase : public CommonExampleInterface
|
||||
{
|
||||
@@ -317,6 +318,7 @@ struct CommonRigidBodyBase : public CommonExampleInterface
|
||||
|
||||
btCollisionWorld::ClosestRayResultCallback rayCallback(rayFromWorld, rayToWorld);
|
||||
|
||||
rayCallback.m_flags |= btTriangleRaycastCallback::kF_UseGjkConvexCastRaytest;
|
||||
m_dynamicsWorld->rayTest(rayFromWorld, rayToWorld, rayCallback);
|
||||
if (rayCallback.hasHit())
|
||||
{
|
||||
|
||||
@@ -78,7 +78,7 @@ struct SimpleInternalData
|
||||
m_ffmpegFile(0),
|
||||
m_renderTexture(0),
|
||||
m_userPointer(0),
|
||||
m_upAxis(0),
|
||||
m_upAxis(1),
|
||||
m_customViewPortWidth(-1),
|
||||
m_customViewPortHeight(-1)
|
||||
{
|
||||
|
||||
@@ -10753,6 +10753,7 @@ bool PhysicsServerCommandProcessor::pickBody(const btVector3& rayFromWorld, cons
|
||||
|
||||
//btCollisionWorld::ClosestRayResultCallback rayCallback(rayFromWorld, rayToWorld);
|
||||
MyResultCallback rayCallback(rayFromWorld, rayToWorld);
|
||||
rayCallback.m_flags |= btTriangleRaycastCallback::kF_UseGjkConvexCastRaytest;
|
||||
m_data->m_dynamicsWorld->rayTest(rayFromWorld, rayToWorld, rayCallback);
|
||||
if (rayCallback.hasHit())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user