Alternate fix for castRay issue

This commit is contained in:
James Urquhart 2023-11-04 22:06:13 +00:00
parent edbb76155b
commit 97d7d2e992
4 changed files with 5 additions and 6 deletions

View file

@ -1768,10 +1768,10 @@ void GuiConvexEditorCtrl::submitUndo( UndoType type, const Vector<ConvexShape*>
mIsDirty = true;
}
bool GuiConvexEditorCtrl::_cursorCastCallback( RayInfo* ri )
bool GuiConvexEditorCtrl::_cursorCastCallback( SceneObject* object )
{
// Reject anything that's not a ConvexShape.
return dynamic_cast< ConvexShape* >( ri->object );
return dynamic_cast< ConvexShape* >( object );
}
bool GuiConvexEditorCtrl::_cursorCast( const Gui3DMouseEvent &event, ConvexShape **hitShape, S32 *hitFace )

View file

@ -169,7 +169,7 @@ protected:
void _renderObject( ObjectRenderInst *ri, SceneRenderState *state, BaseMatInstance *matInst );
bool _cursorCast( const Gui3DMouseEvent &event, ConvexShape **hitShape, S32 *hitFace );
static bool _cursorCastCallback( RayInfo* ri );
static bool _cursorCastCallback( SceneObject* object );
protected:

View file

@ -318,10 +318,9 @@ struct SceneRayHelper
xformedEnd.convolveInverse(ptr->mObjScale);
RayInfo ri;
ri.object = ptr;
ri.generateTexCoord = info->generateTexCoord;
if (mFunc && !mFunc(&ri))
if (mFunc && !mFunc(ptr))
return false;
bool result = false;

View file

@ -668,7 +668,7 @@ class SceneContainer
/// @name Line intersection
/// @{
typedef bool ( *CastRayCallback )( RayInfo* ri );
typedef bool ( *CastRayCallback )( SceneObject* object );
/// Test against collision geometry -- fast.
bool castRay( const Point3F &start, const Point3F &end, U32 mask, RayInfo* info, CastRayCallback callback = NULL );