[Bf-blender-cvs] [b3808a4] master: BGE: Fix ray cast with unfound property.

Porteries Tristan noreply at git.blender.org
Thu Nov 26 19:53:47 CET 2015


Commit: b3808a4e065bf5007da3c74e27500fbbda809a01
Author: Porteries Tristan
Date:   Thu Nov 26 19:54:27 2015 +0100
Branches: master
https://developer.blender.org/rBb3808a4e065bf5007da3c74e27500fbbda809a01

BGE: Fix ray cast with unfound property.

To return a valid ray cast result the object must not be NULL and KX_RayCast::RayTest must return true.

===================================================================

M	source/gameengine/Ketsji/KX_GameObject.cpp

===================================================================

diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp
index 5e66250..412a112 100644
--- a/source/gameengine/Ketsji/KX_GameObject.cpp
+++ b/source/gameengine/Ketsji/KX_GameObject.cpp
@@ -3736,8 +3736,9 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCastTo,
 
 	RayCastData rayData(propName, false, (1 << OB_MAX_COL_MASKS) - 1);
 	KX_RayCast::Callback<KX_GameObject, RayCastData> callback(this, spc, &rayData);
-	if (KX_RayCast::RayTest(pe, fromPoint, toPoint, callback))
+	if (KX_RayCast::RayTest(pe, fromPoint, toPoint, callback) && rayData.m_hitObject) {
 		return rayData.m_hitObject->GetProxy();
+	}
 	
 	Py_RETURN_NONE;
 }
@@ -3883,8 +3884,7 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCast,
 	RayCastData rayData(propName, xray, mask);
 	KX_RayCast::Callback<KX_GameObject, RayCastData> callback(this, spc, &rayData, face, (poly == 2));
 
-	if (KX_RayCast::RayTest(pe, fromPoint, toPoint, callback))
-	{
+	if (KX_RayCast::RayTest(pe, fromPoint, toPoint, callback) && rayData.m_hitObject) {
 		PyObject *returnValue = (poly == 2) ? PyTuple_New(5) : (poly) ? PyTuple_New(4) : PyTuple_New(3);
 		if (returnValue) { // unlikely this would ever fail, if it does python sets an error
 			PyTuple_SET_ITEM(returnValue, 0, rayData.m_hitObject->GetProxy());




More information about the Bf-blender-cvs mailing list