BPython:
- Fix for bug #2621 reported by Yann Cointepas (material.setMode didn't accept integer param, only strings, making it inconsistent with material.getMode): http://projects.blender.org/tracker/index.php?func=detail&aid=2621&group_id=9&atid=125 Applied patch #2626 by Ken Hughes to both Material.c and doc (Material.py): http://projects.blender.org/tracker/index.php?func=detail&aid=2626&group_id=9&atid=127 - Small C doc strings update I forgot to add before, for Render slinks (reminder about Render slinks docs also by Ken). Thanks both -- btw, Ken Hughes has contributed considerably improving bpy documentation and fixing bugs for this release.
This commit is contained in:
@@ -180,11 +180,11 @@ static PyMethodDef BPy_Camera_methods[] = {
|
||||
{"getScriptLinks", ( PyCFunction ) Camera_getScriptLinks, METH_VARARGS,
|
||||
"(eventname) - Get a list of this camera's scriptlinks (Text names) "
|
||||
"of the given type\n"
|
||||
"(eventname) - string: FrameChanged or Redraw."},
|
||||
"(eventname) - string: FrameChanged, Redraw or Render."},
|
||||
{"addScriptLink", ( PyCFunction ) Camera_addScriptLink, METH_VARARGS,
|
||||
"(text, evt) - Add a new camera scriptlink.\n"
|
||||
"(text) - string: an existing Blender Text name;\n"
|
||||
"(evt) string: FrameChanged or Redraw."},
|
||||
"(evt) string: FrameChanged, Redraw or Render."},
|
||||
{"clearScriptLinks", ( PyCFunction ) Camera_clearScriptLinks,
|
||||
METH_NOARGS,
|
||||
"() - Delete all scriptlinks from this camera.\n"
|
||||
|
||||
@@ -298,11 +298,11 @@ static PyMethodDef BPy_Lamp_methods[] = {
|
||||
{"getScriptLinks", ( PyCFunction ) Lamp_getScriptLinks, METH_VARARGS,
|
||||
"(eventname) - Get a list of this lamp's scriptlinks (Text names) "
|
||||
"of the given type\n"
|
||||
"(eventname) - string: FrameChanged or Redraw."},
|
||||
"(eventname) - string: FrameChanged, Redraw or Render."},
|
||||
{"addScriptLink", ( PyCFunction ) Lamp_addScriptLink, METH_VARARGS,
|
||||
"(text, evt) - Add a new lamp scriptlink.\n"
|
||||
"(text) - string: an existing Blender Text name;\n"
|
||||
"(evt) string: FrameChanged or Redraw."},
|
||||
"(evt) string: FrameChanged, Redraw or Render."},
|
||||
{"clearScriptLinks", ( PyCFunction ) Lamp_clearScriptLinks,
|
||||
METH_VARARGS,
|
||||
"() - Delete all scriptlinks from this lamp.\n"
|
||||
|
||||
@@ -660,11 +660,11 @@ static PyMethodDef BPy_Material_methods[] = {
|
||||
METH_VARARGS,
|
||||
"(eventname) - Get a list of this material's scriptlinks (Text names) "
|
||||
"of the given type\n"
|
||||
"(eventname) - string: FrameChanged or Redraw."},
|
||||
"(eventname) - string: FrameChanged, Redraw or Render."},
|
||||
{"addScriptLink", ( PyCFunction ) Material_addScriptLink, METH_VARARGS,
|
||||
"(text, evt) - Add a new material scriptlink.\n"
|
||||
"(text) - string: an existing Blender Text name;\n"
|
||||
"(evt) string: FrameChanged or Redraw."},
|
||||
"(evt) string: FrameChanged, Redraw or Render."},
|
||||
{"clearScriptLinks", ( PyCFunction ) Material_clearScriptLinks,
|
||||
METH_VARARGS,
|
||||
"() - Delete all scriptlinks from this material.\n"
|
||||
@@ -1363,89 +1363,109 @@ static PyObject *Material_setName( BPy_Material * self, PyObject * args )
|
||||
* haloShaded, haloFlare */
|
||||
static PyObject *Material_setMode( BPy_Material * self, PyObject * args )
|
||||
{
|
||||
int i, flag = 0;
|
||||
unsigned int i, flag = 0, ok = 0;
|
||||
|
||||
char *m[28] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL
|
||||
};
|
||||
|
||||
if( !PyArg_ParseTuple( args, "|ssssssssssssssssssssssssssss",
|
||||
/*
|
||||
* check for a single integer argument; do a quick check for now
|
||||
* that the value is not larger than double the highest flag bit
|
||||
*/
|
||||
|
||||
if ( (PySequence_Size( args ) == 1)
|
||||
&& PyInt_Check ( PySequence_Fast_GET_ITEM ( args , 0 ) )
|
||||
&& PyArg_ParseTuple( args, "i", &flag )
|
||||
&& flag < (EXPP_MAT_MODE_RAYMIRROR >> 1) ) {
|
||||
ok = 1;
|
||||
|
||||
/*
|
||||
* check for either an empty argument list, or up to 22 strings
|
||||
*/
|
||||
|
||||
} else if( PyArg_ParseTuple( args, "|ssssssssssssssssssssssssssss",
|
||||
&m[0], &m[1], &m[2], &m[3], &m[4], &m[5], &m[6],
|
||||
&m[7], &m[8], &m[9], &m[10], &m[11], &m[12],
|
||||
&m[13], &m[14], &m[15], &m[16], &m[17], &m[18],
|
||||
&m[19], &m[20], &m[21], &m[22], &m[23], &m[24],
|
||||
&m[25], &m[26], &m[27] ) ) {
|
||||
return ( EXPP_ReturnPyObjError
|
||||
( PyExc_AttributeError,
|
||||
"expected from none to 22 string argument(s)" ) );
|
||||
for( i = 0; i < 28; i++ ) {
|
||||
if( m[i] == NULL )
|
||||
break;
|
||||
if( strcmp( m[i], "Traceable" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_TRACEABLE;
|
||||
else if( strcmp( m[i], "Shadow" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_SHADOW;
|
||||
else if( strcmp( m[i], "Shadeless" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_SHADELESS;
|
||||
else if( strcmp( m[i], "Wire" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_WIRE;
|
||||
else if( strcmp( m[i], "VColLight" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_VCOL_LIGHT;
|
||||
else if( strcmp( m[i], "VColPaint" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_VCOL_PAINT;
|
||||
else if( strcmp( m[i], "Halo" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALO;
|
||||
else if( strcmp( m[i], "ZTransp" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_ZTRANSP;
|
||||
else if( strcmp( m[i], "ZInvert" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_ZINVERT;
|
||||
else if( strcmp( m[i], "HaloRings" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALORINGS;
|
||||
else if( strcmp( m[i], "HaloLines" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALOLINES;
|
||||
else if( strcmp( m[i], "OnlyShadow" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_ONLYSHADOW;
|
||||
else if( strcmp( m[i], "HaloXAlpha" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALOXALPHA;
|
||||
else if( strcmp( m[i], "HaloStar" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALOSTAR;
|
||||
else if( strcmp( m[i], "TexFace" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_TEXFACE;
|
||||
else if( strcmp( m[i], "HaloTex" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALOTEX;
|
||||
else if( strcmp( m[i], "HaloPuno" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALOPUNO;
|
||||
else if( strcmp( m[i], "NoMist" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_NOMIST;
|
||||
else if( strcmp( m[i], "HaloShaded" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALOSHADE;
|
||||
else if( strcmp( m[i], "HaloFlare" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALOFLARE;
|
||||
else if( strcmp( m[i], "Radio" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_RADIO;
|
||||
/* ** Mirror ** */
|
||||
else if( strcmp( m[i], "RayMirr" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_RAYMIRROR;
|
||||
else if( strcmp( m[i], "ZTransp" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_ZTRA;
|
||||
else if( strcmp( m[i], "RayTransp" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_RAYTRANSP;
|
||||
else if( strcmp( m[i], "OnlyShadow" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_ONLYSHADOW;
|
||||
else if( strcmp( m[i], "NoMist" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_NOMIST;
|
||||
else if( strcmp( m[i], "Env" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_ENV;
|
||||
/* ** */
|
||||
else
|
||||
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
|
||||
"unknown Material mode argument" ) );
|
||||
}
|
||||
ok = 1;
|
||||
}
|
||||
|
||||
for( i = 0; i < 28; i++ ) {
|
||||
if( m[i] == NULL )
|
||||
break;
|
||||
if( strcmp( m[i], "Traceable" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_TRACEABLE;
|
||||
else if( strcmp( m[i], "Shadow" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_SHADOW;
|
||||
else if( strcmp( m[i], "Shadeless" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_SHADELESS;
|
||||
else if( strcmp( m[i], "Wire" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_WIRE;
|
||||
else if( strcmp( m[i], "VColLight" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_VCOL_LIGHT;
|
||||
else if( strcmp( m[i], "VColPaint" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_VCOL_PAINT;
|
||||
else if( strcmp( m[i], "Halo" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALO;
|
||||
else if( strcmp( m[i], "ZTransp" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_ZTRANSP;
|
||||
else if( strcmp( m[i], "ZInvert" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_ZINVERT;
|
||||
else if( strcmp( m[i], "HaloRings" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALORINGS;
|
||||
else if( strcmp( m[i], "Env" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_ENV;
|
||||
else if( strcmp( m[i], "HaloLines" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALOLINES;
|
||||
else if( strcmp( m[i], "OnlyShadow" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_ONLYSHADOW;
|
||||
else if( strcmp( m[i], "HaloXAlpha" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALOXALPHA;
|
||||
else if( strcmp( m[i], "HaloStar" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALOSTAR;
|
||||
else if( strcmp( m[i], "TexFace" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_TEXFACE;
|
||||
else if( strcmp( m[i], "HaloTex" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALOTEX;
|
||||
else if( strcmp( m[i], "HaloPuno" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALOPUNO;
|
||||
else if( strcmp( m[i], "NoMist" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_NOMIST;
|
||||
else if( strcmp( m[i], "HaloShaded" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALOSHADE;
|
||||
else if( strcmp( m[i], "HaloFlare" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_HALOFLARE;
|
||||
else if( strcmp( m[i], "Radio" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_RADIO;
|
||||
/* ** Mirror ** */
|
||||
else if( strcmp( m[i], "RayMirr" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_RAYMIRROR;
|
||||
else if( strcmp( m[i], "ZTransp" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_ZTRA;
|
||||
else if( strcmp( m[i], "RayTransp" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_RAYTRANSP;
|
||||
else if( strcmp( m[i], "OnlyShadow" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_ONLYSHADOW;
|
||||
else if( strcmp( m[i], "NoMist" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_NOMIST;
|
||||
else if( strcmp( m[i], "Env" ) == 0 )
|
||||
flag |= EXPP_MAT_MODE_ENV;
|
||||
/* ** */
|
||||
else
|
||||
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
|
||||
"unknown Material mode argument" ) );
|
||||
}
|
||||
/* if neither input method worked, then throw an exception */
|
||||
|
||||
if ( ok == 0 )
|
||||
return ( EXPP_ReturnPyObjError
|
||||
( PyExc_AttributeError,
|
||||
"expected nothing, an integer or up to 22 string argument(s)" ) );
|
||||
|
||||
/* update the mode flag, return None */
|
||||
|
||||
self->material->mode = flag;
|
||||
|
||||
|
||||
@@ -504,11 +504,11 @@ works only if self and the object specified are of the same type."},
|
||||
{"getScriptLinks", ( PyCFunction ) Object_getScriptLinks, METH_VARARGS,
|
||||
"(eventname) - Get a list of this object's scriptlinks (Text names) "
|
||||
"of the given type\n"
|
||||
"(eventname) - string: FrameChanged or Redraw."},
|
||||
"(eventname) - string: FrameChanged, Redraw or Render."},
|
||||
{"addScriptLink", ( PyCFunction ) Object_addScriptLink, METH_VARARGS,
|
||||
"(text, evt) - Add a new object scriptlink.\n"
|
||||
"(text) - string: an existing Blender Text name;\n"
|
||||
"(evt) string: FrameChanged or Redraw."},
|
||||
"(evt) string: FrameChanged, Redraw or Render."},
|
||||
{"clearScriptLinks", ( PyCFunction ) Object_clearScriptLinks,
|
||||
METH_VARARGS,
|
||||
"() - Delete all scriptlinks from this object.\n"
|
||||
|
||||
@@ -156,11 +156,11 @@ static PyMethodDef BPy_Scene_methods[] = {
|
||||
{"getScriptLinks", ( PyCFunction ) Scene_getScriptLinks, METH_VARARGS,
|
||||
"(eventname) - Get a list of this scene's scriptlinks (Text names) "
|
||||
"of the given type\n"
|
||||
"(eventname) - string: FrameChanged, OnLoad or Redraw."},
|
||||
"(eventname) - string: FrameChanged, OnLoad, OnSave, Redraw or Render."},
|
||||
{"addScriptLink", ( PyCFunction ) Scene_addScriptLink, METH_VARARGS,
|
||||
"(text, evt) - Add a new scene scriptlink.\n"
|
||||
"(text) - string: an existing Blender Text name;\n"
|
||||
"(evt) string: FrameChanged, OnLoad or Redraw."},
|
||||
"(evt) string: FrameChanged, OnLoad, OnSave, Redraw or Render."},
|
||||
{"clearScriptLinks", ( PyCFunction ) Scene_clearScriptLinks,
|
||||
METH_VARARGS,
|
||||
"() - Delete all scriptlinks from this scene.\n"
|
||||
|
||||
@@ -211,11 +211,11 @@ static PyMethodDef BPy_World_methods[] = {
|
||||
{"getScriptLinks", ( PyCFunction ) World_getScriptLinks, METH_VARARGS,
|
||||
"(eventname) - Get a list of this world's scriptlinks (Text names) "
|
||||
"of the given type\n"
|
||||
"(eventname) - string: FrameChanged or Redraw."},
|
||||
"(eventname) - string: FrameChanged, Redraw or Render."},
|
||||
{"addScriptLink", ( PyCFunction ) World_addScriptLink, METH_VARARGS,
|
||||
"(text, evt) - Add a new world scriptlink.\n"
|
||||
"(text) - string: an existing Blender Text name;\n"
|
||||
"(evt) string: FrameChanged or Redraw."},
|
||||
"(evt) string: FrameChanged, Redraw or Render."},
|
||||
{"clearScriptLinks", ( PyCFunction ) World_clearScriptLinks,
|
||||
METH_VARARGS,
|
||||
"() - Delete all scriptlinks from this world.\n"
|
||||
|
||||
@@ -196,14 +196,27 @@ class Material:
|
||||
print "Not a halo"
|
||||
"""
|
||||
|
||||
def setMode(m = None, m2 = None, m3 = None, and_so_on = None,
|
||||
up_to_21 = None):
|
||||
def setMode(param, stringN=None):
|
||||
"""
|
||||
Set this Material's mode flags. Mode strings given are turned 'on'.
|
||||
Those not provided are turned 'off', so mat.setMode() -- without
|
||||
arguments -- turns off all mode flags for Material mat.
|
||||
@type m: string
|
||||
@param m: A mode flag. From 1 to 21 can be set at the same time.
|
||||
Set this Material's mode flags. Up to 22 mode strings can be given
|
||||
and specify the modes which are turned 'on'. Those not provided are
|
||||
turned 'off', so mat.setMode() -- without arguments -- turns off all
|
||||
mode flags for Material mat. Valid mode strings are "Traceable",
|
||||
"Shadow", "Shadeless", "Wire", "VColLight", "VColPaint", "Halo",
|
||||
"ZTransp", "ZInvert", "HaloRings", "HaloLines", "OnlyShadow",
|
||||
"HaloXAlpha", "HaloStar", "TexFace", "HaloTex", "HaloPuno", "NoMist",
|
||||
"HaloShaded", "HaloFlare", "Radio", "RayMirr", "ZTransp", "RayTransp",
|
||||
"OnlyShadow", "NoMist", "Env"
|
||||
|
||||
An integer can also be given, which directly sets the mode flag. The
|
||||
Modes dictionary keys can (and should) be added or ORed to specify
|
||||
which modes to turn 'on'. The value returned from getMode() can
|
||||
also be modified and input to this method.
|
||||
|
||||
@type param: string, None or int
|
||||
@param param: A mode value (int) or flag (string). Can also be None.
|
||||
@type stringN: string
|
||||
@param stringN: A mode flag. Up to 22 flags can be set at the same time.
|
||||
"""
|
||||
|
||||
def getRGBCol():
|
||||
|
||||
Reference in New Issue
Block a user