[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26045] trunk/blender/source/gameengine/ Ketsji: patch [#20560] [patch] KX_GameObject.obcolor
Campbell Barton
ideasman42 at gmail.com
Sun Jan 17 00:53:51 CET 2010
Revision: 26045
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26045
Author: campbellbarton
Date: 2010-01-17 00:53:51 +0100 (Sun, 17 Jan 2010)
Log Message:
-----------
patch [#20560] [patch] KX_GameObject.obcolor
by Mitchell Stokes (moguri)
* renamed attribute obcolor to color
Modified Paths:
--------------
trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp
trunk/blender/source/gameengine/Ketsji/KX_GameObject.h
Modified: trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp 2010-01-16 22:56:52 UTC (rev 26044)
+++ trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp 2010-01-16 23:53:51 UTC (rev 26045)
@@ -811,6 +811,11 @@
m_objectColor = rgbavec;
}
+const MT_Vector4& KX_GameObject::GetObjectColor()
+{
+ return m_objectColor;
+}
+
void KX_GameObject::AlignAxisToVect(const MT_Vector3& dir, int axis, float fac)
{
MT_Matrix3x3 orimat;
@@ -1238,6 +1243,7 @@
#define MATHUTILS_VEC_CB_SCALE_LOCAL 3
#define MATHUTILS_VEC_CB_SCALE_GLOBAL 4
#define MATHUTILS_VEC_CB_INERTIA_LOCAL 5
+#define MATHUTILS_VEC_CB_OBJECT_COLOR 6
static int mathutils_kxgameob_vector_cb_index= -1; /* index for our callbacks */
@@ -1273,6 +1279,9 @@
if(!self->GetPhysicsController()) return 0;
self->GetPhysicsController()->GetLocalInertia().getValue(vec_from);
break;
+ case MATHUTILS_VEC_CB_OBJECT_COLOR:
+ self->GetObjectColor().getValue(vec_from);
+ break;
}
return 1;
@@ -1302,6 +1311,9 @@
case MATHUTILS_VEC_CB_INERTIA_LOCAL:
/* read only */
break;
+ case MATHUTILS_VEC_CB_OBJECT_COLOR:
+ self->SetObjectColor(MT_Vector4(vec_to));
+ break;
}
return 1;
@@ -1475,6 +1487,7 @@
KX_PYATTRIBUTE_RO_FUNCTION("children", KX_GameObject, pyattr_get_children),
KX_PYATTRIBUTE_RO_FUNCTION("childrenRecursive", KX_GameObject, pyattr_get_children_recursive),
KX_PYATTRIBUTE_RO_FUNCTION("attrDict", KX_GameObject, pyattr_get_attrDict),
+ KX_PYATTRIBUTE_RW_FUNCTION("obcolor", KX_GameObject, pyattr_get_obcolor, pyattr_set_obcolor),
/* Experemental, dont rely on these yet */
KX_PYATTRIBUTE_RO_FUNCTION("sensors", KX_GameObject, pyattr_get_sensors),
@@ -2033,7 +2046,28 @@
return meshes;
}
-/* experemental! */
+PyObject* KX_GameObject::pyattr_get_obcolor(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+{
+#ifdef USE_MATHUTILS
+ return newVectorObject_cb(BGE_PROXY_FROM_REF(self_v), 4, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_OBJECT_COLOR);
+#else
+ KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
+ return PyObjectFrom(self->GetObjectColor());
+#endif
+}
+
+int KX_GameObject::pyattr_set_obcolor(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value)
+{
+ KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
+ MT_Vector4 obcolor;
+ if (!PyVecTo(value, obcolor))
+ return PY_SET_ATTR_FAIL;
+
+ self->SetObjectColor(obcolor);
+ return PY_SET_ATTR_SUCCESS;
+}
+
+/* These are experimental! */
PyObject* KX_GameObject::pyattr_get_sensors(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
return KX_PythonSeq_CreatePyObject((static_cast<KX_GameObject*>(self_v))->m_proxy, KX_PYGENSEQ_OB_TYPE_SENSORS);
@@ -2048,6 +2082,7 @@
{
return KX_PythonSeq_CreatePyObject((static_cast<KX_GameObject*>(self_v))->m_proxy, KX_PYGENSEQ_OB_TYPE_ACTUATORS);
}
+/* End experimental */
PyObject* KX_GameObject::pyattr_get_children(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
Modified: trunk/blender/source/gameengine/Ketsji/KX_GameObject.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_GameObject.h 2010-01-16 22:56:52 UTC (rev 26044)
+++ trunk/blender/source/gameengine/Ketsji/KX_GameObject.h 2010-01-16 23:53:51 UTC (rev 26045)
@@ -339,7 +339,10 @@
const MT_Vector4& rgbavec
);
+ const MT_Vector4&
+ GetObjectColor();
+
void
ResolveCombinedVelocities(
const MT_Vector3 & lin_vel,
@@ -882,6 +885,8 @@
static PyObject* pyattr_get_children(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static PyObject* pyattr_get_children_recursive(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static PyObject* pyattr_get_attrDict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject* pyattr_get_obcolor(void *selv_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static int pyattr_set_obcolor(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
/* Experemental! */
static PyObject* pyattr_get_sensors(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
More information about the Bf-blender-cvs
mailing list