forked from bartvdbraak/blender
BGE PyAPI
- renamed generic attribute "isValid" to "invalid" since BL_Shader already uses isValid. - Moved deprecation warnings from CValue - removed unused KX_Scene::SetProjectionMatrix and KX_Scene::GetViewMatrix - Added KX_Scene attributes "lights", "cameras", "objects_inactive", to allow access to objects in unseen layers (before the AddObject actuator adds them) - KX_Camera deprecated cam.enableViewport(bool) for cam.isViewport which can be read as well.
This commit is contained in:
parent
eee8dd9086
commit
94c6cadfe2
@ -113,13 +113,13 @@ PyMethodDef PyObjectPlus::Methods[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
PyAttributeDef PyObjectPlus::Attributes[] = {
|
PyAttributeDef PyObjectPlus::Attributes[] = {
|
||||||
KX_PYATTRIBUTE_RO_FUNCTION("isValid", PyObjectPlus, pyattr_get_is_valid),
|
KX_PYATTRIBUTE_RO_FUNCTION("invalid", PyObjectPlus, pyattr_get_invalid),
|
||||||
{NULL} //Sentinel
|
{NULL} //Sentinel
|
||||||
};
|
};
|
||||||
|
|
||||||
PyObject* PyObjectPlus::pyattr_get_is_valid(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
|
PyObject* PyObjectPlus::pyattr_get_invalid(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
|
||||||
{
|
{
|
||||||
Py_RETURN_TRUE;
|
Py_RETURN_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------
|
/*------------------------------
|
||||||
@ -137,8 +137,8 @@ PyObject *PyObjectPlus::py_base_getattro(PyObject * self, PyObject *attr)
|
|||||||
{
|
{
|
||||||
PyObjectPlus *self_plus= BGE_PROXY_REF(self);
|
PyObjectPlus *self_plus= BGE_PROXY_REF(self);
|
||||||
if(self_plus==NULL) {
|
if(self_plus==NULL) {
|
||||||
if(!strcmp("isValid", PyString_AsString(attr))) {
|
if(!strcmp("invalid", PyString_AsString(attr))) {
|
||||||
Py_RETURN_FALSE;
|
Py_RETURN_TRUE;
|
||||||
}
|
}
|
||||||
PyErr_SetString(PyExc_SystemError, BGE_PROXY_ERROR_MSG);
|
PyErr_SetString(PyExc_SystemError, BGE_PROXY_ERROR_MSG);
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -896,5 +896,56 @@ PyObject *PyObjectPlus::NewProxy_Ext(PyObjectPlus *self, PyTypeObject *tp, bool
|
|||||||
return self->m_proxy;
|
return self->m_proxy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/* deprecation warning management */
|
||||||
|
bool PyObjectPlus::m_ignore_deprecation_warnings(false);
|
||||||
|
void PyObjectPlus::SetDeprecationWarnings(bool ignoreDeprecationWarnings)
|
||||||
|
{
|
||||||
|
m_ignore_deprecation_warnings = ignoreDeprecationWarnings;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PyObjectPlus::ShowDeprecationWarning(const char* old_way,const char* new_way)
|
||||||
|
{
|
||||||
|
if (!m_ignore_deprecation_warnings) {
|
||||||
|
printf("Method %s is deprecated, please use %s instead.\n", old_way, new_way);
|
||||||
|
|
||||||
|
// import sys; print '\t%s:%d' % (sys._getframe(0).f_code.co_filename, sys._getframe(0).f_lineno)
|
||||||
|
|
||||||
|
PyObject *getframe, *frame;
|
||||||
|
PyObject *f_lineno, *f_code, *co_filename;
|
||||||
|
|
||||||
|
getframe = PySys_GetObject((char *)"_getframe"); // borrowed
|
||||||
|
if (getframe) {
|
||||||
|
frame = PyObject_CallObject(getframe, NULL);
|
||||||
|
if (frame) {
|
||||||
|
f_lineno= PyObject_GetAttrString(frame, "f_lineno");
|
||||||
|
f_code= PyObject_GetAttrString(frame, "f_code");
|
||||||
|
if (f_lineno && f_code) {
|
||||||
|
co_filename= PyObject_GetAttrString(f_code, "co_filename");
|
||||||
|
if (co_filename) {
|
||||||
|
|
||||||
|
printf("\t%s:%d\n", PyString_AsString(co_filename), (int)PyInt_AsLong(f_lineno));
|
||||||
|
|
||||||
|
Py_DECREF(f_lineno);
|
||||||
|
Py_DECREF(f_code);
|
||||||
|
Py_DECREF(co_filename);
|
||||||
|
Py_DECREF(frame);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Py_XDECREF(f_lineno);
|
||||||
|
Py_XDECREF(f_code);
|
||||||
|
Py_DECREF(frame);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
PyErr_Clear();
|
||||||
|
printf("\tERROR - Could not access sys._getframe(0).f_lineno or sys._getframe().f_code.co_filename\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif //NO_EXP_PYTHON_EMBEDDING
|
#endif //NO_EXP_PYTHON_EMBEDDING
|
||||||
|
|
||||||
|
@ -446,7 +446,7 @@ public:
|
|||||||
KX_PYMETHOD_O(PyObjectPlus,isA);
|
KX_PYMETHOD_O(PyObjectPlus,isA);
|
||||||
|
|
||||||
/* Kindof dumb, always returns True, the false case is checked for, before this function gets accessed */
|
/* Kindof dumb, always returns True, the false case is checked for, before this function gets accessed */
|
||||||
static PyObject* pyattr_get_is_valid(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
static PyObject* pyattr_get_invalid(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
||||||
|
|
||||||
static PyObject *GetProxy_Ext(PyObjectPlus *self, PyTypeObject *tp);
|
static PyObject *GetProxy_Ext(PyObjectPlus *self, PyTypeObject *tp);
|
||||||
static PyObject *NewProxy_Ext(PyObjectPlus *self, PyTypeObject *tp, bool py_owns);
|
static PyObject *NewProxy_Ext(PyObjectPlus *self, PyTypeObject *tp, bool py_owns);
|
||||||
@ -458,6 +458,14 @@ public:
|
|||||||
*/
|
*/
|
||||||
virtual void ProcessReplica();
|
virtual void ProcessReplica();
|
||||||
|
|
||||||
|
|
||||||
|
static bool m_ignore_deprecation_warnings;
|
||||||
|
|
||||||
|
/** enable/disable display of deprecation warnings */
|
||||||
|
static void SetDeprecationWarnings(bool ignoreDeprecationWarnings);
|
||||||
|
/** Shows a deprecation warning */
|
||||||
|
static void ShowDeprecationWarning(const char* method,const char* prop);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
PyObject *py_getattr_dict(PyObject *pydict, PyObject *tp_dict);
|
PyObject *py_getattr_dict(PyObject *pydict, PyObject *tp_dict);
|
||||||
|
@ -32,7 +32,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
double CValue::m_sZeroVec[3] = {0.0,0.0,0.0};
|
double CValue::m_sZeroVec[3] = {0.0,0.0,0.0};
|
||||||
bool CValue::m_ignore_deprecation_warnings(false);
|
|
||||||
|
|
||||||
#ifndef NO_EXP_PYTHON_EMBEDDING
|
#ifndef NO_EXP_PYTHON_EMBEDDING
|
||||||
|
|
||||||
@ -781,52 +780,3 @@ void CValue::SetValue(CValue* newval)
|
|||||||
// no one should get here
|
// no one should get here
|
||||||
assertd(newval->GetNumber() == 10121969);
|
assertd(newval->GetNumber() == 10121969);
|
||||||
}
|
}
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
/* deprecation warning management */
|
|
||||||
void CValue::SetDeprecationWarnings(bool ignoreDeprecationWarnings)
|
|
||||||
{
|
|
||||||
m_ignore_deprecation_warnings = ignoreDeprecationWarnings;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CValue::ShowDeprecationWarning(const char* old_way,const char* new_way)
|
|
||||||
{
|
|
||||||
if (!m_ignore_deprecation_warnings) {
|
|
||||||
printf("Method %s is deprecated, please use %s instead.\n", old_way, new_way);
|
|
||||||
|
|
||||||
// import sys; print '\t%s:%d' % (sys._getframe(0).f_code.co_filename, sys._getframe(0).f_lineno)
|
|
||||||
|
|
||||||
PyObject *getframe, *frame;
|
|
||||||
PyObject *f_lineno, *f_code, *co_filename;
|
|
||||||
|
|
||||||
getframe = PySys_GetObject((char *)"_getframe"); // borrowed
|
|
||||||
if (getframe) {
|
|
||||||
frame = PyObject_CallObject(getframe, NULL);
|
|
||||||
if (frame) {
|
|
||||||
f_lineno= PyObject_GetAttrString(frame, "f_lineno");
|
|
||||||
f_code= PyObject_GetAttrString(frame, "f_code");
|
|
||||||
if (f_lineno && f_code) {
|
|
||||||
co_filename= PyObject_GetAttrString(f_code, "co_filename");
|
|
||||||
if (co_filename) {
|
|
||||||
|
|
||||||
printf("\t%s:%d\n", PyString_AsString(co_filename), (int)PyInt_AsLong(f_lineno));
|
|
||||||
|
|
||||||
Py_DECREF(f_lineno);
|
|
||||||
Py_DECREF(f_code);
|
|
||||||
Py_DECREF(co_filename);
|
|
||||||
Py_DECREF(frame);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Py_XDECREF(f_lineno);
|
|
||||||
Py_XDECREF(f_code);
|
|
||||||
Py_DECREF(frame);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
PyErr_Clear();
|
|
||||||
printf("\tERROR - Could not access sys._getframe(0).f_lineno or sys._getframe().f_code.co_filename\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -303,10 +303,6 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
STR_String op2str(VALUE_OPERATOR op);
|
STR_String op2str(VALUE_OPERATOR op);
|
||||||
/** enable/disable display of deprecation warnings */
|
|
||||||
static void SetDeprecationWarnings(bool ignoreDeprecationWarnings);
|
|
||||||
/** Shows a deprecation warning */
|
|
||||||
static void ShowDeprecationWarning(const char* method,const char* prop);
|
|
||||||
|
|
||||||
// setting / getting flags
|
// setting / getting flags
|
||||||
inline void SetSelected(bool bSelected) { m_ValFlags.Selected = bSelected; }
|
inline void SetSelected(bool bSelected) { m_ValFlags.Selected = bSelected; }
|
||||||
@ -338,7 +334,6 @@ private:
|
|||||||
ValueFlags m_ValFlags; // Frequently used flags in a bitfield (low memoryusage)
|
ValueFlags m_ValFlags; // Frequently used flags in a bitfield (low memoryusage)
|
||||||
int m_refcount; // Reference Counter
|
int m_refcount; // Reference Counter
|
||||||
static double m_sZeroVec[3];
|
static double m_sZeroVec[3];
|
||||||
static bool m_ignore_deprecation_warnings;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -478,10 +478,12 @@ PyMethodDef KX_Camera::Methods[] = {
|
|||||||
KX_PYMETHODTABLE_NOARGS(KX_Camera, getWorldToCamera),
|
KX_PYMETHODTABLE_NOARGS(KX_Camera, getWorldToCamera),
|
||||||
KX_PYMETHODTABLE_NOARGS(KX_Camera, getProjectionMatrix),
|
KX_PYMETHODTABLE_NOARGS(KX_Camera, getProjectionMatrix),
|
||||||
KX_PYMETHODTABLE_O(KX_Camera, setProjectionMatrix),
|
KX_PYMETHODTABLE_O(KX_Camera, setProjectionMatrix),
|
||||||
KX_PYMETHODTABLE_O(KX_Camera, enableViewport),
|
|
||||||
KX_PYMETHODTABLE(KX_Camera, setViewport),
|
KX_PYMETHODTABLE(KX_Camera, setViewport),
|
||||||
KX_PYMETHODTABLE_NOARGS(KX_Camera, setOnTop),
|
KX_PYMETHODTABLE_NOARGS(KX_Camera, setOnTop),
|
||||||
|
|
||||||
|
// DEPRECATED
|
||||||
|
KX_PYMETHODTABLE_O(KX_Camera, enableViewport),
|
||||||
|
|
||||||
{NULL,NULL} //Sentinel
|
{NULL,NULL} //Sentinel
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -494,6 +496,8 @@ PyAttributeDef KX_Camera::Attributes[] = {
|
|||||||
KX_PYATTRIBUTE_RW_FUNCTION("near", KX_Camera, pyattr_get_near, pyattr_set_near),
|
KX_PYATTRIBUTE_RW_FUNCTION("near", KX_Camera, pyattr_get_near, pyattr_set_near),
|
||||||
KX_PYATTRIBUTE_RW_FUNCTION("far", KX_Camera, pyattr_get_far, pyattr_set_far),
|
KX_PYATTRIBUTE_RW_FUNCTION("far", KX_Camera, pyattr_get_far, pyattr_set_far),
|
||||||
|
|
||||||
|
KX_PYATTRIBUTE_RW_FUNCTION("isViewport", KX_Camera, pyattr_get_is_viewport, pyattr_set_is_viewport),
|
||||||
|
|
||||||
KX_PYATTRIBUTE_RO_FUNCTION("projection_matrix", KX_Camera, pyattr_get_projection_matrix),
|
KX_PYATTRIBUTE_RO_FUNCTION("projection_matrix", KX_Camera, pyattr_get_projection_matrix),
|
||||||
KX_PYATTRIBUTE_RO_FUNCTION("modelview_matrix", KX_Camera, pyattr_get_modelview_matrix),
|
KX_PYATTRIBUTE_RO_FUNCTION("modelview_matrix", KX_Camera, pyattr_get_modelview_matrix),
|
||||||
KX_PYATTRIBUTE_RO_FUNCTION("camera_to_world", KX_Camera, pyattr_get_camera_to_world),
|
KX_PYATTRIBUTE_RO_FUNCTION("camera_to_world", KX_Camera, pyattr_get_camera_to_world),
|
||||||
@ -745,8 +749,9 @@ KX_PYMETHODDEF_DOC_O(KX_Camera, enableViewport,
|
|||||||
"Sets this camera's viewport status\n"
|
"Sets this camera's viewport status\n"
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
int viewport = PyObject_IsTrue(value);
|
ShowDeprecationWarning("enableViewport(bool)", "the isViewport property");
|
||||||
|
|
||||||
|
int viewport = PyObject_IsTrue(value);
|
||||||
if (viewport == -1) {
|
if (viewport == -1) {
|
||||||
PyErr_SetString(PyExc_ValueError, "camera.enableViewport(bool): KX_Camera, expected True/False or 0/1");
|
PyErr_SetString(PyExc_ValueError, "camera.enableViewport(bool): KX_Camera, expected True/False or 0/1");
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -776,10 +781,7 @@ KX_PYMETHODDEF_DOC_NOARGS(KX_Camera, setOnTop,
|
|||||||
"setOnTop()\n"
|
"setOnTop()\n"
|
||||||
"Sets this camera's viewport on top\n")
|
"Sets this camera's viewport on top\n")
|
||||||
{
|
{
|
||||||
class KX_Scene* scene;
|
class KX_Scene* scene = KX_GetActiveScene();
|
||||||
|
|
||||||
scene = KX_GetActiveScene();
|
|
||||||
MT_assert(scene);
|
|
||||||
scene->SetCameraOnTop(this);
|
scene->SetCameraOnTop(this);
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
@ -863,6 +865,26 @@ int KX_Camera::pyattr_set_far(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, P
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PyObject* KX_Camera::pyattr_get_is_viewport(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
|
||||||
|
{
|
||||||
|
KX_Camera* self= static_cast<KX_Camera*>(self_v);
|
||||||
|
return PyBool_FromLong(self->GetViewport());
|
||||||
|
}
|
||||||
|
|
||||||
|
int KX_Camera::pyattr_set_is_viewport(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value)
|
||||||
|
{
|
||||||
|
KX_Camera* self= static_cast<KX_Camera*>(self_v);
|
||||||
|
int param = PyObject_IsTrue( value );
|
||||||
|
if (param == -1) {
|
||||||
|
PyErr_SetString(PyExc_AttributeError, "camera.isViewport = bool: KX_Camera, expected True or False");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
self->EnableViewport((bool)param);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
PyObject* KX_Camera::pyattr_get_projection_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
|
PyObject* KX_Camera::pyattr_get_projection_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
|
||||||
{
|
{
|
||||||
KX_Camera* self= static_cast<KX_Camera*>(self_v);
|
KX_Camera* self= static_cast<KX_Camera*>(self_v);
|
||||||
|
@ -284,6 +284,9 @@ public:
|
|||||||
static PyObject* pyattr_get_far(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
static PyObject* pyattr_get_far(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
||||||
static int pyattr_set_far(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
|
static int pyattr_set_far(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
|
||||||
|
|
||||||
|
static PyObject* pyattr_get_is_viewport(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
||||||
|
static int pyattr_set_is_viewport(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
|
||||||
|
|
||||||
static PyObject* pyattr_get_projection_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
static PyObject* pyattr_get_projection_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
||||||
static int pyattr_set_projection_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
|
static int pyattr_set_projection_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
|
||||||
|
|
||||||
|
@ -1067,7 +1067,6 @@ CListValue* KX_GameObject::GetChildrenRecursive()
|
|||||||
/* ------- python stuff ---------------------------------------------------*/
|
/* ------- python stuff ---------------------------------------------------*/
|
||||||
|
|
||||||
PyMethodDef KX_GameObject::Methods[] = {
|
PyMethodDef KX_GameObject::Methods[] = {
|
||||||
{"setWorldPosition", (PyCFunction) KX_GameObject::sPySetWorldPosition, METH_O},
|
|
||||||
{"applyForce", (PyCFunction) KX_GameObject::sPyApplyForce, METH_VARARGS},
|
{"applyForce", (PyCFunction) KX_GameObject::sPyApplyForce, METH_VARARGS},
|
||||||
{"applyTorque", (PyCFunction) KX_GameObject::sPyApplyTorque, METH_VARARGS},
|
{"applyTorque", (PyCFunction) KX_GameObject::sPyApplyTorque, METH_VARARGS},
|
||||||
{"applyRotation", (PyCFunction) KX_GameObject::sPyApplyRotation, METH_VARARGS},
|
{"applyRotation", (PyCFunction) KX_GameObject::sPyApplyRotation, METH_VARARGS},
|
||||||
@ -1106,6 +1105,7 @@ PyMethodDef KX_GameObject::Methods[] = {
|
|||||||
// deprecated
|
// deprecated
|
||||||
{"getPosition", (PyCFunction) KX_GameObject::sPyGetPosition, METH_NOARGS},
|
{"getPosition", (PyCFunction) KX_GameObject::sPyGetPosition, METH_NOARGS},
|
||||||
{"setPosition", (PyCFunction) KX_GameObject::sPySetPosition, METH_O},
|
{"setPosition", (PyCFunction) KX_GameObject::sPySetPosition, METH_O},
|
||||||
|
{"setWorldPosition", (PyCFunction) KX_GameObject::sPySetWorldPosition, METH_O},
|
||||||
{"getOrientation", (PyCFunction) KX_GameObject::sPyGetOrientation, METH_NOARGS},
|
{"getOrientation", (PyCFunction) KX_GameObject::sPyGetOrientation, METH_NOARGS},
|
||||||
{"setOrientation", (PyCFunction) KX_GameObject::sPySetOrientation, METH_O},
|
{"setOrientation", (PyCFunction) KX_GameObject::sPySetOrientation, METH_O},
|
||||||
{"getState",(PyCFunction) KX_GameObject::sPyGetState, METH_NOARGS},
|
{"getState",(PyCFunction) KX_GameObject::sPyGetState, METH_NOARGS},
|
||||||
@ -1177,8 +1177,8 @@ PyObject* KX_GameObject::PyReplaceMesh(PyObject* value)
|
|||||||
|
|
||||||
PyObject* KX_GameObject::PyEndObject()
|
PyObject* KX_GameObject::PyEndObject()
|
||||||
{
|
{
|
||||||
|
|
||||||
KX_Scene *scene = KX_GetActiveScene();
|
KX_Scene *scene = KX_GetActiveScene();
|
||||||
|
|
||||||
scene->DelayedRemoveObject(this);
|
scene->DelayedRemoveObject(this);
|
||||||
|
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
@ -1321,7 +1321,6 @@ PyMappingMethods KX_GameObject::Mapping = {
|
|||||||
(objobjargproc)KX_GameObject::Map_SetItem, /*objobjargproc mp_ass_subscript */
|
(objobjargproc)KX_GameObject::Map_SetItem, /*objobjargproc mp_ass_subscript */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
PyTypeObject KX_GameObject::Type = {
|
PyTypeObject KX_GameObject::Type = {
|
||||||
PyObject_HEAD_INIT(NULL)
|
PyObject_HEAD_INIT(NULL)
|
||||||
0,
|
0,
|
||||||
@ -2069,17 +2068,20 @@ PyObject* KX_GameObject::PyGetParent()
|
|||||||
|
|
||||||
PyObject* KX_GameObject::PySetParent(PyObject* value)
|
PyObject* KX_GameObject::PySetParent(PyObject* value)
|
||||||
{
|
{
|
||||||
|
KX_Scene *scene = KX_GetActiveScene();
|
||||||
KX_GameObject *obj;
|
KX_GameObject *obj;
|
||||||
|
|
||||||
if (!ConvertPythonToGameObject(value, &obj, false, "gameOb.setParent(value): KX_GameObject"))
|
if (!ConvertPythonToGameObject(value, &obj, false, "gameOb.setParent(value): KX_GameObject"))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
this->SetParent(KX_GetActiveScene(), obj);
|
this->SetParent(scene, obj);
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
PyObject* KX_GameObject::PyRemoveParent()
|
PyObject* KX_GameObject::PyRemoveParent()
|
||||||
{
|
{
|
||||||
KX_Scene *scene = KX_GetActiveScene();
|
KX_Scene *scene = KX_GetActiveScene();
|
||||||
|
|
||||||
this->RemoveParent(scene);
|
this->RemoveParent(scene);
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
@ -2249,6 +2251,7 @@ PyObject* KX_GameObject::PySetPosition(PyObject* value)
|
|||||||
|
|
||||||
PyObject* KX_GameObject::PySetWorldPosition(PyObject* value)
|
PyObject* KX_GameObject::PySetWorldPosition(PyObject* value)
|
||||||
{
|
{
|
||||||
|
ShowDeprecationWarning("setWorldPosition()", "the worldPosition property");
|
||||||
MT_Point3 pos;
|
MT_Point3 pos;
|
||||||
if (PyVecTo(value, pos))
|
if (PyVecTo(value, pos))
|
||||||
{
|
{
|
||||||
@ -2585,6 +2588,7 @@ KX_PYMETHODDEF_DOC_VARARGS(KX_GameObject, sendMessage,
|
|||||||
"body = Message body (string)"
|
"body = Message body (string)"
|
||||||
"to = Name of object to send the message to")
|
"to = Name of object to send the message to")
|
||||||
{
|
{
|
||||||
|
KX_Scene *scene = KX_GetActiveScene();
|
||||||
char* subject;
|
char* subject;
|
||||||
char* body = (char *)"";
|
char* body = (char *)"";
|
||||||
char* to = (char *)"";
|
char* to = (char *)"";
|
||||||
@ -2593,8 +2597,7 @@ KX_PYMETHODDEF_DOC_VARARGS(KX_GameObject, sendMessage,
|
|||||||
if (!PyArg_ParseTuple(args, "s|sss:sendMessage", &subject, &body, &to))
|
if (!PyArg_ParseTuple(args, "s|sss:sendMessage", &subject, &body, &to))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
KX_GetActiveScene()->GetNetworkScene()->SendMessage(to, from, subject, body);
|
scene->GetNetworkScene()->SendMessage(to, from, subject, body);
|
||||||
|
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -255,13 +255,6 @@ KX_Scene::~KX_Scene()
|
|||||||
Py_DECREF(m_attr_dict);
|
Py_DECREF(m_attr_dict);
|
||||||
}
|
}
|
||||||
|
|
||||||
void KX_Scene::SetProjectionMatrix(MT_CmMatrix4x4& pmat)
|
|
||||||
{
|
|
||||||
m_projectionmat = pmat;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RAS_BucketManager* KX_Scene::GetBucketManager()
|
RAS_BucketManager* KX_Scene::GetBucketManager()
|
||||||
{
|
{
|
||||||
return m_bucketmanager;
|
return m_bucketmanager;
|
||||||
@ -1153,24 +1146,6 @@ void KX_Scene::ReplaceMesh(class CValue* obj,void* meshobj)
|
|||||||
gameobj->AddMeshUser();
|
gameobj->AddMeshUser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MT_CmMatrix4x4& KX_Scene::GetViewMatrix()
|
|
||||||
{
|
|
||||||
MT_Scalar cammat[16];
|
|
||||||
m_active_camera->GetWorldToCamera().getValue(cammat);
|
|
||||||
m_viewmat = cammat;
|
|
||||||
return m_viewmat;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MT_CmMatrix4x4& KX_Scene::GetProjectionMatrix()
|
|
||||||
{
|
|
||||||
return m_projectionmat;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
KX_Camera* KX_Scene::FindCamera(KX_Camera* cam)
|
KX_Camera* KX_Scene::FindCamera(KX_Camera* cam)
|
||||||
{
|
{
|
||||||
list<KX_Camera*>::iterator it = m_cameras.begin();
|
list<KX_Camera*>::iterator it = m_cameras.begin();
|
||||||
@ -1645,9 +1620,9 @@ PyParentObject KX_Scene::Parents[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
PyMethodDef KX_Scene::Methods[] = {
|
PyMethodDef KX_Scene::Methods[] = {
|
||||||
KX_PYMETHODTABLE(KX_Scene, getLightList),
|
KX_PYMETHODTABLE_NOARGS(KX_Scene, getLightList),
|
||||||
KX_PYMETHODTABLE(KX_Scene, getObjectList),
|
KX_PYMETHODTABLE_NOARGS(KX_Scene, getObjectList),
|
||||||
KX_PYMETHODTABLE(KX_Scene, getName),
|
KX_PYMETHODTABLE_NOARGS(KX_Scene, getName),
|
||||||
KX_PYMETHODTABLE(KX_Scene, addObject),
|
KX_PYMETHODTABLE(KX_Scene, addObject),
|
||||||
|
|
||||||
{NULL,NULL} //Sentinel
|
{NULL,NULL} //Sentinel
|
||||||
@ -1665,6 +1640,39 @@ PyObject* KX_Scene::pyattr_get_objects(void *self_v, const KX_PYATTRIBUTE_DEF *a
|
|||||||
return self->GetObjectList()->GetProxy();
|
return self->GetObjectList()->GetProxy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PyObject* KX_Scene::pyattr_get_objects_inactive(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
|
||||||
|
{
|
||||||
|
KX_Scene* self= static_cast<KX_Scene*>(self_v);
|
||||||
|
return self->GetInactiveList()->GetProxy();
|
||||||
|
}
|
||||||
|
|
||||||
|
PyObject* KX_Scene::pyattr_get_lights(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
|
||||||
|
{
|
||||||
|
KX_Scene* self= static_cast<KX_Scene*>(self_v);
|
||||||
|
return self->GetLightList()->GetProxy();
|
||||||
|
}
|
||||||
|
|
||||||
|
PyObject* KX_Scene::pyattr_get_cameras(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
|
||||||
|
{
|
||||||
|
/* With refcounts in this case...
|
||||||
|
* the new CListValue is owned by python, so its possible python holds onto it longer then the BGE
|
||||||
|
* however this is the same with "scene.objects + []", when you make a copy by adding lists.
|
||||||
|
*/
|
||||||
|
|
||||||
|
KX_Scene* self= static_cast<KX_Scene*>(self_v);
|
||||||
|
CListValue* clist = new CListValue();
|
||||||
|
|
||||||
|
/* return self->GetCameras()->GetProxy(); */
|
||||||
|
|
||||||
|
list<KX_Camera*>::iterator it = self->GetCameras()->begin();
|
||||||
|
while (it != self->GetCameras()->end()) {
|
||||||
|
clist->Add((*it)->AddRef());
|
||||||
|
it++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return clist->NewProxy(true);
|
||||||
|
}
|
||||||
|
|
||||||
PyObject* KX_Scene::pyattr_get_active_camera(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
|
PyObject* KX_Scene::pyattr_get_active_camera(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
|
||||||
{
|
{
|
||||||
KX_Scene* self= static_cast<KX_Scene*>(self_v);
|
KX_Scene* self= static_cast<KX_Scene*>(self_v);
|
||||||
@ -1674,6 +1682,9 @@ PyObject* KX_Scene::pyattr_get_active_camera(void *self_v, const KX_PYATTRIBUTE_
|
|||||||
PyAttributeDef KX_Scene::Attributes[] = {
|
PyAttributeDef KX_Scene::Attributes[] = {
|
||||||
KX_PYATTRIBUTE_RO_FUNCTION("name", KX_Scene, pyattr_get_name),
|
KX_PYATTRIBUTE_RO_FUNCTION("name", KX_Scene, pyattr_get_name),
|
||||||
KX_PYATTRIBUTE_RO_FUNCTION("objects", KX_Scene, pyattr_get_objects),
|
KX_PYATTRIBUTE_RO_FUNCTION("objects", KX_Scene, pyattr_get_objects),
|
||||||
|
KX_PYATTRIBUTE_RO_FUNCTION("objects_inactive", KX_Scene, pyattr_get_objects_inactive), KX_PYATTRIBUTE_RO_FUNCTION("lights", KX_Scene, pyattr_get_lights),
|
||||||
|
KX_PYATTRIBUTE_RO_FUNCTION("cameras", KX_Scene, pyattr_get_cameras),
|
||||||
|
KX_PYATTRIBUTE_RO_FUNCTION("lights", KX_Scene, pyattr_get_lights),
|
||||||
KX_PYATTRIBUTE_RO_FUNCTION("active_camera", KX_Scene, pyattr_get_active_camera),
|
KX_PYATTRIBUTE_RO_FUNCTION("active_camera", KX_Scene, pyattr_get_active_camera),
|
||||||
KX_PYATTRIBUTE_BOOL_RO("suspended", KX_Scene, m_suspend),
|
KX_PYATTRIBUTE_BOOL_RO("suspended", KX_Scene, m_suspend),
|
||||||
KX_PYATTRIBUTE_BOOL_RO("activity_culling", KX_Scene, m_activity_culling),
|
KX_PYATTRIBUTE_BOOL_RO("activity_culling", KX_Scene, m_activity_culling),
|
||||||
@ -1754,6 +1765,7 @@ KX_PYMETHODDEF_DOC_NOARGS(KX_Scene, getLightList,
|
|||||||
"Returns a list of all lights in the scene.\n"
|
"Returns a list of all lights in the scene.\n"
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
ShowDeprecationWarning("getLightList()", "the lights property");
|
||||||
return m_lightlist->GetProxy();
|
return m_lightlist->GetProxy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1762,7 +1774,7 @@ KX_PYMETHODDEF_DOC_NOARGS(KX_Scene, getObjectList,
|
|||||||
"Returns a list of all game objects in the scene.\n"
|
"Returns a list of all game objects in the scene.\n"
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// ShowDeprecationWarning("getObjectList()", "the objects property"); // XXX Grr, why doesnt this work?
|
ShowDeprecationWarning("getObjectList()", "the objects property");
|
||||||
return m_objectlist->GetProxy();
|
return m_objectlist->GetProxy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1771,6 +1783,7 @@ KX_PYMETHODDEF_DOC_NOARGS(KX_Scene, getName,
|
|||||||
"Returns the name of the scene.\n"
|
"Returns the name of the scene.\n"
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
ShowDeprecationWarning("getName()", "the name property");
|
||||||
return PyString_FromString(GetName());
|
return PyString_FromString(GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,8 +32,6 @@
|
|||||||
|
|
||||||
#include "KX_PhysicsEngineEnums.h"
|
#include "KX_PhysicsEngineEnums.h"
|
||||||
|
|
||||||
#include "MT_CmMatrix4x4.h"
|
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <set>
|
#include <set>
|
||||||
#include <list>
|
#include <list>
|
||||||
@ -191,15 +189,6 @@ protected:
|
|||||||
*/
|
*/
|
||||||
KX_Camera* m_active_camera;
|
KX_Camera* m_active_camera;
|
||||||
|
|
||||||
/**
|
|
||||||
* The projection and view matrices of this scene
|
|
||||||
* The projection matrix is computed externally by KX_Engine
|
|
||||||
* The view mat is stored as a side effect of GetViewMatrix()
|
|
||||||
* and is totally unnessary.
|
|
||||||
*/
|
|
||||||
MT_CmMatrix4x4 m_projectionmat;
|
|
||||||
MT_CmMatrix4x4 m_viewmat;
|
|
||||||
|
|
||||||
/** Desired canvas width set at design time. */
|
/** Desired canvas width set at design time. */
|
||||||
unsigned int m_canvasDesignWidth;
|
unsigned int m_canvasDesignWidth;
|
||||||
/** Desired canvas height set at design time. */
|
/** Desired canvas height set at design time. */
|
||||||
@ -422,25 +411,6 @@ public:
|
|||||||
class KX_Camera*
|
class KX_Camera*
|
||||||
);
|
);
|
||||||
|
|
||||||
/** Return the viewmatrix as used by the last frame. */
|
|
||||||
MT_CmMatrix4x4&
|
|
||||||
GetViewMatrix(
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the projectionmatrix as used by the last frame. This is
|
|
||||||
* set by hand :)
|
|
||||||
*/
|
|
||||||
MT_CmMatrix4x4&
|
|
||||||
GetProjectionMatrix(
|
|
||||||
);
|
|
||||||
|
|
||||||
/** Sets the projection matrix. */
|
|
||||||
void
|
|
||||||
SetProjectionMatrix(
|
|
||||||
MT_CmMatrix4x4& pmat
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Activates new desired canvas width set at design time.
|
* Activates new desired canvas width set at design time.
|
||||||
* @param width The new desired width.
|
* @param width The new desired width.
|
||||||
@ -592,6 +562,9 @@ public:
|
|||||||
/* attributes */
|
/* attributes */
|
||||||
static PyObject* pyattr_get_name(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
static PyObject* pyattr_get_name(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
||||||
static PyObject* pyattr_get_objects(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
static PyObject* pyattr_get_objects(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
||||||
|
static PyObject* pyattr_get_objects_inactive(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
||||||
|
static PyObject* pyattr_get_lights(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
||||||
|
static PyObject* pyattr_get_cameras(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
||||||
static PyObject* pyattr_get_active_camera(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
static PyObject* pyattr_get_active_camera(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
|
||||||
|
|
||||||
virtual PyObject* py_getattro(PyObject *attr); /* name, active_camera, gravity, suspended, viewport, framing, activity_culling, activity_culling_radius */
|
virtual PyObject* py_getattro(PyObject *attr); /* name, active_camera, gravity, suspended, viewport, framing, activity_culling, activity_culling_radius */
|
||||||
|
Loading…
Reference in New Issue
Block a user