[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16373] trunk/blender/source: BGE Py API

Campbell Barton ideasman42 at gmail.com
Fri Sep 5 04:53:22 CEST 2008


Revision: 16373
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16373
Author:   campbellbarton
Date:     2008-09-05 04:53:12 +0200 (Fri, 05 Sep 2008)

Log Message:
-----------
BGE Py API
added exception messages for replaceMesh.setMesh() and allowed None as an argument.
added exception messages for other BGE module functions.

Modified Paths:
--------------
    trunk/blender/source/blender/python/api2_2x/Mathutils.c
    trunk/blender/source/blender/python/api2_2x/Mathutils.h
    trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
    trunk/blender/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
    trunk/blender/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
    trunk/blender/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py

Modified: trunk/blender/source/blender/python/api2_2x/Mathutils.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Mathutils.c	2008-09-05 02:29:59 UTC (rev 16372)
+++ trunk/blender/source/blender/python/api2_2x/Mathutils.c	2008-09-05 02:53:12 UTC (rev 16373)
@@ -108,7 +108,7 @@
 };
 /*----------------------------MODULE INIT-------------------------*/
 /* from can be Blender.Mathutils or GameLogic.Mathutils for the BGE */
-PyObject *Mathutils_Init(char *from)
+PyObject *Mathutils_Init(const char *from)
 {
 	PyObject *submodule;
 

Modified: trunk/blender/source/blender/python/api2_2x/Mathutils.h
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Mathutils.h	2008-09-05 02:29:59 UTC (rev 16372)
+++ trunk/blender/source/blender/python/api2_2x/Mathutils.h	2008-09-05 02:53:12 UTC (rev 16373)
@@ -38,7 +38,7 @@
 #include "euler.h"
 #include "point.h"
 
-PyObject *Mathutils_Init( char * from );
+PyObject *Mathutils_Init( const char * from );
 PyObject *row_vector_multiplication(VectorObject* vec, MatrixObject * mat);
 PyObject *column_vector_multiplication(MatrixObject * mat, VectorObject* vec);
 PyObject *row_point_multiplication(PointObject* pt, MatrixObject * mat);

Modified: trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp	2008-09-05 02:29:59 UTC (rev 16372)
+++ trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp	2008-09-05 02:53:12 UTC (rev 16373)
@@ -123,15 +123,13 @@
 static PyObject* gPySetGravity(PyObject*, PyObject* args)
 {
 	MT_Vector3 vec = MT_Vector3(0., 0., 0.);
-	if (PyVecArgTo(args, vec))
-	{
-		if (gp_KetsjiScene)
-			gp_KetsjiScene->SetGravity(vec);
-		
-		Py_Return;
-	}
+	if (!PyVecArgTo(args, vec))
+		return NULL;
+
+	if (gp_KetsjiScene)
+		gp_KetsjiScene->SetGravity(vec);
 	
-	return NULL;
+	Py_RETURN_NONE;
 }
 
 static char gPyExpandPath_doc[] =
@@ -149,13 +147,12 @@
 	char expanded[FILE_MAXDIR + FILE_MAXFILE];
 	char* filename;
 	
-	if (PyArg_ParseTuple(args,"s",&filename))
-	{
-		BLI_strncpy(expanded, filename, FILE_MAXDIR + FILE_MAXFILE);
-		BLI_convertstringcode(expanded, G.sce);
-		return PyString_FromString(expanded);
-	}
-	return NULL;
+	if (!PyArg_ParseTuple(args,"s",&filename))
+		return NULL;
+
+	BLI_strncpy(expanded, filename, FILE_MAXDIR + FILE_MAXFILE);
+	BLI_convertstringcode(expanded, G.sce);
+	return PyString_FromString(expanded);
 }
 
 
@@ -183,6 +180,12 @@
 			PyList_SetItem(resultlist, index, PyFloat_FromDouble(spectrum[index]));
 		}
 	}
