Added getDistanceTo Python method (thanks Charlie C)

This commit is contained in:
Kester Maddock 2005-01-16 05:55:04 +00:00
parent cb289b215f
commit 5fcf39d2a5
4 changed files with 34 additions and 1 deletions

@ -621,7 +621,7 @@ PyMethodDef KX_GameObject::Methods[] = {
{"getParent", (PyCFunction)KX_GameObject::sPyGetParent,METH_VARARGS},
{"getMesh", (PyCFunction)KX_GameObject::sPyGetMesh,METH_VARARGS},
{"getPhysicsId", (PyCFunction)KX_GameObject::sPyGetPhysicsId,METH_VARARGS},
KX_PYMETHODTABLE(KX_GameObject, getDistanceTo),
{NULL,NULL} //Sentinel
};
@ -1100,6 +1100,27 @@ PyObject* KX_GameObject::PyGetPhysicsId(PyObject* self,
return PyInt_FromLong(physid);
}
KX_PYMETHODDEF_DOC(KX_GameObject, getDistanceTo,
"getDistanceTo(other): get distance to another point/KX_GameObject")
{
MT_Point3 b;
if (PyVecArgTo(args, b))
{
return PyFloat_FromDouble(NodeGetWorldPosition().distance(b));
}
PyErr_Clear();
PyObject *pyother;
if (PyArg_ParseTuple(args, "O!", &KX_GameObject::Type, &pyother))
{
KX_GameObject *other = static_cast<KX_GameObject*>(pyother);
return PyFloat_FromDouble(NodeGetWorldPosition().distance(other->NodeGetWorldPosition()));
}
return NULL;
}
/* ---------------------------------------------------------------------
* Some stuff taken from the header
* --------------------------------------------------------------------- */

@ -613,6 +613,7 @@ public:
KX_PYMETHOD(KX_GameObject,GetMesh);
KX_PYMETHOD(KX_GameObject,GetParent);
KX_PYMETHOD(KX_GameObject,GetPhysicsId);
KX_PYMETHOD_DOC(KX_GameObject,getDistanceTo);
private :

@ -148,3 +148,11 @@ class KX_GameObject:
"""
Returns the user data object associated with this game object's physics controller.
"""
def getDistanceTo(other):
"""
Returns the distance to another object or point.
@param other: a point or another L{KX_GameObject} to measure the distance to.
@type other: L{KX_GameObject} or list [x, y, z]
@rtype: float
"""

@ -5,6 +5,9 @@ New Python Functionality in this Version of Blender
This document lists what has been changed in the Game Engine Python API.
Blender CVS
- Added L{KX_GameObject}.getDistanceTo() method. (thanks Charlie C)
Blender 2.36
------------
- Added L{KX_CameraActuator} methods (thanks snail)