[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