Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWillian Padovani Germano <wpgermano@gmail.com>2004-10-20 09:51:24 +0400
committerWillian Padovani Germano <wpgermano@gmail.com>2004-10-20 09:51:24 +0400
commitfa9135385a38c9289a2dfa2320c20b68d782c1e4 (patch)
treef011e964789f9d9c37f18dfc72de661a525ecf3c /source/blender/python/api2_2x/Window.c
parentf2f004af2df9733761cf9d4888e883a8c5f0d3e9 (diff)
BPython:
- Blender.Window: added function GetPerspMatrix() (Tom Musgrave's patch, thanks); - added Chris Want's patch to tell argc, argv to the Python interpreter (thanks, Hos); - Blender.Image: added image.glFree() to free textures bound by the recently added image.glLoad() (both suggested by Campbell Barton -- thanks, with these Blender can be used to load textures for scripts); - Blender.Sound: removed for now at least a few get/set methods of vars that can't be accessed via interface; - renamed Get/makeActive to Get/setCurrent in Blender.World (actually added alias for now), same in Blender.Sound: renamed makeActive to setCurrent. Stephen Swaney pointed this some weeks ago, we should stick to one naming convention. - added documentation for Sound and Window.Theme modules and the other added functions, made other small updates. - Blender.Object: made 'worldspace' become the default output of .getMatrix and .mat/.matrix: after reading a discussion on blender.org's Python forum where eeshlo mentioned the pre 2.34 default was worldspace, I took a better look at Blender's relevant code, confirmed, talked to Theeth about this and as he suggested am changing the default back to 'worldspace'.
Diffstat (limited to 'source/blender/python/api2_2x/Window.c')
-rw-r--r--source/blender/python/api2_2x/Window.c48
1 files changed, 45 insertions, 3 deletions
diff --git a/source/blender/python/api2_2x/Window.c b/source/blender/python/api2_2x/Window.c
index 84b3a5974bb..067bfc8d33a 100644
--- a/source/blender/python/api2_2x/Window.c
+++ b/source/blender/python/api2_2x/Window.c
@@ -25,7 +25,7 @@
*
* This is a new part of Blender.
*
- * Contributor(s): Willian P. Germano
+ * Contributor(s): Willian P. Germano, Tom Musgrove
*
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
@@ -47,6 +47,7 @@
#include <BIF_screen.h>
#include <BIF_space.h>
#include <BIF_drawtext.h>
+#include <BIF_mywindow.h> /* L/M/R_MOUSE bitflags */
#include <BIF_spacetypes.h>
#include <mydevice.h>
#include <DNA_view3d_types.h>
@@ -85,6 +86,7 @@ static PyObject *M_Window_SetViewQuat( PyObject * self, PyObject * args );
static PyObject *M_Window_GetViewOffset( PyObject * self );
static PyObject *M_Window_SetViewOffset( PyObject * self, PyObject * args );
static PyObject *M_Window_GetViewMatrix( PyObject * self );
+static PyObject *M_Window_GetPerspMatrix( PyObject * self );
static PyObject *M_Window_FileSelector( PyObject * self, PyObject * args );
static PyObject *M_Window_ImageSelector( PyObject * self, PyObject * args );
static PyObject *M_Window_EditMode( PyObject * self, PyObject * args );
@@ -164,6 +166,9 @@ static char M_Window_GetViewVector_doc[] =
static char M_Window_GetViewMatrix_doc[] =
"() - Get the current 3d view matrix.";
+static char M_Window_GetPerspMatrix_doc[] =
+ "() - Get the current 3d Persp matrix.";
+
static char M_Window_EditMode_doc[] =
"() - Get the current status -- 0: not in edit mode; 1: in edit mode.\n\
(status) - if 1: enter edit mode; if 0: leave edit mode.\n\
@@ -228,7 +233,7 @@ static char M_Window_SetMouseCoords_doc[] =
(x,y) - ints ([x, y] also accepted): the new x, y coordinates.";
static char M_Window_GetMouseButtons_doc[] =
- "() - Get the current mouse button state (see Blender.Draw.LEFTMOUSE, etc).";
+ "() - Get the current mouse button state (see Blender.Window.MButs dict).";
static char M_Window_GetKeyQualifiers_doc[] =
"() - Get the current qualifier keys state.\n\
@@ -306,6 +311,8 @@ struct PyMethodDef M_Window_methods[] = {
M_Window_SetViewOffset_doc},
{"GetViewMatrix", ( PyCFunction ) M_Window_GetViewMatrix, METH_NOARGS,
M_Window_GetViewMatrix_doc},
+ {"GetPerspMatrix", ( PyCFunction ) M_Window_GetPerspMatrix, METH_NOARGS,
+ M_Window_GetPerspMatrix_doc},
{"EditMode", ( PyCFunction ) M_Window_EditMode, METH_VARARGS,
M_Window_EditMode_doc},
{"ViewLayer", ( PyCFunction ) M_Window_ViewLayer, METH_VARARGS,
@@ -784,6 +791,30 @@ static PyObject *M_Window_GetViewMatrix( PyObject * self )
return viewmat;
}
+/*****************************************************************************/
+/* Function: M_Window_GetPerspMatrix */
+/* Python equivalent: Blender.Window.GetPerspMatrix */
+/*****************************************************************************/
+static PyObject *M_Window_GetPerspMatrix( PyObject * self )
+{
+ PyObject *perspmat;
+
+ if( !G.vd ) {
+ Py_INCREF( Py_None );
+ return Py_None;
+ }
+
+ perspmat =
+ ( PyObject * ) newMatrixObject( ( float * ) G.vd->persmat, 4,
+ 4 );
+
+ if( !perspmat )
+ return EXPP_ReturnPyObjError( PyExc_MemoryError,
+ "GetPerspMatrix: couldn't create matrix pyobject" );
+
+ return perspmat;
+}
+
static PyObject *M_Window_EditMode( PyObject * self, PyObject * args )
{
short status = -1;
@@ -1214,7 +1245,7 @@ static PyObject *M_Window_GetScreenInfo( PyObject * self, PyObject * args,
/*****************************************************************************/
PyObject *Window_Init( void )
{
- PyObject *submodule, *Types, *Qual, *dict;
+ PyObject *submodule, *Types, *Qual, *MButs, *dict;
submodule =
Py_InitModule3( "Blender.Window", M_Window_methods,
@@ -1226,6 +1257,7 @@ PyObject *Window_Init( void )
Types = M_constant_New( );
Qual = M_constant_New( );
+ MButs = M_constant_New( );
if( Types ) {
BPy_constant *d = ( BPy_constant * ) Types;
@@ -1264,5 +1296,15 @@ PyObject *Window_Init( void )
PyModule_AddObject( submodule, "Qual", Qual );
}
+ if( MButs ) {
+ BPy_constant *d = ( BPy_constant * ) MButs;
+
+ constant_insert( d, "L", PyInt_FromLong( L_MOUSE ) );
+ constant_insert( d, "M", PyInt_FromLong( M_MOUSE ) );
+ constant_insert( d, "R", PyInt_FromLong( R_MOUSE ) );
+
+ PyModule_AddObject( submodule, "MButs", MButs );
+ }
+
return submodule;
}