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