浏览代码

Merge pull request #1126 from jamesu/fix_cast_ray

Alternate fix for castRay issue
Brian Roberts 1 年之前
父节点
当前提交
78aee62f71

+ 2 - 2
Engine/source/gui/worldEditor/guiConvexShapeEditorCtrl.cpp

@@ -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 )

+ 1 - 1
Engine/source/gui/worldEditor/guiConvexShapeEditorCtrl.h

@@ -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:
 

+ 1 - 2
Engine/source/scene/sceneContainer.cpp

@@ -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;

+ 1 - 1
Engine/source/scene/sceneContainer.h

@@ -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 );