[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30347] trunk/blender/source: patch from Goran Milovanovic for the BGE python api.

Campbell Barton ideasman42 at gmail.com
Wed Jul 14 22:52:04 CEST 2010


Revision: 30347
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30347
Author:   campbellbarton
Date:     2010-07-14 22:52:04 +0200 (Wed, 14 Jul 2010)

Log Message:
-----------
patch from Goran Milovanovic for the BGE python api.
 camera.ortho_scale (use when in ortho mode only)

(own previous commit incorrectly removed thumb metadata from new imbuf)

Modified Paths:
--------------
    trunk/blender/source/blender/imbuf/intern/thumbs_blend.c
    trunk/blender/source/gameengine/Ketsji/KX_Camera.cpp
    trunk/blender/source/gameengine/Ketsji/KX_Camera.h
    trunk/blender/source/gameengine/PyDoc/bge.types.rst

Modified: trunk/blender/source/blender/imbuf/intern/thumbs_blend.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/thumbs_blend.c	2010-07-14 20:31:11 UTC (rev 30346)
+++ trunk/blender/source/blender/imbuf/intern/thumbs_blend.c	2010-07-14 20:52:04 UTC (rev 30347)
@@ -121,7 +121,7 @@
 		return NULL;
 
 	/* finally malloc and read the data */
-	img= IMB_allocImBuf(x, y, 32, IB_rect, 0);
+	img= IMB_allocImBuf(x, y, 32, IB_rect | IB_metadata, 0);
 
 	if(gzread(gzfile, img->rect, len) != len) {
 		IMB_freeImBuf(img);

Modified: trunk/blender/source/gameengine/Ketsji/KX_Camera.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_Camera.cpp	2010-07-14 20:31:11 UTC (rev 30346)
+++ trunk/blender/source/gameengine/Ketsji/KX_Camera.cpp	2010-07-14 20:52:04 UTC (rev 30347)
@@ -499,6 +499,7 @@
 	KX_PYATTRIBUTE_RW_FUNCTION("perspective", KX_Camera, pyattr_get_perspective, pyattr_set_perspective),
 	
 	KX_PYATTRIBUTE_RW_FUNCTION("lens",	KX_Camera,	pyattr_get_lens, pyattr_set_lens),
+	KX_PYATTRIBUTE_RW_FUNCTION("ortho_scale",	KX_Camera,	pyattr_get_ortho_scale, pyattr_set_ortho_scale),
 	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),
 	
@@ -728,6 +729,26 @@
 	return PY_SET_ATTR_SUCCESS;
 }
 
+PyObject* KX_Camera::pyattr_get_ortho_scale(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+{
+	KX_Camera* self= static_cast<KX_Camera*>(self_v);
+	return PyFloat_FromDouble(self->m_camdata.m_scale);
+}
+
+int KX_Camera::pyattr_set_ortho_scale(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value)
+{
+	KX_Camera* self= static_cast<KX_Camera*>(self_v);
+	float param = PyFloat_AsDouble(value);
+	if (param == -1) {
+		PyErr_SetString(PyExc_AttributeError, "camera.scale = float: KX_Camera, expected a float greater then zero");
+		return PY_SET_ATTR_FAIL;
+	}
+	
+	self->m_camdata.m_scale= param;
+	self->m_set_projection_matrix = false;
+	return PY_SET_ATTR_SUCCESS;
+}
+
 PyObject* KX_Camera::pyattr_get_near(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
 {
 	KX_Camera* self= static_cast<KX_Camera*>(self_v);

Modified: trunk/blender/source/gameengine/Ketsji/KX_Camera.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_Camera.h	2010-07-14 20:31:11 UTC (rev 30346)
+++ trunk/blender/source/gameengine/Ketsji/KX_Camera.h	2010-07-14 20:52:04 UTC (rev 30347)
@@ -289,6 +289,8 @@
 
 	static PyObject*	pyattr_get_lens(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
 	static int			pyattr_set_lens(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
+	static PyObject*	pyattr_get_ortho_scale(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+	static int			pyattr_set_ortho_scale(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
 	static PyObject*	pyattr_get_near(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
 	static int			pyattr_set_near(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
 	static PyObject*	pyattr_get_far(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);

Modified: trunk/blender/source/gameengine/PyDoc/bge.types.rst
===================================================================
--- trunk/blender/source/gameengine/PyDoc/bge.types.rst	2010-07-14 20:31:11 UTC (rev 30346)
+++ trunk/blender/source/gameengine/PyDoc/bge.types.rst	2010-07-14 20:52:04 UTC (rev 30347)
@@ -4185,6 +4185,12 @@
 
       :type: float
 
+   .. attribute:: ortho_scale
+
+      The camera's view scale when in orthographic mode.
+
+      :type: float
+
    .. attribute:: near
 
       The camera's near clip distance.





More information about the Bf-blender-cvs mailing list