+	else {
+		for (int index = 0; index < 512; index++)
+		{
+			PyList_SetItem(resultlist, index, PyFloat_FromDouble(0.0));
+		}
+	}
 
 	return resultlist;
 }
@@ -193,16 +196,17 @@
 {
 	SND_IAudioDevice* audiodevice = SND_DeviceManager::Instance();
 
-	if (audiodevice)
-	{
-		if (!usedsp)
-		{
-			audiodevice->StartUsingDSP();
-			usedsp = true;
-			Py_Return;
-		}
+	if (!audiodevice) {
+		PyErr_SetString(PyExc_RuntimeError, "no audio device available");
+		return NULL;
 	}
-	return NULL;
+	
+	if (!usedsp) {
+		audiodevice->StartUsingDSP();
+		usedsp = true;
+	}
+	
+	Py_RETURN_NONE;
 }
 
 
@@ -211,28 +215,27 @@
 {
 	SND_IAudioDevice* audiodevice = SND_DeviceManager::Instance();
 
-	if (audiodevice)
-	{
-		if (usedsp)
-		{
-			audiodevice->StopUsingDSP();
-			usedsp = false;
-			Py_Return;
-		}
+	if (!audiodevice) {
+		PyErr_SetString(PyExc_RuntimeError, "no audio device available");
+		return NULL;
 	}
-	return NULL;
+	
+	if (usedsp) {
+		audiodevice->StopUsingDSP();
+		usedsp = true;
+	}
+	
+	Py_RETURN_NONE;
 }
 
 static PyObject* gPySetLogicTicRate(PyObject*, PyObject* args)
 {
 	float ticrate;
-	if (PyArg_ParseTuple(args, "f", &ticrate))
-	{
-		KX_KetsjiEngine::SetTicRate(ticrate);
-		Py_Return;
-	}
+	if (!PyArg_ParseTuple(args, "f", &ticrate))
+		return NULL;
 	
-	return NULL;
+	KX_KetsjiEngine::SetTicRate(ticrate);
+	Py_RETURN_NONE;
 }
 
 static PyObject* gPyGetLogicTicRate(PyObject*)
@@ -243,26 +246,21 @@
 static PyObject* gPySetPhysicsTicRate(PyObject*, PyObject* args)
 {
 	float ticrate;
-	if (PyArg_ParseTuple(args, "f", &ticrate))
-	{
-
-		PHY_GetActiveEnvironment()->setFixedTimeStep(true,ticrate);
-		Py_Return;
-	}
+	if (!PyArg_ParseTuple(args, "f", &ticrate))
+		return NULL;
 	
-	return NULL;
+	PHY_GetActiveEnvironment()->setFixedTimeStep(true,ticrate);
+	Py_RETURN_NONE;
 }
 
 static PyObject* gPySetPhysicsDebug(PyObject*, PyObject* args)
 {
 	int debugMode;
-	if (PyArg_ParseTuple(args, "i", &debugMode))
-	{
-		PHY_GetActiveEnvironment()->setDebugMode(debugMode);
-		Py_Return;
-	}
+	if (!PyArg_ParseTuple(args, "i", &debugMode))
+		return NULL;
 	
-	return NULL;
+	PHY_GetActiveEnvironment()->setDebugMode(debugMode);
+	Py_RETURN_NONE;
 }
 
 
@@ -425,22 +423,14 @@
 
 static PyObject* gPyGetWindowHeight(PyObject*, PyObject* args)
 {
-	int height = (gp_Canvas ? gp_Canvas->GetHeight() : 0);
-
-		PyObject* heightval = PyInt_FromLong(height);
-		return heightval;
+	return PyInt_FromLong((gp_Canvas ? gp_Canvas->GetHeight() : 0));
 }
 
 
 
 static PyObject* gPyGetWindowWidth(PyObject*, PyObject* args)
 {
-		
-
-	int width = (gp_Canvas ? gp_Canvas->GetWidth() : 0);
-	
-		PyObject* widthval = PyInt_FromLong(width);
-		return widthval;
+	return PyInt_FromLong((gp_Canvas ? gp_Canvas->GetWidth() : 0));
 }
 
 
@@ -451,15 +441,11 @@
 static PyObject* gPyEnableVisibility(PyObject*, PyObject* args)
 {
 	int visible;
-	if (PyArg_ParseTuple(args,"i",&visible))
-	{
-	    gUseVisibilityTemp = (visible != 0);
-	}
-	else
-	{
+	if (!PyArg_ParseTuple(args,"i",&visible))
 		return NULL;
-	}
-   Py_Return;
+	
+	gUseVisibilityTemp = (visible != 0);
+	Py_RETURN_NONE;
 }
 
 
@@ -467,23 +453,20 @@
 static PyObject* gPyShowMouse(PyObject*, PyObject* args)
 {
 	int visible;
-	if (PyArg_ParseTuple(args,"i",&visible))
+	if (!PyArg_ParseTuple(args,"i",&visible))
+		return NULL;
+	
+	if (visible)
 	{
-	    if (visible)
-		{
-			if (gp_Canvas)
-				gp_Canvas->SetMouseState(RAS_ICanvas::MOUSE_NORMAL);
-		} else
-		{
-			if (gp_Canvas)
-				gp_Canvas->SetMouseState(RAS_ICanvas::MOUSE_INVISIBLE);
-		}
+		if (gp_Canvas)
+			gp_Canvas->SetMouseState(RAS_ICanvas::MOUSE_NORMAL);
+	} else
+	{
+		if (gp_Canvas)
+			gp_Canvas->SetMouseState(RAS_ICanvas::MOUSE_INVISIBLE);
 	}
-	else {
-		return NULL;
-	}
 	
-   Py_Return;
+	Py_RETURN_NONE;
 }
 
 
@@ -491,74 +474,81 @@
 static PyObject* gPySetMousePosition(PyObject*, PyObject* args)
 {
 	int x,y;
-	if (PyArg_ParseTuple(args,"ii",&x,&y))
-	{
-	    if (gp_Canvas)
-			gp_Canvas->SetMousePosition(x,y);
-	}
-	else {
+	if (!PyArg_ParseTuple(args,"ii",&x,&y))
 		return NULL;
-	}
 	
-   Py_Return;
+	if (gp_Canvas)
+		gp_Canvas->SetMousePosition(x,y);
+	
+	Py_RETURN_NONE;
 }
 
 static PyObject* gPySetEyeSeparation(PyObject*, PyObject* args)
 {
 	float sep;
-	if (PyArg_ParseTuple(args, "f", &sep))
-	{
-		if (gp_Rasterizer)
-			gp_Rasterizer->SetEyeSeparation(sep);
-			
-		Py_Return;
+	if (!PyArg_ParseTuple(args, "f", &sep))
+		return NULL;
+
+	if (!gp_Rasterizer) {
+		PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available");
+		return NULL;
 	}
 	
-	return NULL;
+	gp_Rasterizer->SetEyeSeparation(sep);
+	
+	Py_RETURN_NONE;
 }
 
 static PyObject* gPyGetEyeSeparation(PyObject*, PyObject*, PyObject*)
 {
-	if (gp_Rasterizer)
-		return PyFloat_FromDouble(gp_Rasterizer->GetEyeSeparation());
+	if (!gp_Rasterizer) {
+		PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available");
+		return NULL;
+	}
 	
-	return NULL;
+	return PyFloat_FromDouble(gp_Rasterizer->GetEyeSeparation());
 }
 
 static PyObject* gPySetFocalLength(PyObject*, PyObject* args)
 {
 	float focus;
-	if (PyArg_ParseTuple(args, "f", &focus))
-	{
-		if (gp_Rasterizer)
-			gp_Rasterizer->SetFocalLength(focus);
-		Py_Return;
+	if (!PyArg_ParseTuple(args, "f", &focus))
+		return NULL;
+	
+	if (!gp_Rasterizer) {
+		PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available");
+		return NULL;
 	}
+
+	gp_Rasterizer->SetFocalLength(focus);
 	
-	return NULL;
+	Py_RETURN_NONE;
 }
 
 static PyObject* gPyGetFocalLength(PyObject*, PyObject*, PyObject*)
 {
-	if (gp_Rasterizer)
-		return PyFloat_FromDouble(gp_Rasterizer->GetFocalLength());
-	return NULL;
+	if (!gp_Rasterizer) {
+		PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available");
+		return NULL;
+	}
+	
+	return PyFloat_FromDouble(gp_Rasterizer->GetFocalLength());
+	
+	Py_RETURN_NONE;
 }
 
 static PyObject* gPySetBackgroundColor(PyObject*, PyObject* args)
 {
 	
 	MT_Vector4 vec = MT_Vector4(0., 0., 0.3, 0.);
-	if (PyVecArgTo(args, vec))
+	if (!PyVecArgTo(args, vec))
+		return NULL;
+	
+	if (gp_Canvas)
 	{
-		if (gp_Canvas)
-		{
-			gp_Rasterizer->SetBackColor(vec[0], vec[1], vec[2], vec[3]);
-		}
-		Py_Return;
+		gp_Rasterizer->SetBackColor(vec[0], vec[1], vec[2], vec[3]);
 	}
-	
-	return NULL;
+	Py_RETURN_NONE;
 }
 
 
@@ -567,16 +557,16 @@
 {
 	
 	MT_Vector3 vec = MT_Vector3(0., 0., 0.);
-	if (PyVecArgTo(args, vec))
-	{
-		if (gp_Rasterizer)
-		{
-			gp_Rasterizer->SetFogColor(vec[0], vec[1], vec[2]);
-		}
-		Py_Return;
-	}
+	if (!PyVecArgTo(args, vec))
+		return NULL;
 	
-	return NULL;
+	if (!gp_Rasterizer) {
+		PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available");
+		return NULL;
+	}	
+	gp_Rasterizer->SetFogColor(vec[0], vec[1], vec[2]);
+	
+	Py_RETURN_NONE;
 }
 
 
@@ -585,17 +575,17 @@
 {
 
 	float miststart;
-	if (PyArg_ParseTuple(args,"f",&miststart))
-	{
-		if (gp_Rasterizer)
-		{
-			gp_Rasterizer->SetFogStart(miststart);
-		}
-	}
-	else {
+	if (!PyArg_ParseTuple(args,"f",&miststart))
 		return NULL;
+	
+	if (!gp_Rasterizer) {
+		PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available");
+		return NULL;
 	}
-   Py_Return;
+	
+	gp_Rasterizer->SetFogStart(miststart);
+	
+	Py_RETURN_NONE;
 }
 
 
@@ -604,17 +594,17 @@
 {
 
 	float mistend;
-	if (PyArg_ParseTuple(args,"f",&mistend))
-	{
-		if (gp_Rasterizer)
-		{
-			gp_Rasterizer->SetFogEnd(mistend);
-		}
-	}
-	else {
+	if (!PyArg_ParseTuple(args,"f",&mistend))
 		return NULL;
+	
+	if (!gp_Rasterizer) {
+		PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available");
+		return NULL;
 	}
-   Py_Return;
+	
+	gp_Rasterizer->SetFogEnd(mistend);
+	
+	Py_RETURN_NONE;
 }
 
 
@@ -622,16 +612,16 @@
 {
 	
 	MT_Vector3 vec = MT_Vector3(0., 0., 0.);
-	if (PyVecArgTo(args, vec))
-	{
-		if (gp_Rasterizer)
-		{
-			gp_Rasterizer->SetAmbientColor(vec[0], vec[1], vec[2]);
-		}
-		Py_Return;
-	}
+	if (!PyVecArgTo(args, vec))
+		return NULL;
 	
-	return NULL;
+	if (!gp_Rasterizer) {
+		PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available");
+		return NULL;
+	}	

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list