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:
Diffstat (limited to 'source/blender/python/api2_2x/Material.c')
-rw-r--r--source/blender/python/api2_2x/Material.c3048
1 files changed, 0 insertions, 3048 deletions
diff --git a/source/blender/python/api2_2x/Material.c b/source/blender/python/api2_2x/Material.c
deleted file mode 100644
index 8ec1a8fab06..00000000000
--- a/source/blender/python/api2_2x/Material.c
+++ /dev/null
@@ -1,3048 +0,0 @@
-/*
- * $Id: Material.c 12078 2007-09-18 06:41:29Z campbellbarton $
- *
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * This is a new part of Blender.
- *
- * Contributor(s): Willian P. Germano, Michel Selten, Alex Mole,
- * Alexander Szakaly, Campbell Barton, Ken Hughes
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
-*/
-
-#include "Material.h" /*This must come first*/
-
-#include "DNA_space_types.h"
-#include "DNA_material_types.h"
-#include "BKE_main.h"
-#include "BKE_global.h"
-#include "BKE_library.h"
-#include "BKE_material.h"
-#include "BKE_texture.h"
-#include "BKE_idprop.h"
-#include "BKE_utildefines.h" /* for CLAMP */
-#include "MEM_guardedalloc.h"
-#include "BLI_blenlib.h"
-#include "BSE_editipo.h"
-#include "BIF_space.h"
-#include "mydevice.h"
-#include "constant.h"
-#include "MTex.h"
-#include "Texture.h"
-#include "Ipo.h"
-#include "Group.h"
-#include "gen_utils.h"
-#include "gen_library.h"
-#include "IDProp.h"
-
-/*****************************************************************************/
-/* Python BPy_Material defaults: */
-/*****************************************************************************/
-/* Material MIN, MAX values */
-#define EXPP_MAT_ADD_MIN 0.0f
-#define EXPP_MAT_ADD_MAX 1.0f
-#define EXPP_MAT_ALPHA_MIN 0.0f
-#define EXPP_MAT_ALPHA_MAX 1.0f
-#define EXPP_MAT_AMB_MIN 0.0f
-#define EXPP_MAT_AMB_MAX 1.0f
-#define EXPP_MAT_COL_MIN 0.0f /* min/max for all ... */
-#define EXPP_MAT_COL_MAX 1.0f /* ... color triplets */
-#define EXPP_MAT_EMIT_MIN 0.0f
-#define EXPP_MAT_EMIT_MAX 1.0f
-#define EXPP_MAT_REF_MIN 0.0f
-#define EXPP_MAT_REF_MAX 1.0f
-#define EXPP_MAT_SPEC_MIN 0.0f
-#define EXPP_MAT_SPEC_MAX 2.0f
-#define EXPP_MAT_SPECTRA_MIN 0.0f
-#define EXPP_MAT_SPECTRA_MAX 1.0f
-
-/* Shader specific settings */
-
-#define EXPP_MAT_ROUGHNESS_MIN 0.0f
-#define EXPP_MAT_ROUGHNESS_MAX 3.140f
-#define EXPP_MAT_SPECSIZE_MIN 0.0f
-#define EXPP_MAT_SPECSIZE_MAX 1.530f
-#define EXPP_MAT_DIFFUSESIZE_MIN 0.0f
-#define EXPP_MAT_DIFFUSESIZE_MAX 3.140f
-#define EXPP_MAT_SPECSMOOTH_MIN 0.0f
-#define EXPP_MAT_SPECSMOOTH_MAX 1.0f
-#define EXPP_MAT_DIFFUSESMOOTH_MIN 0.0f
-#define EXPP_MAT_DIFFUSESMOOTH_MAX 1.0f
-#define EXPP_MAT_DIFFUSE_DARKNESS_MIN 0.0f
-#define EXPP_MAT_DIFFUSE_DARKNESS_MAX 2.0f
-#define EXPP_MAT_REFRACINDEX_MIN 1.0f
-#define EXPP_MAT_REFRACINDEX_MAX 10.0f
-#define EXPP_MAT_RMS_MIN 0.0f
-#define EXPP_MAT_RMS_MAX 0.4f
-/* End shader settings */
-
-#define EXPP_MAT_ZOFFS_MIN 0.0
-#define EXPP_MAT_ZOFFS_MAX 10.0
-#define EXPP_MAT_HALOSIZE_MIN 0.0
-#define EXPP_MAT_HALOSIZE_MAX 100.0
-#define EXPP_MAT_FLARESIZE_MIN 0.1f
-#define EXPP_MAT_FLARESIZE_MAX 25.0
-#define EXPP_MAT_FLAREBOOST_MIN 0.1f
-#define EXPP_MAT_FLAREBOOST_MAX 10.0
-#define EXPP_MAT_SUBSIZE_MIN 0.1f
-#define EXPP_MAT_SUBSIZE_MAX 25.0
-
-#define EXPP_MAT_HARD_MIN 1
-#define EXPP_MAT_HARD_MAX 255 /* 127 with MODE HALO ON */
-#define EXPP_MAT_HALOSEED_MIN 0
-#define EXPP_MAT_HALOSEED_MAX 255
-#define EXPP_MAT_NFLARES_MIN 1
-#define EXPP_MAT_NFLARES_MAX 32
-#define EXPP_MAT_FLARESEED_MIN 0
-#define EXPP_MAT_FLARESEED_MAX 255
-#define EXPP_MAT_NSTARS_MIN 3
-#define EXPP_MAT_NSTARS_MAX 50
-#define EXPP_MAT_NLINES_MIN 0
-#define EXPP_MAT_NLINES_MAX 250
-#define EXPP_MAT_NRINGS_MIN 0
-#define EXPP_MAT_NRINGS_MAX 24
-
-#define EXPP_MAT_RAYMIRR_MIN 0.0
-#define EXPP_MAT_RAYMIRR_MAX 1.0
-#define EXPP_MAT_MIRRDEPTH_MIN 0
-#define EXPP_MAT_MIRRDEPTH_MAX 10
-#define EXPP_MAT_FRESNELMIRR_MIN 0.0
-#define EXPP_MAT_FRESNELMIRR_MAX 5.0
-#define EXPP_MAT_FRESNELMIRRFAC_MIN 1.0
-#define EXPP_MAT_FRESNELMIRRFAC_MAX 5.0
-#define EXPP_MAT_FILTER_MIN 0.0
-#define EXPP_MAT_FILTER_MAX 1.0
-#define EXPP_MAT_TRANSLUCENCY_MIN 0.0
-#define EXPP_MAT_TRANSLUCENCY_MAX 1.0
-#define EXPP_MAT_ZOFFS_MIN 0.0
-#define EXPP_MAT_ZOFFS_MAX 10.0
-#define EXPP_MAT_IOR_MIN 1.0
-#define EXPP_MAT_IOR_MAX 3.0
-#define EXPP_MAT_TRANSDEPTH_MIN 0
-#define EXPP_MAT_TRANSDEPTH_MAX 10
-#define EXPP_MAT_FRESNELTRANS_MIN 0.0
-#define EXPP_MAT_FRESNELTRANS_MAX 5.0
-#define EXPP_MAT_FRESNELTRANSFAC_MIN 1.0
-#define EXPP_MAT_FRESNELTRANSFAC_MAX 5.0
-#define EXPP_MAT_SPECTRANS_MIN 0.0
-#define EXPP_MAT_SPECTRANS_MAX 1.0
-#define EXPP_MAT_MIRRTRANSADD_MIN 0.0
-#define EXPP_MAT_MIRRTRANSADD_MAX 1.0
-
-/* closure values for getColorComponent()/setColorComponent() */
-
-#define EXPP_MAT_COMP_R 0
-#define EXPP_MAT_COMP_G 1
-#define EXPP_MAT_COMP_B 2
-#define EXPP_MAT_COMP_SPECR 3
-#define EXPP_MAT_COMP_SPECG 4
-#define EXPP_MAT_COMP_SPECB 5
-#define EXPP_MAT_COMP_MIRR 6
-#define EXPP_MAT_COMP_MIRG 7
-#define EXPP_MAT_COMP_MIRB 8
-#define EXPP_MAT_COMP_SSSR 9
-#define EXPP_MAT_COMP_SSSG 10
-#define EXPP_MAT_COMP_SSSB 11
-
-
-#define IPOKEY_RGB 0
-#define IPOKEY_ALPHA 1
-#define IPOKEY_HALOSIZE 2
-#define IPOKEY_MODE 3
-#define IPOKEY_ALLCOLOR 10
-#define IPOKEY_ALLMIRROR 14
-#define IPOKEY_OFS 12
-#define IPOKEY_SIZE 13
-#define IPOKEY_ALLMAPPING 11
-
-/* SSS Settings */
-#define EXPP_MAT_SSS_SCALE_MIN 0.001
-#define EXPP_MAT_SSS_SCALE_MAX 1000.0
-#define EXPP_MAT_SSS_RADIUS_MIN 0.0
-#define EXPP_MAT_SSS_RADIUS_MAX 10000.0
-#define EXPP_MAT_SSS_IOR_MIN 0.1
-#define EXPP_MAT_SSS_IOR_MAX 2.0
-#define EXPP_MAT_SSS_ERROR_MIN 0.0
-#define EXPP_MAT_SSS_ERROR_MAX 1.0
-#define EXPP_MAT_SSS_FRONT_MIN 0.0
-#define EXPP_MAT_SSS_FRONT_MAX 2.0
-#define EXPP_MAT_SSS_BACK_MIN 0.0
-#define EXPP_MAT_SSS_BACK_MAX 10.0
-
-
-/*****************************************************************************/
-/* Python API function prototypes for the Material module. */
-/*****************************************************************************/
-static PyObject *M_Material_New( PyObject * self, PyObject * args,
- PyObject * keywords );
-static PyObject *M_Material_Get( PyObject * self, PyObject * args );
-
-/*****************************************************************************/
-/* The following string definitions are used for documentation strings. In */
-/* Python these will be written to the console when doing a */
-/* Blender.Material.__doc__ */
-/*****************************************************************************/
-static char M_Material_doc[] = "The Blender Material module";
-
-static char M_Material_New_doc[] =
- "(name) - return a new material called 'name'\n\
-() - return a new material called 'Mat'";
-
-static char M_Material_Get_doc[] =
- "(name) - return the material called 'name', None if not found.\n\
-() - return a list of all materials in the current scene.";
-
-/*****************************************************************************/
-/* Python method structure definition for Blender.Material module: */
-/*****************************************************************************/
-struct PyMethodDef M_Material_methods[] = {
- {"New", ( PyCFunction ) M_Material_New, METH_VARARGS | METH_KEYWORDS,
- M_Material_New_doc},
- {"Get", M_Material_Get, METH_VARARGS, M_Material_Get_doc},
- {"get", M_Material_Get, METH_VARARGS, M_Material_Get_doc},
- {NULL, NULL, 0, NULL}
-};
-
-/*****************************************************************************/
-/* Function: M_Material_New */
-/* Python equivalent: Blender.Material.New */
-/*****************************************************************************/
-static PyObject *M_Material_New( PyObject * self, PyObject * args,
- PyObject * keywords )
-{
- char *name = "Mat";
- static char *kwlist[] = { "name", NULL };
- BPy_Material *pymat; /* for Material Data object wrapper in Python */
- Material *blmat; /* for actual Material Data we create in Blender */
- char buf[21];
-
- if( !PyArg_ParseTupleAndKeywords
- ( args, keywords, "|s", kwlist, &name ) )
- return ( EXPP_ReturnPyObjError
- ( PyExc_AttributeError,
- "expected string or nothing as argument" ) );
-
- if( strcmp( name, "Mat" ) != 0 ) /* use gave us a name ? */
- PyOS_snprintf( buf, sizeof( buf ), "%s", name );
-
- blmat = add_material( name ); /* first create the Material Data in Blender */
-
- if( blmat ) /* now create the wrapper obj in Python */
- pymat = ( BPy_Material * ) Material_CreatePyObject( blmat );
- else
- return ( EXPP_ReturnPyObjError( PyExc_RuntimeError,
- "couldn't create Material Data in Blender" ) );
-
- blmat->id.us = 0; /* was incref'ed by add_material() above */
-
- if( pymat == NULL )
- return ( EXPP_ReturnPyObjError( PyExc_MemoryError,
- "couldn't create Material Data object" ) );
-
- return ( PyObject * ) pymat;
-}
-
-/*****************************************************************************/
-/* Function: M_Material_Get */
-/* Python equivalent: Blender.Material.Get */
-/* Description: Receives a string and returns the material whose */
-/* name matches the string. If no argument is */
-/* passed in, a list with all materials in the */
-/* current scene is returned. */
-/*****************************************************************************/
-static PyObject *M_Material_Get( PyObject * self, PyObject * args )
-{
- char *name = NULL;
- Material *mat_iter;
-
- if( !PyArg_ParseTuple( args, "|s", &name ) )
- return ( EXPP_ReturnPyObjError( PyExc_TypeError,
- "expected string argument (or nothing)" ) );
-
- if( name ) { /* (name) - Search material by name */
-
- mat_iter = ( Material * ) GetIdFromList( &( G.main->mat ), name );
-
- if( mat_iter == NULL ) { /* Requested material doesn't exist */
- char error_msg[64];
- PyOS_snprintf( error_msg, sizeof( error_msg ),
- "Material \"%s\" not found", name );
- return EXPP_ReturnPyObjError( PyExc_NameError,
- error_msg );
- }
-
- return Material_CreatePyObject( mat_iter );
- }
-
- else { /* () - return a list with all materials in the scene */
- int index = 0;
- PyObject *matlist, *pyobj;
-
- matlist = PyList_New( BLI_countlist( &( G.main->mat ) ) );
-
- if( !matlist )
- return ( EXPP_ReturnPyObjError( PyExc_MemoryError,
- "couldn't create PyList" ) );
-
- mat_iter = G.main->mat.first;
- while( mat_iter ) {
- pyobj = Material_CreatePyObject( mat_iter );
-
- if( !pyobj ) {
- Py_DECREF(matlist);
- return ( EXPP_ReturnPyObjError
- ( PyExc_MemoryError,
- "couldn't create PyObject" ) );
- }
- PyList_SET_ITEM( matlist, index, pyobj );
-
- mat_iter = mat_iter->id.next;
- index++;
- }
-
- return matlist;
- }
-}
-
-static PyObject *Material_ModesDict( void )
-{
- PyObject *Modes = PyConstant_New( );
-
- if( Modes ) {
- BPy_constant *c = ( BPy_constant * ) Modes;
-
- PyConstant_Insert(c, "TRACEABLE", PyInt_FromLong(MA_TRACEBLE));
- PyConstant_Insert(c, "SHADOW", PyInt_FromLong(MA_SHADOW));
- PyConstant_Insert(c, "SHADOWBUF", PyInt_FromLong(MA_SHADBUF));
- PyConstant_Insert(c, "TANGENTSTR", PyInt_FromLong(MA_TANGENT_STR));
- PyConstant_Insert(c, "FULLOSA", PyInt_FromLong(MA_FULL_OSA));
- PyConstant_Insert(c, "RAYBIAS", PyInt_FromLong(MA_RAYBIAS));
- PyConstant_Insert(c, "TRANSPSHADOW", PyInt_FromLong(MA_SHADOW_TRA));
- PyConstant_Insert(c, "RAMPCOL", PyInt_FromLong(MA_RAMP_COL));
- PyConstant_Insert(c, "RAMPSPEC", PyInt_FromLong(MA_RAMP_SPEC));
- PyConstant_Insert(c, "SHADELESS", PyInt_FromLong(MA_SHLESS));
- PyConstant_Insert(c, "WIRE", PyInt_FromLong(MA_WIRE));
- PyConstant_Insert(c, "VCOL_LIGHT", PyInt_FromLong(MA_VERTEXCOL));
- PyConstant_Insert(c, "HALO", PyInt_FromLong(MA_HALO));
- PyConstant_Insert(c, "ZTRANSP", PyInt_FromLong(MA_ZTRA));
- PyConstant_Insert(c, "VCOL_PAINT", PyInt_FromLong(MA_VERTEXCOLP));
- PyConstant_Insert(c, "ZINVERT", PyInt_FromLong(MA_ZINV));
- PyConstant_Insert(c, "HALORINGS", PyInt_FromLong(MA_HALO_RINGS));
- PyConstant_Insert(c, "ENV", PyInt_FromLong(MA_ENV));
- PyConstant_Insert(c, "HALOLINES", PyInt_FromLong(MA_HALO_LINES));
- PyConstant_Insert(c, "ONLYSHADOW", PyInt_FromLong(MA_ONLYSHADOW));
- PyConstant_Insert(c, "HALOXALPHA", PyInt_FromLong(MA_HALO_XALPHA));
- PyConstant_Insert(c, "HALOSTAR", PyInt_FromLong(MA_STAR));
- PyConstant_Insert(c, "TEXFACE", PyInt_FromLong(MA_FACETEXTURE));
- PyConstant_Insert(c, "HALOTEX", PyInt_FromLong(MA_HALOTEX));
- PyConstant_Insert(c, "HALOPUNO", PyInt_FromLong(MA_HALOPUNO));
- PyConstant_Insert(c, "NOMIST", PyInt_FromLong(MA_NOMIST));
- PyConstant_Insert(c, "HALOSHADE", PyInt_FromLong(MA_HALO_SHADE));
- PyConstant_Insert(c, "HALOFLARE", PyInt_FromLong(MA_HALO_FLARE));
- PyConstant_Insert(c, "RADIO", PyInt_FromLong(MA_RADIO));
- PyConstant_Insert(c, "RAYMIRROR", PyInt_FromLong(MA_RAYMIRROR));
- PyConstant_Insert(c, "ZTRA", PyInt_FromLong(MA_ZTRA));
- PyConstant_Insert(c, "RAYTRANSP", PyInt_FromLong(MA_RAYTRANSP));
- PyConstant_Insert(c, "TANGENT_V", PyInt_FromLong(MA_TANGENT_V));
- PyConstant_Insert(c, "NMAP_TS", PyInt_FromLong(MA_NORMAP_TANG));
- PyConstant_Insert(c, "GROUP_EXCLUSIVE", PyInt_FromLong(MA_GROUP_NOLAY));
- }
-
- return Modes;
-}
-
-
-static PyObject *Material_ShadersDict( void )
-{
- PyObject *Shaders = PyConstant_New( );
-
- if( Shaders ) {
- BPy_constant *c = ( BPy_constant * ) Shaders;
-
- PyConstant_Insert(c, "DIFFUSE_LAMBERT", PyInt_FromLong(MA_DIFF_LAMBERT));
- PyConstant_Insert(c, "DIFFUSE_ORENNAYAR", PyInt_FromLong(MA_DIFF_ORENNAYAR));
- PyConstant_Insert(c, "DIFFUSE_TOON", PyInt_FromLong(MA_DIFF_TOON));
- PyConstant_Insert(c, "DIFFUSE_MINNAERT", PyInt_FromLong(MA_DIFF_MINNAERT));
- PyConstant_Insert(c, "SPEC_COOKTORR", PyInt_FromLong(MA_SPEC_COOKTORR));
- PyConstant_Insert(c, "SPEC_PHONG", PyInt_FromLong(MA_SPEC_PHONG));
- PyConstant_Insert(c, "SPEC_BLINN", PyInt_FromLong(MA_SPEC_BLINN));
- PyConstant_Insert(c, "SPEC_TOON", PyInt_FromLong(MA_SPEC_TOON));
- PyConstant_Insert(c, "SPEC_WARDISO", PyInt_FromLong(MA_SPEC_WARDISO));
-
- }
-
- return Shaders;
-}
-
-
-/*****************************************************************************/
-/* Function: Material_Init */
-/*****************************************************************************/
-PyObject *Material_Init( void )
-{
- PyObject *submodule, *Modes, *Shaders;
-
- if( PyType_Ready( &Material_Type ) < 0)
- return NULL;
-
- Modes = Material_ModesDict( );
- Shaders = Material_ShadersDict( );
-
- submodule = Py_InitModule3( "Blender.Material",
- M_Material_methods, M_Material_doc );
-
- if( Modes )
- PyModule_AddObject( submodule, "Modes", Modes );
- if( Shaders )
- PyModule_AddObject( submodule, "Shaders", Shaders );
-
- PyModule_AddIntConstant( submodule, "RGB", IPOKEY_RGB );
- PyModule_AddIntConstant( submodule, "ALPHA", IPOKEY_ALPHA );
- PyModule_AddIntConstant( submodule, "HALOSIZE", IPOKEY_HALOSIZE );
- PyModule_AddIntConstant( submodule, "MODE", IPOKEY_MODE );
- PyModule_AddIntConstant( submodule, "ALLCOLOR", IPOKEY_ALLCOLOR );
- PyModule_AddIntConstant( submodule, "ALLMIRROR", IPOKEY_ALLMIRROR );
- PyModule_AddIntConstant( submodule, "OFS", IPOKEY_OFS );
- PyModule_AddIntConstant( submodule, "SIZE", IPOKEY_SIZE );
- PyModule_AddIntConstant( submodule, "ALLMAPPING", IPOKEY_ALLMAPPING );
-
- return ( submodule );
-}
-
-/***************************/
-/*** The Material PyType ***/
-/***************************/
-
-static PyObject *Matr_oldsetAdd( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetAlpha( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetAmb( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetEmit( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetFilter( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetFlareBoost( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetFlareSeed( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetFlareSize( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetFresnelMirr( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetFresnelMirrFac( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetFresnelTrans( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetFresnelTransFac( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetHaloSeed( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetHaloSize( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetHardness( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetIOR( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetNFlares( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetNLines( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetNRings( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetNStars( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetRayMirr( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetMirrDepth( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetRef( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetSpec( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetSpecTransp( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetSubSize( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetTransDepth( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetZOffset( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetMode( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetIpo( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetRGBCol( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetSpecCol( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetSpecShader( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetMirCol( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetDiffuseShader( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetRoughness( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetSpecSize( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetDiffuseSize( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetSpecSmooth( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetDiffuseSmooth( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetDiffuseDarkness( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetRefracIndex( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetRms( BPy_Material * self, PyObject * args );
-static PyObject *Matr_oldsetTranslucency( BPy_Material * self, PyObject * args );
-
-static int Material_setIpo( BPy_Material * self, PyObject * value );
-
-static int Material_setMode( BPy_Material * self, PyObject * value );
-static int Material_setRGBCol( BPy_Material * self, PyObject * value );
-static int Material_setSpecCol( BPy_Material * self, PyObject * value );
-static int Material_setMirCol( BPy_Material * self, PyObject * value );
-static int Material_setSssCol( BPy_Material * self, PyObject * value );
-static int Material_setColorComponent( BPy_Material * self, PyObject * value,
- void * closure );
-static int Material_setAmb( BPy_Material * self, PyObject * value );
-static int Material_setEmit( BPy_Material * self, PyObject * value );
-static int Material_setSpecTransp( BPy_Material * self, PyObject * value );
-static int Material_setAlpha( BPy_Material * self, PyObject * value );
-static int Material_setShadAlpha( BPy_Material * self, PyObject * value );
-static int Material_setRef( BPy_Material * self, PyObject * value );
-static int Material_setSpec( BPy_Material * self, PyObject * value );
-static int Material_setZOffset( BPy_Material * self, PyObject * value );
-static int Material_setLightGroup( BPy_Material * self, PyObject * value );
-static int Material_setAdd( BPy_Material * self, PyObject * value );
-static int Material_setHaloSize( BPy_Material * self, PyObject * value );
-static int Material_setFlareSize( BPy_Material * self, PyObject * value );
-static int Material_setFlareBoost( BPy_Material * self, PyObject * value );
-static int Material_setSubSize( BPy_Material * self, PyObject * value );
-static int Material_setHaloSeed( BPy_Material * self, PyObject * value );
-static int Material_setFlareSeed( BPy_Material * self, PyObject * value );
-static int Material_setHardness( BPy_Material * self, PyObject * value );
-static int Material_setNFlares( BPy_Material * self, PyObject * value );
-static int Material_setNStars( BPy_Material * self, PyObject * value );
-static int Material_setNLines( BPy_Material * self, PyObject * value );
-static int Material_setNRings( BPy_Material * self, PyObject * value );
-static int Material_setRayMirr( BPy_Material * self, PyObject * value );
-static int Material_setMirrDepth( BPy_Material * self, PyObject * value );
-static int Material_setFresnelMirr( BPy_Material * self, PyObject * value );
-static int Material_setFresnelMirrFac( BPy_Material * self, PyObject * value );
-static int Material_setIOR( BPy_Material * self, PyObject * value );
-static int Material_setTransDepth( BPy_Material * self, PyObject * value );
-static int Material_setFresnelTrans( BPy_Material * self, PyObject * value );
-static int Material_setFresnelTransFac( BPy_Material * self, PyObject * value );
-static int Material_setRigidBodyFriction( BPy_Material * self, PyObject * value );
-static int Material_setRigidBodyRestitution( BPy_Material * self, PyObject * value );
-
-static int Material_setSpecShader( BPy_Material * self, PyObject * value );
-static int Material_setDiffuseShader( BPy_Material * self, PyObject * value );
-static int Material_setRoughness( BPy_Material * self, PyObject * value );
-static int Material_setSpecSize( BPy_Material * self, PyObject * value );
-static int Material_setDiffuseSize( BPy_Material * self, PyObject * value );
-static int Material_setSpecSmooth( BPy_Material * self, PyObject * value );
-static int Material_setDiffuseSmooth( BPy_Material * self, PyObject * value );
-static int Material_setDiffuseDarkness( BPy_Material * self, PyObject * value );
-static int Material_setRefracIndex( BPy_Material * self, PyObject * value );
-static int Material_setRms( BPy_Material * self, PyObject * value );
-static int Material_setFilter( BPy_Material * self, PyObject * value );
-static int Material_setTranslucency( BPy_Material * self, PyObject * value );
-
-static int Material_setSssEnable( BPy_Material * self, PyObject * value );
-static int Material_setSssScale( BPy_Material * self, PyObject * value );
-static int Material_setSssRadius( BPy_Material * self, PyObject * value, void * type );
-static int Material_setSssIOR( BPy_Material * self, PyObject * value );
-static int Material_setSssError( BPy_Material * self, PyObject * value );
-static int Material_setSssColorBlend( BPy_Material * self, PyObject * value );
-static int Material_setSssTexScatter( BPy_Material * self, PyObject * value );
-static int Material_setSssFront( BPy_Material * self, PyObject * value );
-static int Material_setSssBack( BPy_Material * self, PyObject * value );
-static int Material_setSssBack( BPy_Material * self, PyObject * value );
-
-static PyObject *Material_getColorComponent( BPy_Material * self,
- void * closure );
-
-/*static int Material_setSeptex( BPy_Material * self, PyObject * value );
- static PyObject *Material_getSeptex( BPy_Material * self );*/
-
-/*****************************************************************************/
-/* Python BPy_Material methods declarations: */
-/*****************************************************************************/
-static PyObject *Material_getIpo( BPy_Material * self );
-static PyObject *Material_getMode( BPy_Material * self );
-static PyObject *Material_getRGBCol( BPy_Material * self );
-/*static PyObject *Material_getAmbCol(BPy_Material *self);*/
-static PyObject *Material_getSpecCol( BPy_Material * self );
-static PyObject *Material_getMirCol( BPy_Material * self );
-static PyObject *Material_getSssCol( BPy_Material * self );
-static PyObject *Material_getAmb( BPy_Material * self );
-static PyObject *Material_getEmit( BPy_Material * self );
-static PyObject *Material_getAlpha( BPy_Material * self );
-static PyObject *Material_getShadAlpha( BPy_Material * self );
-static PyObject *Material_getRef( BPy_Material * self );
-static PyObject *Material_getSpec( BPy_Material * self );
-static PyObject *Material_getSpecTransp( BPy_Material * self );
-static PyObject *Material_getAdd( BPy_Material * self );
-static PyObject *Material_getZOffset( BPy_Material * self );
-static PyObject *Material_getLightGroup( BPy_Material * self );
-static PyObject *Material_getHaloSize( BPy_Material * self );
-static PyObject *Material_getHaloSeed( BPy_Material * self );
-static PyObject *Material_getFlareSize( BPy_Material * self );
-static PyObject *Material_getFlareSeed( BPy_Material * self );
-static PyObject *Material_getFlareBoost( BPy_Material * self );
-static PyObject *Material_getSubSize( BPy_Material * self );
-static PyObject *Material_getHardness( BPy_Material * self );
-static PyObject *Material_getNFlares( BPy_Material * self );
-static PyObject *Material_getNStars( BPy_Material * self );
-static PyObject *Material_getNLines( BPy_Material * self );
-static PyObject *Material_getNRings( BPy_Material * self );
-/* Shader settings */
-static PyObject *Material_getSpecShader( BPy_Material * self );
-static PyObject *Material_getDiffuseShader( BPy_Material * self );
-static PyObject *Material_getRoughness( BPy_Material * self );
-static PyObject *Material_getSpecSize( BPy_Material * self );
-static PyObject *Material_getDiffuseSize( BPy_Material * self );
-static PyObject *Material_getSpecSmooth( BPy_Material * self );
-static PyObject *Material_getDiffuseSmooth( BPy_Material * self );
-static PyObject *Material_getDiffuseDarkness( BPy_Material * self );
-static PyObject *Material_getRefracIndex( BPy_Material * self );
-static PyObject *Material_getRms( BPy_Material * self );
-
-static PyObject *Material_getRayMirr( BPy_Material * self );
-static PyObject *Material_getMirrDepth( BPy_Material * self );
-static PyObject *Material_getFresnelMirr( BPy_Material * self );
-static PyObject *Material_getFresnelMirrFac( BPy_Material * self );
-static PyObject *Material_getIOR( BPy_Material * self );
-static PyObject *Material_getTransDepth( BPy_Material * self );
-static PyObject *Material_getFresnelTrans( BPy_Material * self );
-static PyObject *Material_getFresnelTransFac( BPy_Material * self );
-static PyObject *Material_getRigidBodyFriction( BPy_Material * self );
-static PyObject *Material_getRigidBodyRestitution( BPy_Material * self );
-
-static PyObject *Material_getSssEnable( BPy_Material * self );
-static PyObject *Material_getSssScale( BPy_Material * self );
-static PyObject *Material_getSssRadius( BPy_Material * self, void * type );
-static PyObject *Material_getSssIOR( BPy_Material * self );
-static PyObject *Material_getSssError( BPy_Material * self );
-static PyObject *Material_getSssColorBlend( BPy_Material * self );
-static PyObject *Material_getSssTexScatter( BPy_Material * self );
-static PyObject *Material_getSssFront( BPy_Material * self );
-static PyObject *Material_getSssBack( BPy_Material * self );
-static PyObject *Material_getSssBack( BPy_Material * self );
-
-static PyObject *Material_getFilter( BPy_Material * self );
-static PyObject *Material_getTranslucency( BPy_Material * self );
-static PyObject *Material_getTextures( BPy_Material * self );
-static PyObject *Material_clearIpo( BPy_Material * self );
-
-static PyObject *Material_setTexture( BPy_Material * self, PyObject * args );
-static PyObject *Material_clearTexture( BPy_Material * self, PyObject * value );
-
-static PyObject *Material_getScriptLinks(BPy_Material *self, PyObject * value );
-static PyObject *Material_addScriptLink(BPy_Material * self, PyObject * args );
-static PyObject *Material_clearScriptLinks(BPy_Material *self, PyObject *args);
-
-static PyObject *Material_insertIpoKey( BPy_Material * self, PyObject * args );
-static PyObject *Material_getColorband( BPy_Material * self, void * type);
-int Material_setColorband( BPy_Material * self, PyObject * value, void * type);
-static PyObject *Material_copy( BPy_Material * self );
-
-
-/*****************************************************************************/
-/* Python BPy_Material methods table: */
-/*****************************************************************************/
-static PyMethodDef BPy_Material_methods[] = {
- /* name, method, flags, doc */
- {"getName", ( PyCFunction ) GenericLib_getName, METH_NOARGS,
- "() - Return Material's name"},
- {"getIpo", ( PyCFunction ) Material_getIpo, METH_NOARGS,
- "() - Return Material's ipo or None if not found"},
- {"getMode", ( PyCFunction ) Material_getMode, METH_NOARGS,
- "() - Return Material's mode flags"},
- {"getRGBCol", ( PyCFunction ) Material_getRGBCol, METH_NOARGS,
- "() - Return Material's rgb color triplet"},
-/* {"getAmbCol", (PyCFunction)Material_getAmbCol, METH_NOARGS,
- "() - Return Material's ambient color"},*/
- {"getSpecCol", ( PyCFunction ) Material_getSpecCol, METH_NOARGS,
- "() - Return Material's specular color"},
- {"getMirCol", ( PyCFunction ) Material_getMirCol, METH_NOARGS,
- "() - Return Material's mirror color"},
- {"getAmb", ( PyCFunction ) Material_getAmb, METH_NOARGS,
- "() - Return Material's ambient color blend factor"},
- {"getEmit", ( PyCFunction ) Material_getEmit, METH_NOARGS,
- "() - Return Material's emitting light intensity"},
- {"getAlpha", ( PyCFunction ) Material_getAlpha, METH_NOARGS,
- "() - Return Material's alpha (transparency) value"},
- {"getRef", ( PyCFunction ) Material_getRef, METH_NOARGS,
- "() - Return Material's reflectivity"},
- {"getSpec", ( PyCFunction ) Material_getSpec, METH_NOARGS,
- "() - Return Material's specularity"},
- /* Shader specific settings */
- {"getSpecShader", ( PyCFunction ) Material_getSpecShader, METH_NOARGS,
- "() - Returns Material's specular shader" },
- {"getDiffuseShader", ( PyCFunction ) Material_getDiffuseShader, METH_NOARGS,
- "() - Returns Material's diffuse shader" },
- {"getRoughness", ( PyCFunction ) Material_getRoughness, METH_NOARGS,
- "() - Returns Material's Roughness (applies to the \"Oren Nayar\" Diffuse Shader only)" },
- {"getSpecSize", ( PyCFunction ) Material_getSpecSize, METH_NOARGS,
- "() - Returns Material's size of specular area (applies to the \"Toon\" Specular Shader only)" },
- {"getDiffuseSize", ( PyCFunction ) Material_getDiffuseSize, METH_NOARGS,
- "() - Returns Material's size of diffuse area (applies to the \"Toon\" Diffuse Shader only)" },
- {"getSpecSmooth", ( PyCFunction ) Material_getSpecSmooth, METH_NOARGS,
- "() - Returns Material's smoothing of specular area (applies to the \"Toon\" Diffuse Shader only)" },
- {"getDiffuseSmooth", ( PyCFunction ) Material_getDiffuseSmooth, METH_NOARGS,
- "() - Returns Material's smoothing of diffuse area (applies to the \"Toon\" Diffuse Shader only)" },
- {"getDiffuseDarkness", ( PyCFunction ) Material_getDiffuseDarkness, METH_NOARGS,
- "() - Returns Material's diffuse darkness (applies to the \"Minnaert\" Diffuse Shader only)" },
- {"getRefracIndex", ( PyCFunction ) Material_getRefracIndex, METH_NOARGS,
- "() - Returns Material's Index of Refraction (applies to the \"Blinn\" Specular Shader only)" },
- {"getRms", ( PyCFunction ) Material_getRms, METH_NOARGS,
- "() - Returns Material's standard deviation of surface slope (applies to the \"WardIso\" Specular Shader only)" },
- /* End shader settings */
- {"getSpecTransp", ( PyCFunction ) Material_getSpecTransp, METH_NOARGS,
- "() - Return Material's specular transparency"},
- {"getAdd", ( PyCFunction ) Material_getAdd, METH_NOARGS,
- "() - Return Material's glow factor"},
- {"getZOffset", ( PyCFunction ) Material_getZOffset, METH_NOARGS,
- "() - Return Material's artificial offset for faces"},
- {"getHaloSize", ( PyCFunction ) Material_getHaloSize, METH_NOARGS,
- "() - Return Material's halo size"},
- {"getHaloSeed", ( PyCFunction ) Material_getHaloSeed, METH_NOARGS,
- "() - Return Material's seed for random ring dimension and line "
- "location in halos"},
- {"getFlareSize", ( PyCFunction ) Material_getFlareSize, METH_NOARGS,
- "() - Return Material's (flare size)/(halo size) factor"},
- {"getFlareSeed", ( PyCFunction ) Material_getFlareSeed, METH_NOARGS,
- "() - Return Material's flare offset in the seed table"},
- {"getFlareBoost", ( PyCFunction ) Material_getFlareBoost, METH_NOARGS,
- "() - Return Material's flare boost"},
- {"getSubSize", ( PyCFunction ) Material_getSubSize, METH_NOARGS,
- "() - Return Material's dimension of subflare, dots and circles"},
- {"getHardness", ( PyCFunction ) Material_getHardness, METH_NOARGS,
- "() - Return Material's specular hardness"},
- {"getNFlares", ( PyCFunction ) Material_getNFlares, METH_NOARGS,
- "() - Return Material's number of flares in halo"},
- {"getNStars", ( PyCFunction ) Material_getNStars, METH_NOARGS,
- "() - Return Material's number of points in the halo stars"},
- {"getNLines", ( PyCFunction ) Material_getNLines, METH_NOARGS,
- "() - Return Material's number of lines in halo"},
- {"getNRings", ( PyCFunction ) Material_getNRings, METH_NOARGS,
- "() - Return Material's number of rings in halo"},
- {"getRayMirr", ( PyCFunction ) Material_getRayMirr, METH_NOARGS,
- "() - Return mount mirror"},
- {"getMirrDepth", ( PyCFunction ) Material_getMirrDepth, METH_NOARGS,
- "() - Return amount mirror depth"},
- {"getFresnelMirr", ( PyCFunction ) Material_getFresnelMirr, METH_NOARGS,
- "() - Return fresnel power for refractions"},
- {"getFresnelMirrFac", ( PyCFunction ) Material_getFresnelMirrFac, METH_NOARGS,
- "() - Return fresnel power for refractions factor"},
- {"getFilter", ( PyCFunction ) Material_getFilter, METH_NOARGS,
- "() - Return the amount of filtering when transparent raytrace is enabled"},
- {"getTranslucency", ( PyCFunction ) Material_getTranslucency, METH_NOARGS,
- "() - Return the Translucency, the amount of diffuse shading of the back side"},
- {"getIOR", ( PyCFunction ) Material_getIOR, METH_NOARGS,
- "() - Return IOR"},
- {"getTransDepth", ( PyCFunction ) Material_getTransDepth, METH_NOARGS,
- "() - Return amount inter-refractions"},
- {"getFresnelTrans", ( PyCFunction ) Material_getFresnelTrans, METH_NOARGS,
- "() - Return fresnel power for refractions"},
- {"getFresnelTransFac", ( PyCFunction ) Material_getFresnelTransFac, METH_NOARGS,
- "() - Return fresnel power for refractions factor"},
-
- {"getTextures", ( PyCFunction ) Material_getTextures, METH_NOARGS,
- "() - Return Material's texture list as a tuple"},
- {"setName", ( PyCFunction ) GenericLib_setName_with_method, METH_VARARGS,
- "(s) - Change Material's name"},
- {"setIpo", ( PyCFunction ) Matr_oldsetIpo, METH_VARARGS,
- "(Blender Ipo) - Change Material's Ipo"},
- {"clearIpo", ( PyCFunction ) Material_clearIpo, METH_NOARGS,
- "(Blender Ipo) - Unlink Ipo from this Material"},
- {"insertIpoKey", ( PyCFunction ) Material_insertIpoKey, METH_VARARGS,
- "(Material Ipo Constant) - Insert IPO Key at current frame"},
- {"setMode", ( PyCFunction ) Matr_oldsetMode, METH_VARARGS,
- "([s[,s]]) - Set Material's mode flag(s)"},
- {"setRGBCol", ( PyCFunction ) Matr_oldsetRGBCol, METH_VARARGS,
- "(f,f,f or [f,f,f]) - Set Material's rgb color triplet"},
-/* {"setAmbCol", (PyCFunction)Matr_oldsetAmbCol, METH_VARARGS,
- "(f,f,f or [f,f,f]) - Set Material's ambient color"},*/
- {"setSpecCol", ( PyCFunction ) Matr_oldsetSpecCol, METH_VARARGS,
- "(f,f,f or [f,f,f]) - Set Material's specular color"},
-
- /* Shader spesific settings */
- {"setSpecShader", ( PyCFunction ) Matr_oldsetSpecShader, METH_VARARGS,
- "(i) - Set the Material's specular shader" },
- {"setDiffuseShader", ( PyCFunction ) Matr_oldsetDiffuseShader, METH_VARARGS,
- "(i) - Set the Material's diffuse shader" },
- {"setRoughness", ( PyCFunction ) Matr_oldsetRoughness, METH_VARARGS,
- "(f) - Set the Material's Roughness (applies to the \"Oren Nayar\" Diffuse Shader only)" },
- {"setSpecSize", ( PyCFunction ) Matr_oldsetSpecSize, METH_VARARGS,
- "(f) - Set the Material's size of specular area (applies to the \"Toon\" Specular Shader only)" },
- {"setDiffuseSize", ( PyCFunction ) Matr_oldsetDiffuseSize, METH_VARARGS,
- "(f) - Set the Material's size of diffuse area (applies to the \"Toon\" Diffuse Shader only)" },
- {"setSpecSmooth", ( PyCFunction ) Matr_oldsetSpecSmooth, METH_VARARGS,
- "(f) - Set the Material's smoothing of specular area (applies to the \"Toon\" Specular Shader only)" },
- {"setDiffuseSmooth", ( PyCFunction ) Matr_oldsetDiffuseSmooth, METH_VARARGS,
- "(f) - Set the Material's smoothing of diffuse area (applies to the \"Toon\" Diffuse Shader only)" },
- {"setDiffuseDarkness", ( PyCFunction ) Matr_oldsetDiffuseDarkness, METH_VARARGS,
- "(f) - Set the Material's diffuse darkness (applies to the \"Minnaert\" Diffuse Shader only)" },
- {"setRefracIndex", ( PyCFunction ) Matr_oldsetRefracIndex, METH_VARARGS,
- "(f) - Set the Material's Index of Refraction (applies to the \"Blinn\" Specular Shader only)" },
- {"setRms", ( PyCFunction ) Matr_oldsetRms, METH_VARARGS,
- "(f) - Set the Material's standard deviation of surface slope (applies to the \"WardIso\" Specular Shader only)" },
- /* End shader settings */
-
- {"setMirCol", ( PyCFunction ) Matr_oldsetMirCol, METH_VARARGS,
- "(f,f,f or [f,f,f]) - Set Material's mirror color"},
- {"setAmb", ( PyCFunction ) Matr_oldsetAmb, METH_VARARGS,
- "(f) - Set how much the Material's color is affected"
- " by \nthe global ambient colors - [0.0, 1.0]"},
- {"setEmit", ( PyCFunction ) Matr_oldsetEmit, METH_VARARGS,
- "(f) - Set Material's emitting light intensity - [0.0, 1.0]"},
- {"setAlpha", ( PyCFunction ) Matr_oldsetAlpha, METH_VARARGS,
- "(f) - Set Material's alpha (transparency) - [0.0, 1.0]"},
- {"setRef", ( PyCFunction ) Matr_oldsetRef, METH_VARARGS,
- "(f) - Set Material's reflectivity - [0.0, 1.0]"},
- {"setSpec", ( PyCFunction ) Matr_oldsetSpec, METH_VARARGS,
- "(f) - Set Material's specularity - [0.0, 2.0]"},
- {"setSpecTransp", ( PyCFunction ) Matr_oldsetSpecTransp, METH_VARARGS,
- "(f) - Set Material's specular transparency - [0.0, 1.0]"},
- {"setAdd", ( PyCFunction ) Matr_oldsetAdd, METH_VARARGS,
- "(f) - Set Material's glow factor - [0.0, 1.0]"},
- {"setZOffset", ( PyCFunction ) Matr_oldsetZOffset, METH_VARARGS,
- "(f) - Set Material's artificial offset - [0.0, 10.0]"},
- {"setHaloSize", ( PyCFunction ) Matr_oldsetHaloSize, METH_VARARGS,
- "(f) - Set Material's halo size - [0.0, 100.0]"},
- {"setHaloSeed", ( PyCFunction ) Matr_oldsetHaloSeed, METH_VARARGS,
- "(i) - Set Material's halo seed - [0, 255]"},
- {"setFlareSize", ( PyCFunction ) Matr_oldsetFlareSize, METH_VARARGS,
- "(f) - Set Material's factor: (flare size)/(halo size) - [0.1, 25.0]"},
- {"setFlareSeed", ( PyCFunction ) Matr_oldsetFlareSeed, METH_VARARGS,
- "(i) - Set Material's flare seed - [0, 255]"},
- {"setFlareBoost", ( PyCFunction ) Matr_oldsetFlareBoost, METH_VARARGS,
- "(f) - Set Material's flare boost - [0.1, 10.0]"},
- {"setSubSize", ( PyCFunction ) Matr_oldsetSubSize, METH_VARARGS,
- "(f) - Set Material's dimension of subflare,"
- " dots and circles - [0.1, 25.0]"},
- {"setHardness", ( PyCFunction ) Matr_oldsetHardness, METH_VARARGS,
- "(i) - Set Material's hardness - [1, 255 (127 if halo mode is ON)]"},
- {"setNFlares", ( PyCFunction ) Matr_oldsetNFlares, METH_VARARGS,
- "(i) - Set Material's number of flares in halo - [1, 32]"},
- {"setNStars", ( PyCFunction ) Matr_oldsetNStars, METH_VARARGS,
- "(i) - Set Material's number of stars in halo - [3, 50]"},
- {"setNLines", ( PyCFunction ) Matr_oldsetNLines, METH_VARARGS,
- "(i) - Set Material's number of lines in halo - [0, 250]"},
- {"setNRings", ( PyCFunction ) Matr_oldsetNRings, METH_VARARGS,
- "(i) - Set Material's number of rings in halo - [0, 24]"},
- {"setRayMirr", ( PyCFunction ) Matr_oldsetRayMirr, METH_VARARGS,
- "(f) - Set amount mirror - [0.0, 1.0]"},
- {"setMirrDepth", ( PyCFunction ) Matr_oldsetMirrDepth, METH_VARARGS,
- "(i) - Set amount inter-reflections - [0, 10]"},
- {"setFresnelMirr", ( PyCFunction ) Matr_oldsetFresnelMirr, METH_VARARGS,
- "(f) - Set fresnel power for mirror - [0.0, 5.0]"},
- {"setFresnelMirrFac", ( PyCFunction ) Matr_oldsetFresnelMirrFac, METH_VARARGS,
- "(f) - Set blend fac for mirror fresnel - [1.0, 5.0]"},
- {"setFilter", ( PyCFunction ) Matr_oldsetFilter, METH_VARARGS,
- "(f) - Set the amount of filtering when transparent raytrace is enabled"},
- {"setTranslucency", ( PyCFunction ) Matr_oldsetTranslucency, METH_VARARGS,
- "(f) - Set the Translucency, the amount of diffuse shading of the back side"},
- {"setIOR", ( PyCFunction ) Matr_oldsetIOR, METH_VARARGS,
- "(f) - Set IOR - [1.0, 3.0]"},
- {"setTransDepth", ( PyCFunction ) Matr_oldsetTransDepth, METH_VARARGS,
- "(i) - Set amount inter-refractions - [0, 10]"},
- {"setFresnelTrans", ( PyCFunction ) Matr_oldsetFresnelTrans, METH_VARARGS,
- "(f) - Set fresnel power for refractions - [0.0, 5.0]"},
- {"setFresnelTransFac", ( PyCFunction ) Matr_oldsetFresnelTransFac, METH_VARARGS,
- "(f) - Set fresnel power for refractions factor- [0.0, 5.0]"},
- {"setTexture", ( PyCFunction ) Material_setTexture, METH_VARARGS,
- "(n,tex,texco=0,mapto=0) - Set numbered texture to tex"},
- {"clearTexture", ( PyCFunction ) Material_clearTexture, METH_O,
- "(n) - Remove texture from numbered slot"},
- {"getScriptLinks", ( PyCFunction ) Material_getScriptLinks, METH_O,
- "(eventname) - Get a list of this material's scriptlinks (Text names) "
- "of the given type\n"
- "(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, Redraw or Render."},
- {"clearScriptLinks", ( PyCFunction ) Material_clearScriptLinks, METH_VARARGS,
- "() - Delete all scriptlinks from this material.\n"
- "([s1<,s2,s3...>]) - Delete specified scriptlinks from this material."},
- {"__copy__", ( PyCFunction ) Material_copy, METH_NOARGS,
- "() - Return a copy of the material."},
- {"copy", ( PyCFunction ) Material_copy, METH_NOARGS,
- "() - Return a copy of the material."},
- {NULL, NULL, 0, NULL}
-};
-
-/*****************************************************************************/
-/* Python attributes get/set structure: */
-/*****************************************************************************/
-
-static PyGetSetDef BPy_Material_getseters[] = {
- GENERIC_LIB_GETSETATTR,
- {"add",
- (getter)Material_getAdd, (setter)Material_setAdd,
- "Strength of the add effect",
- NULL},
- {"alpha",
- (getter)Material_getAlpha, (setter)Material_setAlpha,
- "Alpha setting ",
- NULL},
- {"shadAlpha",
- (getter)Material_getShadAlpha, (setter)Material_setShadAlpha,
- "Shadow Alpha setting",
- NULL},
- {"amb",
- (getter)Material_getAmb, (setter)Material_setAmb,
- "Amount of global ambient color material receives",
- NULL},
- {"diffuseDarkness",
- (getter)Material_getDiffuseDarkness, (setter)Material_setDiffuseDarkness,
- "Material's diffuse darkness (\"Minnaert\" diffuse shader only)",
- NULL},
- {"diffuseShader",
- (getter)Material_getDiffuseShader, (setter)Material_setDiffuseShader,
- "Diffuse shader type",
- NULL},
- {"diffuseSize",
- (getter)Material_getDiffuseSize, (setter)Material_setDiffuseSize,
- "Material's diffuse area size (\"Toon\" diffuse shader only)",
- NULL},
- {"diffuseSmooth",
- (getter)Material_getDiffuseSmooth, (setter)Material_setDiffuseSmooth,
- "Material's diffuse area smoothing (\"Toon\" diffuse shader only)",
- NULL},
- {"emit",
- (getter)Material_getEmit, (setter)Material_setEmit,
- "Amount of light the material emits",
- NULL},
- {"filter",
- (getter)Material_getFilter, (setter)Material_setFilter,
- "Amount of filtering when transparent raytrace is enabled",
- NULL},
- {"flareBoost",
- (getter)Material_getFlareBoost, (setter)Material_setFlareBoost,
- "Flare's extra strength",
- NULL},
- {"flareSeed",
- (getter)Material_getFlareSeed, (setter)Material_setFlareSeed,
- "Offset in the flare seed table",
- NULL},
- {"flareSize",
- (getter)Material_getFlareSize, (setter)Material_setFlareSize,
- "Ratio of flare size to halo size",
- NULL},
- {"fresnelDepth",
- (getter)Material_getFresnelMirr, (setter)Material_setFresnelMirr,
- "Power of Fresnel for mirror reflection",
- NULL},
- {"fresnelDepthFac",
- (getter)Material_getFresnelMirrFac, (setter)Material_setFresnelMirrFac,
- "Blending factor for Fresnel mirror",
- NULL},
- {"fresnelTrans",
- (getter)Material_getFresnelTrans, (setter)Material_setFresnelTrans,
- "Power of Fresnel for transparency",
- NULL},
- {"fresnelTransFac",
- (getter)Material_getFresnelTransFac, (setter)Material_setFresnelTransFac,
- "Blending factor for Fresnel transparency",
- NULL},
- {"rbFriction",
- (getter)Material_getRigidBodyFriction, (setter)Material_setRigidBodyFriction,
- "Rigid Body Friction coefficient",
- NULL},
- {"rbRestitution",
- (getter)Material_getRigidBodyRestitution, (setter)Material_setRigidBodyRestitution,
- "Rigid Body Restitution coefficient",
- NULL},
-
- {"haloSeed",
- (getter)Material_getHaloSeed, (setter)Material_setHaloSeed,
- "Randomizes halo ring dimension and line location",
- NULL},
- {"haloSize",
- (getter)Material_getHaloSize, (setter)Material_setHaloSize,
- "Dimension of the halo",
- NULL},
- {"hard",
- (getter)Material_getHardness, (setter)Material_setHardness,
- "Specularity hardness",
- NULL},
- {"IOR",
- (getter)Material_getIOR, (setter)Material_setIOR,
- "Angular index of refraction for raytrace",
- NULL},
- {"ipo",
- (getter)Material_getIpo, (setter)Material_setIpo,
- "Material Ipo data",
- NULL},
- {"mirCol",
- (getter)Material_getMirCol, (setter)Material_setMirCol,
- "Mirror RGB color triplet",
- NULL},
- {"mirR",
- (getter)Material_getColorComponent, (setter)Material_setColorComponent,
- "Mirror color red component",
- (void *) EXPP_MAT_COMP_MIRR },
- {"mirG",
- (getter)Material_getColorComponent, (setter)Material_setColorComponent,
- "Mirror color green component",
- (void *) EXPP_MAT_COMP_MIRG },
- {"mirB",
- (getter)Material_getColorComponent, (setter)Material_setColorComponent,
- "Mirror color blue component",
- (void *) EXPP_MAT_COMP_MIRB },
- {"sssCol",
- (getter)Material_getSssCol, (setter)Material_setSssCol,
- "Sss RGB color triplet",
- NULL},
- {"sssR",
- (getter)Material_getColorComponent, (setter)Material_setColorComponent,
- "SSS color red component",
- (void *) EXPP_MAT_COMP_SSSR },
- {"sssG",
- (getter)Material_getColorComponent, (setter)Material_setColorComponent,
- "SSS color green component",
- (void *) EXPP_MAT_COMP_SSSG },
- {"sssB",
- (getter)Material_getColorComponent, (setter)Material_setColorComponent,
- "SSS color blue component",
- (void *) EXPP_MAT_COMP_SSSB },
- {"mode",
- (getter)Material_getMode, (setter)Material_setMode,
- "Material mode bitmask",
- NULL},
- {"nFlares",
- (getter)Material_getNFlares, (setter)Material_setNFlares,
- "Number of subflares with halo",
- NULL},
- {"nLines",
- (getter)Material_getNLines, (setter)Material_setNLines,
- "Number of star-shaped lines with halo",
- NULL},
- {"nRings",
- (getter)Material_getNRings, (setter)Material_setNRings,
- "Number of rings with halo",
- NULL},
- {"nStars",
- (getter)Material_getNStars, (setter)Material_setNStars,
- "Number of star points with halo",
- NULL},
- {"rayMirr",
- (getter)Material_getRayMirr, (setter)Material_setRayMirr,
- "Mirror reflection amount for raytrace",
- NULL},
- {"rayMirrDepth",
- (getter)Material_getMirrDepth, (setter)Material_setMirrDepth,
- "Amount of raytrace inter-reflections",
- NULL},
- {"ref",
- (getter)Material_getRef, (setter)Material_setRef,
- "Amount of reflections (for shader)",
- NULL},
- {"refracIndex",
- (getter)Material_getRefracIndex, (setter)Material_setRefracIndex,
- "Material's Index of Refraction (applies to the \"Blinn\" Specular Shader only",
- NULL},
- {"rgbCol",
- (getter)Material_getRGBCol, (setter)Material_setRGBCol,
- "Diffuse RGB color triplet",
- NULL},
- {"rms",
- (getter)Material_getRms, (setter)Material_setRms,
- "Material's surface slope standard deviation (\"WardIso\" specular shader only)",
- NULL},
- {"roughness",
- (getter)Material_getRoughness, (setter)Material_setRoughness,
- "Material's roughness (\"Oren Nayar\" diffuse shader only)",
- NULL},
- {"spec",
- (getter)Material_getSpec, (setter)Material_setSpec,
- "Degree of specularity",
- NULL},
- {"specCol",
- (getter)Material_getSpecCol, (setter)Material_setSpecCol,
- "Specular RGB color triplet",
- NULL},
- {"specR",
- (getter)Material_getColorComponent, (setter)Material_setColorComponent,
- "Specular color red component",
- (void *) EXPP_MAT_COMP_SPECR },
- {"specG",
- (getter)Material_getColorComponent, (setter)Material_setColorComponent,
- "Specular color green component",
- (void *) EXPP_MAT_COMP_SPECG },
- {"specB",
- (getter)Material_getColorComponent, (setter)Material_setColorComponent,
- "Specular color blue component",
- (void *) EXPP_MAT_COMP_SPECB },
- {"specTransp",
- (getter)Material_getSpecTransp, (setter)Material_setSpecTransp,
- "Makes specular areas opaque on transparent materials",
- NULL},
- {"specShader",
- (getter)Material_getSpecShader, (setter)Material_setSpecShader,
- "Specular shader type",
- NULL},
- {"specSize",
- (getter)Material_getSpecSize, (setter)Material_setSpecSize,
- "Material's specular area size (\"Toon\" specular shader only)",
- NULL},
- {"specSmooth",
- (getter)Material_getSpecSmooth, (setter)Material_setSpecSmooth,
- "Sets the smoothness of specular toon area",
- NULL},
- {"subSize",
- (getter)Material_getSubSize, (setter)Material_setSubSize,
- "Dimension of subflares, dots and circles",
- NULL},
- {"transDepth",
- (getter)Material_getTransDepth, (setter)Material_setTransDepth,
- "Amount of refractions for raytrace",
- NULL},
- {"translucency",
- (getter)Material_getTranslucency, (setter)Material_setTranslucency,
- "Amount of diffuse shading of the back side",
- NULL},
- {"zOffset",
- (getter)Material_getZOffset, (setter)Material_setZOffset,
- "Artificial offset in the Z buffer (for Ztransp option)",
- NULL},
- {"lightGroup",
- (getter)Material_getLightGroup, (setter)Material_setLightGroup,
- "Set the light group for this material",
- NULL},
- {"R",
- (getter)Material_getColorComponent, (setter)Material_setColorComponent,
- "Diffuse color red component",
- (void *) EXPP_MAT_COMP_R },
- {"G",
- (getter)Material_getColorComponent, (setter)Material_setColorComponent,
- "Diffuse color green component",
- (void *) EXPP_MAT_COMP_G },
- {"B",
- (getter)Material_getColorComponent, (setter)Material_setColorComponent,
- "Diffuse color blue component",
- (void *) EXPP_MAT_COMP_B },
- {"colorbandDiffuse",
- (getter)Material_getColorband, (setter)Material_setColorband,
- "The diffuse colorband for this material",
- (void *) 0},
- {"colorbandSpecular",
- (getter)Material_getColorband, (setter)Material_setColorband,
- "The specular colorband for this material",
- (void *) 1},
-
- /* SSS settings */
- {"enableSSS",
- (getter)Material_getSssEnable, (setter)Material_setSssEnable,
- "if true, SSS will be rendered for this material",
- NULL},
- {"sssScale",
- (getter)Material_getSssScale, (setter)Material_setSssScale,
- "object scale for sss",
- NULL},
- {"sssRadiusRed",
- (getter)Material_getSssRadius, (setter)Material_setSssRadius,
- "Mean red scattering path length",
- (void *) 0},
- {"sssRadiusGreen",
- (getter)Material_getSssRadius, (setter)Material_setSssRadius,
- "Mean red scattering path length",
- (void *) 1},
- {"sssRadiusBlue",
- (getter)Material_getSssRadius, (setter)Material_setSssRadius,
- "Mean red scattering path length",
- (void *) 0},
- {"sssIOR",
- (getter)Material_getSssIOR, (setter)Material_setSssIOR,
- "index of refraction",
- NULL},
- {"sssError",
- (getter)Material_getSssError, (setter)Material_setSssError,
- "Error",
- NULL},
- {"sssColorBlend",
- (getter)Material_getSssColorBlend, (setter)Material_setSssColorBlend,
- "Blend factor for SSS Colors",
- NULL},
- {"sssTextureScatter",
- (getter)Material_getSssTexScatter, (setter)Material_setSssTexScatter,
- "Texture scattering factor",
- NULL},
- {"sssFont",
- (getter)Material_getSssFront, (setter)Material_setSssFront,
- "Front scattering weight",
- NULL},
- {"sssBack",
- (getter)Material_getSssBack, (setter)Material_setSssBack,
- "Back scattering weight",
- NULL},
- {NULL,NULL,NULL,NULL,NULL} /* Sentinel */
-};
-
-/*****************************************************************************/
-/* Python Material_Type callback function prototypes: */
-/*****************************************************************************/
-static void Material_dealloc( BPy_Material * self );
-static int Material_compare( BPy_Material * a, BPy_Material * b);
-static PyObject *Material_repr( BPy_Material * self );
-
-/*****************************************************************************/
-/* Python Material_Type structure definition: */
-/*****************************************************************************/
-PyTypeObject Material_Type = {
- PyObject_HEAD_INIT( NULL ) /* required py macro */
- 0, /* ob_size */
- /* For printing, in format "<module>.<name>" */
- "Blender Material", /* char *tp_name; */
- sizeof( BPy_Material ), /* int tp_basicsize; */
- 0, /* tp_itemsize; For allocation */
-
- /* Methods to implement standard operations */
-
- ( destructor ) Material_dealloc,/* destructor tp_dealloc; */
- NULL, /* printfunc tp_print; */
- NULL, /* getattrfunc tp_getattr; */
- NULL, /* setattrfunc tp_setattr; */
- ( cmpfunc ) Material_compare,/* cmpfunc tp_compare; */
- ( reprfunc ) Material_repr, /* reprfunc tp_repr; */
-
- /* Method suites for standard classes */
-
- NULL, /* PyNumberMethods *tp_as_number; */
- NULL, /* PySequenceMethods *tp_as_sequence; */
- NULL, /* PyMappingMethods *tp_as_mapping; */
-
- /* More standard operations (here for binary compatibility) */
-
- ( hashfunc ) GenericLib_hash, /* hashfunc tp_hash; */
- NULL, /* ternaryfunc tp_call; */
- NULL, /* reprfunc tp_str; */
- NULL, /* getattrofunc tp_getattro; */
- NULL, /* setattrofunc tp_setattro; */
-
- /* Functions to access object as input/output buffer */
- NULL, /* PyBufferProcs *tp_as_buffer; */
-
- /*** Flags to define presence of optional/expanded features ***/
- Py_TPFLAGS_DEFAULT, /* long tp_flags; */
-
- NULL, /* char *tp_doc; Documentation string */
- /*** Assigned meaning in release 2.0 ***/
- /* call function for all accessible objects */
- NULL, /* traverseproc tp_traverse; */
-
- /* delete references to contained objects */
- NULL, /* inquiry tp_clear; */
-
- /*** Assigned meaning in release 2.1 ***/
- /*** rich comparisons ***/
- NULL, /* richcmpfunc tp_richcompare; */
-
- /*** weak reference enabler ***/
- 0, /* long tp_weaklistoffset; */
-
- /*** Added in release 2.2 ***/
- /* Iterators */
- NULL, /* getiterfunc tp_iter; */
- NULL, /* iternextfunc tp_iternext; */
-
- /*** Attribute descriptor and subclassing stuff ***/
- BPy_Material_methods, /* struct PyMethodDef *tp_methods; */
- NULL, /* struct PyMemberDef *tp_members; */
- BPy_Material_getseters, /* struct PyGetSetDef *tp_getset; */
- NULL, /* struct _typeobject *tp_base; */
- NULL, /* PyObject *tp_dict; */
- NULL, /* descrgetfunc tp_descr_get; */
- NULL, /* descrsetfunc tp_descr_set; */
- 0, /* long tp_dictoffset; */
- NULL, /* initproc tp_init; */
- NULL, /* allocfunc tp_alloc; */
- NULL, /* newfunc tp_new; */
- /* Low-level free-memory routine */
- NULL, /* freefunc tp_free; */
- /* For PyObject_IS_GC */
- NULL, /* inquiry tp_is_gc; */
- NULL, /* PyObject *tp_bases; */
- /* method resolution order */
- NULL, /* PyObject *tp_mro; */
- NULL, /* PyObject *tp_cache; */
- NULL, /* PyObject *tp_subclasses; */
- NULL, /* PyObject *tp_weaklist; */
- NULL
-};
-
-/*****************************************************************************/
-/* Function: Material_dealloc */
-/* Description: This is a callback function for the BPy_Material type. It is */
-/* the destructor function. */
-/*****************************************************************************/
-static void Material_dealloc( BPy_Material * self )
-{
- Py_DECREF( self->col );
- Py_DECREF( self->amb );
- Py_DECREF( self->spec );
- Py_DECREF( self->mir );
- Py_DECREF( self->sss );
- PyObject_DEL( self );
-}
-
-/*****************************************************************************/
-/* Function: Material_CreatePyObject */
-/* Description: Create a new BPy_Material from an existing */
-/* Blender material structure. */
-/*****************************************************************************/
-PyObject *Material_CreatePyObject( struct Material *mat )
-{
- BPy_Material *pymat;
- float *col[3], *amb[3], *spec[3], *mir[3], *sss[3];
-
- pymat = ( BPy_Material * ) PyObject_NEW( BPy_Material,
- &Material_Type );
-
- if( !pymat )
- return EXPP_ReturnPyObjError( PyExc_MemoryError,
- "couldn't create BPy_Material object" );
-
- pymat->material = mat;
-
- col[0] = &mat->r;
- col[1] = &mat->g;
- col[2] = &mat->b;
-
- amb[0] = &mat->ambr;
- amb[1] = &mat->ambg;
- amb[2] = &mat->ambb;
-
- spec[0] = &mat->specr;
- spec[1] = &mat->specg;
- spec[2] = &mat->specb;
-
- mir[0] = &mat->mirr;
- mir[1] = &mat->mirg;
- mir[2] = &mat->mirb;
-
- sss[0] = &mat->sss_col[0];
- sss[1] = &mat->sss_col[1];
- sss[2] = &mat->sss_col[2];
-
- pymat->col = ( BPy_rgbTuple * ) rgbTuple_New( col );
- pymat->amb = ( BPy_rgbTuple * ) rgbTuple_New( amb );
- pymat->spec = ( BPy_rgbTuple * ) rgbTuple_New( spec );
- pymat->mir = ( BPy_rgbTuple * ) rgbTuple_New( mir );
- pymat->sss = ( BPy_rgbTuple * ) rgbTuple_New( sss );
-
- return ( PyObject * ) pymat;
-}
-
-/*****************************************************************************/
-/* Function: Material_FromPyObject */
-/* Description: This function returns the Blender material from the given */
-/* PyObject. */
-/*****************************************************************************/
-Material *Material_FromPyObject( PyObject * pyobj )
-{
- return ( ( BPy_Material * ) pyobj )->material;
-}
-
-static PyObject *Material_getIpo( BPy_Material * self )
-{
- Ipo *ipo = self->material->ipo;
-
- if( !ipo )
- Py_RETURN_NONE;
-
- return Ipo_CreatePyObject( ipo );
-}
-
-static PyObject *Material_getMode( BPy_Material * self )
-{
- return PyInt_FromLong( ( long ) self->material->mode );
-}
-
-static PyObject *Material_getRGBCol( BPy_Material * self )
-{
- return rgbTuple_getCol( self->col );
-}
-
-/*
-static PyObject *Material_getAmbCol(BPy_Material *self)
-{
- return rgbTuple_getCol(self->amb);
-}
-*/
-static PyObject *Material_getSpecCol( BPy_Material * self )
-{
- return rgbTuple_getCol( self->spec );
-}
-
-static PyObject *Material_getMirCol( BPy_Material * self )
-{
- return rgbTuple_getCol( self->mir );
-}
-
-static PyObject *Material_getSssCol( BPy_Material * self )
-{
- return rgbTuple_getCol( self->sss );
-}
-
-static PyObject *Material_getSpecShader( BPy_Material * self )
-{
- return PyInt_FromLong( ( long ) self->material->spec_shader );
-}
-
-static PyObject *Material_getDiffuseShader( BPy_Material * self )
-{
- return PyInt_FromLong( ( long ) self->material->diff_shader );
-}
-
-static PyObject *Material_getRoughness( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->roughness );
-}
-
-static PyObject *Material_getSpecSize( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->param[2] );
-}
-
-static PyObject *Material_getDiffuseSize( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->param[0] );
-}
-
-static PyObject *Material_getSpecSmooth( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->param[3] );
-}
-
-static PyObject *Material_getDiffuseSmooth( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->param[1] );
-}
-
-static PyObject *Material_getDiffuseDarkness( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->darkness );
-}
-
-static PyObject *Material_getRefracIndex( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->refrac );
-}
-
-static PyObject *Material_getRms( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->rms );
-}
-
-static PyObject *Material_getAmb( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->amb );
-}
-
-static PyObject *Material_getEmit( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->emit );
-}
-
-static PyObject *Material_getAlpha( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->alpha );
-}
-
-static PyObject *Material_getShadAlpha( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->shad_alpha );
-}
-
-static PyObject *Material_getRef( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->ref );
-}
-
-static PyObject *Material_getSpec( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->spec );
-}
-
-static PyObject *Material_getSpecTransp( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->spectra );
-}
-
-static PyObject *Material_getAdd( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->add );
-}
-
-static PyObject *Material_getZOffset( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->zoffs );
-}
-
-static PyObject *Material_getLightGroup( BPy_Material * self )
-{
- return Group_CreatePyObject( self->material->group );
-}
-
-static PyObject *Material_getHaloSize( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->hasize );
-}
-
-static PyObject *Material_getFlareSize( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->flaresize );
-}
-
-static PyObject *Material_getFlareBoost( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->flareboost );
-}
-
-static PyObject *Material_getSubSize( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->subsize );
-}
-
-static PyObject *Material_getHaloSeed( BPy_Material * self )
-{
- return PyInt_FromLong( ( long ) self->material->seed1 );
-}
-
-static PyObject *Material_getFlareSeed( BPy_Material * self )
-{
- return PyInt_FromLong( ( long ) self->material->seed2 );
-}
-
-static PyObject *Material_getHardness( BPy_Material * self )
-{
- return PyInt_FromLong( ( long ) self->material->har );
-}
-
-static PyObject *Material_getNFlares( BPy_Material * self )
-{
- return PyInt_FromLong( ( long ) self->material->flarec );
-}
-
-static PyObject *Material_getNStars( BPy_Material * self )
-{
- return PyInt_FromLong( ( long ) self->material->starc );
-}
-
-static PyObject *Material_getNLines( BPy_Material * self )
-{
- return PyInt_FromLong( ( long ) self->material->linec );
-}
-
-static PyObject *Material_getNRings( BPy_Material * self )
-{
- return PyInt_FromLong( ( long ) self->material->ringc );
-}
-
-static PyObject *Material_getRayMirr( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->ray_mirror );
-}
-
-static PyObject *Material_getMirrDepth( BPy_Material * self )
-{
- return PyInt_FromLong( ( long ) self->material->ray_depth );
-}
-
-static PyObject *Material_getFresnelMirr( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->fresnel_mir );
-}
-
-static PyObject *Material_getFresnelMirrFac( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->fresnel_mir_i );
-}
-
-static PyObject *Material_getFilter( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->filter );
-}
-
-static PyObject *Material_getTranslucency( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->translucency );
-}
-
-static PyObject *Material_getIOR( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->ang );
-}
-
-static PyObject *Material_getTransDepth( BPy_Material * self )
-{
- return PyInt_FromLong( ( long ) self->material->ray_depth_tra );
-}
-
-static PyObject *Material_getFresnelTrans( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->fresnel_tra );
-}
-
-static PyObject *Material_getFresnelTransFac( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->fresnel_tra_i );
-}
-
-static PyObject* Material_getRigidBodyFriction( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->friction );
-}
-
-static PyObject* Material_getRigidBodyRestitution( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->reflect );
-}
-
-/* SSS */
-static PyObject* Material_getSssEnable( BPy_Material * self )
-{
- return EXPP_getBitfield( &self->material->sss_flag, MA_DIFF_SSS, 'h' );
-}
-
-static PyObject* Material_getSssScale( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->sss_scale );
-}
-
-static PyObject* Material_getSssRadius( BPy_Material * self, void * type )
-{
- return PyFloat_FromDouble( ( double ) (self->material->sss_radius[(int)type]) );
-}
-
-static PyObject* Material_getSssIOR( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->sss_ior);
-}
-
-static PyObject* Material_getSssError( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->sss_error);
-}
-
-static PyObject* Material_getSssColorBlend( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->sss_colfac);
-}
-
-static PyObject* Material_getSssTexScatter( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->sss_texfac);
-}
-
-static PyObject* Material_getSssFront( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->sss_front);
-}
-
-static PyObject* Material_getSssBack( BPy_Material * self )
-{
- return PyFloat_FromDouble( ( double ) self->material->sss_back);
-}
-
-static PyObject *Material_getTextures( BPy_Material * self )
-{
- int i;
- struct MTex *mtex;
- PyObject *t[MAX_MTEX];
- PyObject *tuple;
-
- /* build a texture list */
- for( i = 0; i < MAX_MTEX; ++i ) {
- mtex = self->material->mtex[i];
-
- if( mtex ) {
- t[i] = MTex_CreatePyObject( mtex );
- } else {
- Py_INCREF( Py_None );
- t[i] = Py_None;
- }
- }
-
- /* turn the array into a tuple */
- tuple = Py_BuildValue( "NNNNNNNNNN", t[0], t[1], t[2], t[3],
- t[4], t[5], t[6], t[7], t[8], t[9] );
- if( !tuple )
- return EXPP_ReturnPyObjError( PyExc_MemoryError,
- "Material_getTextures: couldn't create PyTuple" );
-
- return tuple;
-}
-
-/*
- * this should accept a Py_None argument and just delete the Ipo link
- * (as Lamp_clearIpo() does)
- */
-
-static int Material_setIpo( BPy_Material * self, PyObject * value )
-{
- return GenericLib_assignData(value, (void **) &self->material->ipo, 0, 1, ID_IP, ID_MA);
-}
-
-
-/*
- * Material_insertIpoKey( key )
- * inserts Material IPO key at current frame
- */
-
-static PyObject *Material_insertIpoKey( BPy_Material * self, PyObject * args )
-{
- int key = 0, map;
-
- if( !PyArg_ParseTuple( args, "i", &( key ) ) )
- return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
- "expected int argument" ) );
-
- map = texchannel_to_adrcode(self->material->texact);
-
- if(key==IPOKEY_RGB || key==IPOKEY_ALLCOLOR) {
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_COL_R, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_COL_G, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_COL_B, 0);
- }
- if(key==IPOKEY_ALPHA || key==IPOKEY_ALLCOLOR) {
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_ALPHA, 0);
- }
- if(key==IPOKEY_HALOSIZE || key==IPOKEY_ALLCOLOR) {
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_HASIZE, 0);
- }
- if(key==IPOKEY_MODE || key==IPOKEY_ALLCOLOR) {
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_MODE, 0);
- }
- if(key==IPOKEY_ALLCOLOR) {
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC_R, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC_G, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC_B, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_REF, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_EMIT, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_AMB, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_HARD, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_MODE, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_TRANSLU, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_ADD, 0);
- }
- if(key==IPOKEY_ALLMIRROR) {
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_RAYM, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESMIR, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESMIRI, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESTRA, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESTRAI, 0);
- }
- if(key==IPOKEY_OFS || key==IPOKEY_ALLMAPPING) {
- insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_OFS_X, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_OFS_Y, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_OFS_Z, 0);
- }
- if(key==IPOKEY_SIZE || key==IPOKEY_ALLMAPPING) {
- insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_SIZE_X, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_SIZE_Y, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_SIZE_Z, 0);
- }
- if(key==IPOKEY_ALLMAPPING) {
- insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_R, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_G, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_B, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_DVAR, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_COLF, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_NORF, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_VARF, 0);
- insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_DISP, 0);
- }
-
- allspace(REMAKEIPO, 0);
- EXPP_allqueue(REDRAWIPO, 0);
- EXPP_allqueue(REDRAWVIEW3D, 0);
- EXPP_allqueue(REDRAWACTION, 0);
- EXPP_allqueue(REDRAWNLA, 0);
-
- Py_RETURN_NONE;
-}
-
-static int Material_setMode( BPy_Material * self, PyObject * value )
-{
- int param;
-
- if( !PyInt_Check( value ) ) {
- char errstr[128];
- sprintf ( errstr , "expected int bitmask of 0x%08x", MA_MODE_MASK );
- return EXPP_ReturnIntError( PyExc_TypeError, errstr );
- }
- param = PyInt_AS_LONG ( value );
-
- if ( ( param & MA_MODE_MASK ) != param )
- return EXPP_ReturnIntError( PyExc_ValueError,
- "invalid bit(s) set in mask" );
-
- self->material->mode &= ( MA_RAMP_COL | MA_RAMP_SPEC );
- self->material->mode |= param & ~( MA_RAMP_COL | MA_RAMP_SPEC );
-
- return 0;
-}
-
-static int Material_setRGBCol( BPy_Material * self, PyObject * value )
-{
- return rgbTuple_setCol( self->col, value );
-}
-
-/*
-static PyObject *Material_setAmbCol (BPy_Material *self, PyObject * value )
-{
- return rgbTuple_setCol(self->amb, value);
-}
-*/
-
-static int Material_setSpecCol( BPy_Material * self, PyObject * value )
-{
- return rgbTuple_setCol( self->spec, value );
-}
-
-static int Material_setMirCol( BPy_Material * self, PyObject * value )
-{
- return rgbTuple_setCol( self->mir, value );
-}
-
-static int Material_setSssCol( BPy_Material * self, PyObject * value )
-{
- return rgbTuple_setCol( self->sss, value );
-}
-
-static int Material_setColorComponent( BPy_Material * self, PyObject * value,
- void * closure )
-{
- float param;
-
- if( !PyNumber_Check ( value ) )
- return EXPP_ReturnIntError( PyExc_TypeError,
- "expected float argument in [0.0,1.0]" );
-
- param = (float)PyFloat_AsDouble( value );
- param = EXPP_ClampFloat( param, EXPP_MAT_COL_MIN, EXPP_MAT_COL_MAX );
-
- switch ( (int)closure ) {
- case EXPP_MAT_COMP_R:
- self->material->r = param;
- return 0;
- case EXPP_MAT_COMP_G:
- self->material->g = param;
- return 0;
- case EXPP_MAT_COMP_B:
- self->material->b = param;
- return 0;
- case EXPP_MAT_COMP_SPECR:
- self->material->specr = param;
- return 0;
- case EXPP_MAT_COMP_SPECG:
- self->material->specg = param;
- return 0;
- case EXPP_MAT_COMP_SPECB:
- self->material->specb = param;
- return 0;
- case EXPP_MAT_COMP_MIRR:
- self->material->mirr = param;
- return 0;
- case EXPP_MAT_COMP_MIRG:
- self->material->mirg = param;
- return 0;
- case EXPP_MAT_COMP_MIRB:
- self->material->mirb = param;
- return 0;
- case EXPP_MAT_COMP_SSSR:
- self->material->sss_col[0] = param;
- return 0;
- case EXPP_MAT_COMP_SSSG:
- self->material->sss_col[1] = param;
- return 0;
- case EXPP_MAT_COMP_SSSB:
- self->material->sss_col[2] = param;
- return 0;
- }
- return EXPP_ReturnIntError( PyExc_RuntimeError,
- "unknown color component specified" );
-}
-
-/*#define setFloatWrapper(val, min, max) {return EXPP_setFloatClamped ( value, &self->material->#val, #min, #max}*/
-
-static int Material_setAmb( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->amb,
- EXPP_MAT_AMB_MIN,
- EXPP_MAT_AMB_MAX );
-}
-
-static int Material_setEmit( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->emit,
- EXPP_MAT_EMIT_MIN,
- EXPP_MAT_EMIT_MAX );
-}
-
-static int Material_setSpecTransp( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->spectra,
- EXPP_MAT_SPECTRA_MIN,
- EXPP_MAT_SPECTRA_MAX );
-}
-
-static int Material_setAlpha( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->alpha,
- EXPP_MAT_ALPHA_MIN,
- EXPP_MAT_ALPHA_MAX );
-}
-
-static int Material_setShadAlpha( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->shad_alpha,
- EXPP_MAT_ALPHA_MIN,
- EXPP_MAT_ALPHA_MAX );
-}
-
-static int Material_setRef( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->ref,
- EXPP_MAT_REF_MIN,
- EXPP_MAT_REF_MAX );
-}
-
-static int Material_setSpec( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->spec,
- EXPP_MAT_SPEC_MIN,
- EXPP_MAT_SPEC_MAX );
-}
-
-static int Material_setZOffset( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->zoffs,
- EXPP_MAT_ZOFFS_MIN,
- EXPP_MAT_ZOFFS_MAX );
-}
-
-static int Material_setLightGroup( BPy_Material * self, PyObject * value )
-{
- return GenericLib_assignData(value, (void **) &self->material->group, NULL, 1, ID_GR, 0);
-}
-
-static int Material_setAdd( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->add,
- EXPP_MAT_ADD_MIN,
- EXPP_MAT_ADD_MAX );
-}
-
-static int Material_setHaloSize( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->hasize,
- EXPP_MAT_HALOSIZE_MIN,
- EXPP_MAT_HALOSIZE_MAX );
-}
-
-static int Material_setFlareSize( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->flaresize,
- EXPP_MAT_FLARESIZE_MIN,
- EXPP_MAT_FLARESIZE_MAX );
-}
-
-static int Material_setFlareBoost( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->flareboost,
- EXPP_MAT_FLAREBOOST_MIN,
- EXPP_MAT_FLAREBOOST_MAX );
-}
-
-static int Material_setSubSize( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->subsize,
- EXPP_MAT_SUBSIZE_MIN,
- EXPP_MAT_SUBSIZE_MAX );
-}
-
-static int Material_setHaloSeed( BPy_Material * self, PyObject * value )
-{
- return EXPP_setIValueClamped ( value, &self->material->seed1,
- EXPP_MAT_HALOSEED_MIN,
- EXPP_MAT_HALOSEED_MAX, 'b' );
-}
-
-static int Material_setFlareSeed( BPy_Material * self, PyObject * value )
-{
- return EXPP_setIValueClamped ( value, &self->material->seed2,
- EXPP_MAT_FLARESEED_MIN,
- EXPP_MAT_FLARESEED_MAX, 'b' );
-}
-
-static int Material_setHardness( BPy_Material * self, PyObject * value )
-{
- return EXPP_setIValueClamped ( value, &self->material->har,
- EXPP_MAT_HARD_MIN,
- EXPP_MAT_HARD_MAX, 'h' );
-}
-
-static int Material_setNFlares( BPy_Material * self, PyObject * value )
-{
- return EXPP_setIValueClamped ( value, &self->material->flarec,
- EXPP_MAT_NFLARES_MIN,
- EXPP_MAT_NFLARES_MAX, 'h' );
-}
-
-static int Material_setNStars( BPy_Material * self, PyObject * value )
-{
- return EXPP_setIValueClamped ( value, &self->material->starc,
- EXPP_MAT_NSTARS_MIN,
- EXPP_MAT_NSTARS_MAX, 'h' );
-}
-
-static int Material_setNLines( BPy_Material * self, PyObject * value )
-{
- return EXPP_setIValueClamped ( value, &self->material->linec,
- EXPP_MAT_NLINES_MIN,
- EXPP_MAT_NLINES_MAX, 'h' );
-}
-
-static int Material_setNRings( BPy_Material * self, PyObject * value )
-{
- return EXPP_setIValueClamped ( value, &self->material->ringc,
- EXPP_MAT_NRINGS_MIN,
- EXPP_MAT_NRINGS_MAX, 'h' );
-}
-
-static int Material_setRayMirr( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->ray_mirror,
- EXPP_MAT_RAYMIRR_MIN,
- EXPP_MAT_RAYMIRR_MAX );
-}
-
-static int Material_setMirrDepth( BPy_Material * self, PyObject * value )
-{
- return EXPP_setIValueClamped ( value, &self->material->ray_depth,
- EXPP_MAT_MIRRDEPTH_MIN,
- EXPP_MAT_MIRRDEPTH_MAX, 'h' );
-}
-
-static int Material_setFresnelMirr( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->fresnel_mir,
- EXPP_MAT_FRESNELMIRR_MIN,
- EXPP_MAT_FRESNELMIRR_MAX );
-}
-
-static int Material_setFresnelMirrFac( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->fresnel_mir_i,
- EXPP_MAT_FRESNELMIRRFAC_MIN,
- EXPP_MAT_FRESNELMIRRFAC_MAX );
-}
-
-static int Material_setIOR( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->ang,
- EXPP_MAT_IOR_MIN,
- EXPP_MAT_IOR_MAX );
-}
-
-static int Material_setTransDepth( BPy_Material * self, PyObject * value )
-{
- return EXPP_setIValueClamped ( value, &self->material->ray_depth_tra,
- EXPP_MAT_TRANSDEPTH_MIN,
- EXPP_MAT_TRANSDEPTH_MAX, 'h' );
-}
-
-static int Material_setFresnelTrans( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->fresnel_tra,
- EXPP_MAT_FRESNELTRANS_MIN,
- EXPP_MAT_FRESNELTRANS_MAX );
-}
-
-static int Material_setFresnelTransFac( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->fresnel_tra_i,
- EXPP_MAT_FRESNELTRANSFAC_MIN,
- EXPP_MAT_FRESNELTRANSFAC_MAX );
-}
-
-static int Material_setRigidBodyFriction( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->friction,
- 0.f,
- 100.f );
-}
-
-static int Material_setRigidBodyRestitution( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->reflect,
- 0.f,
- 1.f );
-}
-
-
-
-
-static int Material_setSpecShader( BPy_Material * self, PyObject * value )
-{
- return EXPP_setIValueRange( value, &self->material->spec_shader,
- MA_SPEC_COOKTORR,
- MA_SPEC_WARDISO, 'h' );
-}
-
-static int Material_setDiffuseShader( BPy_Material * self, PyObject * value )
-{
- return EXPP_setIValueRange( value, &self->material->diff_shader,
- MA_DIFF_LAMBERT,
- MA_DIFF_MINNAERT, 'h' );
-}
-
-static int Material_setRoughness( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->roughness,
- EXPP_MAT_ROUGHNESS_MIN,
- EXPP_MAT_ROUGHNESS_MAX );
-}
-
-static int Material_setSpecSize( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->param[2],
- EXPP_MAT_SPECSIZE_MIN,
- EXPP_MAT_SPECSIZE_MAX );
-}
-
-static int Material_setDiffuseSize( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->param[0],
- EXPP_MAT_DIFFUSESIZE_MIN,
- EXPP_MAT_DIFFUSESIZE_MAX );
-}
-
-static int Material_setSpecSmooth( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->param[3],
- EXPP_MAT_SPECSMOOTH_MIN,
- EXPP_MAT_SPECSMOOTH_MAX );
-}
-
-static int Material_setDiffuseSmooth( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->param[1],
- EXPP_MAT_DIFFUSESMOOTH_MIN,
- EXPP_MAT_DIFFUSESMOOTH_MAX );
-}
-
-static int Material_setDiffuseDarkness( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->darkness,
- EXPP_MAT_DIFFUSE_DARKNESS_MIN,
- EXPP_MAT_DIFFUSE_DARKNESS_MAX );
-}
-
-static int Material_setRefracIndex( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->refrac,
- EXPP_MAT_REFRACINDEX_MIN,
- EXPP_MAT_REFRACINDEX_MAX );
-}
-
-static int Material_setRms( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->rms,
- EXPP_MAT_RMS_MIN,
- EXPP_MAT_RMS_MAX );
-}
-
-static int Material_setFilter( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->filter,
- EXPP_MAT_FILTER_MIN,
- EXPP_MAT_FILTER_MAX );
-}
-
-static int Material_setTranslucency( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->translucency,
- EXPP_MAT_TRANSLUCENCY_MIN,
- EXPP_MAT_TRANSLUCENCY_MAX );
-}
-
-/* SSS */
-static int Material_setSssEnable( BPy_Material * self, PyObject * value )
-{
- return EXPP_setBitfield( value, &self->material->sss_flag, MA_DIFF_SSS, 'h' );
-}
-
-static int Material_setSssScale( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->sss_scale,
- EXPP_MAT_SSS_SCALE_MIN,
- EXPP_MAT_SSS_SCALE_MAX);
-}
-
-static int Material_setSssRadius( BPy_Material * self, PyObject * value, void *type )
-{
- return EXPP_setFloatClamped ( value, &self->material->sss_radius[(int)type],
- EXPP_MAT_SSS_RADIUS_MIN,
- EXPP_MAT_SSS_RADIUS_MAX);
-}
-
-static int Material_setSssIOR( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->sss_ior,
- EXPP_MAT_SSS_IOR_MIN,
- EXPP_MAT_SSS_IOR_MAX);
-}
-
-static int Material_setSssError( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->sss_error,
- EXPP_MAT_SSS_IOR_MIN,
- EXPP_MAT_SSS_IOR_MAX);
-}
-
-static int Material_setSssColorBlend( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->sss_colfac,
- 0.0,
- 1.0);
-}
-
-static int Material_setSssTexScatter( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->sss_texfac,
- 0.0,
- 1.0);
-}
-
-static int Material_setSssFront( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->sss_front,
- EXPP_MAT_SSS_FRONT_MIN,
- EXPP_MAT_SSS_FRONT_MAX);
-}
-
-static int Material_setSssBack( BPy_Material * self, PyObject * value )
-{
- return EXPP_setFloatClamped ( value, &self->material->sss_back,
- EXPP_MAT_SSS_BACK_MIN,
- EXPP_MAT_SSS_BACK_MAX);
-}
-
-
-
-
-static PyObject *Material_setTexture( BPy_Material * self, PyObject * args )
-{
- int texnum;
- PyObject *pytex;
- Tex *bltex;
- int texco = TEXCO_ORCO, mapto = MAP_COL;
-
- if( !PyArg_ParseTuple( args, "iO!|ii", &texnum, &Texture_Type, &pytex,
- &texco, &mapto ) )
- return EXPP_ReturnPyObjError( PyExc_TypeError,
- "expected int in [0,9] and Texture" );
- if( ( texnum < 0 ) || ( texnum >= MAX_MTEX ) )
- return EXPP_ReturnPyObjError( PyExc_TypeError,
- "expected int in [0,9] and Texture" );
-
- bltex = Texture_FromPyObject( pytex );
-
- if( !self->material->mtex[texnum] ) {
- /* there isn't an mtex for this slot so we need to make one */
- self->material->mtex[texnum] = add_mtex( );
- } else {
- /* we already had a texture here so deal with the old one first */
- self->material->mtex[texnum]->tex->id.us--;
- }
-
- self->material->mtex[texnum]->tex = bltex;
- id_us_plus( &bltex->id );
- self->material->mtex[texnum]->texco = (short)texco;
- self->material->mtex[texnum]->mapto = (short)mapto;
-
- Py_RETURN_NONE;
-}
-
-static PyObject *Material_clearTexture( BPy_Material * self, PyObject * value )
-{
- int texnum = (int)PyInt_AsLong(value);
- struct MTex *mtex;
- /* non ints will be -1 */
- if( ( texnum < 0 ) || ( texnum >= MAX_MTEX ) )
- return EXPP_ReturnPyObjError( PyExc_TypeError,
- "expected int in [0,9]" );
-
- mtex = self->material->mtex[texnum];
- if( mtex ) {
- if( mtex->tex )
- mtex->tex->id.us--;
- MEM_freeN( mtex );
- self->material->mtex[texnum] = NULL;
- }
-
- Py_RETURN_NONE;
-}
-
-/* mat.addScriptLink */
-static PyObject *Material_addScriptLink( BPy_Material * self, PyObject * args )
-{
- Material *mat = self->material;
- ScriptLink *slink = NULL;
-
- slink = &( mat )->scriptlink;
-
- return EXPP_addScriptLink( slink, args, 0 );
-}
-
-/* mat.clearScriptLinks */
-static PyObject *Material_clearScriptLinks(BPy_Material *self, PyObject *args )
-{
- Material *mat = self->material;
- ScriptLink *slink = NULL;
-
- slink = &( mat )->scriptlink;
-
- return EXPP_clearScriptLinks( slink, args );
-}
-
-/* mat.getScriptLinks */
-static PyObject *Material_getScriptLinks( BPy_Material * self,
- PyObject * value )
-{
- Material *mat = self->material;
- ScriptLink *slink = NULL;
- PyObject *ret = NULL;
-
- slink = &( mat )->scriptlink;
-
- /* can't this just return? EXP_getScriptLinks() returns a PyObject*
- * or NULL anyway */
-
- ret = EXPP_getScriptLinks( slink, value, 0 );
-
- if( ret )
- return ret;
- else
- return NULL;
-}
-
-/* mat.__copy__ */
-static PyObject *Material_copy( BPy_Material * self )
-{
- BPy_Material *pymat; /* for Material Data object wrapper in Python */
- Material *blmat; /* for actual Material Data we create in Blender */
-
- blmat = copy_material( self->material ); /* first copy the Material Data in Blender */
-
- if( blmat ) /* now create the wrapper obj in Python */
- pymat = ( BPy_Material * ) Material_CreatePyObject( blmat );
- else
- return ( EXPP_ReturnPyObjError( PyExc_RuntimeError,
- "couldn't create Material Data in Blender" ) );
-
- blmat->id.us = 0; /* was incref'ed by add_material() above */
-
- if( pymat == NULL )
- return ( EXPP_ReturnPyObjError( PyExc_MemoryError,
- "couldn't create Material Data object" ) );
-
- return ( PyObject * ) pymat;
-}
-
-/* mat_a==mat_b or mat_a!=mat_b*/
-static int Material_compare( BPy_Material * a, BPy_Material * b )
-{
- return ( a->material == b->material) ? 0 : -1;
-}
-
-/*****************************************************************************/
-/* Function: Material_repr */
-/* Description: This is a callback function for the BPy_Material type. It */
-/* builds a meaninful string to represent material objects. */
-/*****************************************************************************/
-static PyObject *Material_repr( BPy_Material * self )
-{
- return PyString_FromFormat( "[Material \"%s\"]",
- self->material->id.name + 2 );
-}
-
-/*****************************************************************************/
-/* These functions are used here and in in Texture.c */
-/*****************************************************************************/
-PyObject *EXPP_PyList_fromColorband( ColorBand *coba )
-{
- short i;
- PyObject *cbls;
- PyObject *colls;
-
- if (!coba)
- return PyList_New( 0 );
-
- cbls = PyList_New( coba->tot );
-
- for (i=0; i < coba->tot; i++) {
- colls = PyList_New( 5 );
- PyList_SET_ITEM( colls, 0, PyFloat_FromDouble(coba->data[i].r) );
- PyList_SET_ITEM( colls, 1, PyFloat_FromDouble(coba->data[i].g) );
- PyList_SET_ITEM( colls, 2, PyFloat_FromDouble(coba->data[i].b) );
- PyList_SET_ITEM( colls, 3, PyFloat_FromDouble(coba->data[i].a) );
- PyList_SET_ITEM( colls, 4, PyFloat_FromDouble(coba->data[i].pos) );
- PyList_SET_ITEM(cbls, i, colls);
- }
- return cbls;
-}
-
-/* make sure you coba is not none before calling this */
-int EXPP_Colorband_fromPyList( ColorBand **coba, PyObject * value )
-{
- short totcol, i;
- PyObject *colseq;
- PyObject *pyflt;
- float f;
-
- if ( !PySequence_Check( value ) )
- return ( EXPP_ReturnIntError( PyExc_TypeError,
- "Colorband must be a sequence" ) );
-
- totcol = PySequence_Size(value);
- if ( totcol > 31)
- return ( EXPP_ReturnIntError( PyExc_ValueError,
- "Colorband must be between 1 and 31 in length" ) );
-
- if (totcol==0) {
- MEM_freeN(*coba);
- *coba = NULL;
- return 0;
- }
-
- if (!*coba)
- *coba = MEM_callocN( sizeof(ColorBand), "colorband");
-
- for (i=0; i<totcol; i++) {
- colseq = PySequence_GetItem( value, i );
- if ( !PySequence_Check( colseq ) || PySequence_Size( colseq ) != 5) {
- Py_DECREF ( colseq );
- return ( EXPP_ReturnIntError( PyExc_ValueError,
- "Colorband colors must be sequences of 5 floats" ) );
- }
- for (i=0; i<5; i++) {
- pyflt = PySequence_GetItem( colseq, i );
- if (!PyNumber_Check(pyflt)) {
- return ( EXPP_ReturnIntError( PyExc_ValueError,
- "Colorband colors must be sequences of 5 floats" ) );
- Py_DECREF ( pyflt );
- Py_DECREF ( colseq );
- }
- Py_DECREF ( pyflt );
- }
- Py_DECREF ( colseq );
- }
-
- /* ok, continue - should check for 5 floats, will ignore non floats for now */
- (*coba)->tot = totcol;
- for (i=0; i<totcol; i++) {
- colseq = PySequence_GetItem( value, i );
-
- pyflt = PySequence_GetItem( colseq, 0 );
- f = (float)PyFloat_AsDouble( pyflt );
- CLAMP(f, 0.0, 1.0);
- (*coba)->data[i].r = f;
- Py_DECREF ( pyflt );
-
- pyflt = PySequence_GetItem( colseq, 1 );
- f = (float)PyFloat_AsDouble( pyflt );
- CLAMP(f, 0.0, 1.0);
- (*coba)->data[i].g = f;
- Py_DECREF ( pyflt );
-
- pyflt = PySequence_GetItem( colseq, 2 );
- f = (float)PyFloat_AsDouble( pyflt );
- CLAMP(f, 0.0, 1.0);
- (*coba)->data[i].b = f;
- Py_DECREF ( pyflt );
-
- pyflt = PySequence_GetItem( colseq, 3 );
- f = (float)PyFloat_AsDouble( pyflt );
- CLAMP(f, 0.0, 1.0);
- (*coba)->data[i].a = f;
- Py_DECREF ( pyflt );
-
- pyflt = PySequence_GetItem( colseq, 4 );
- f = (float)PyFloat_AsDouble( pyflt );
- CLAMP(f, 0.0, 1.0);
- (*coba)->data[i].pos = f;
- Py_DECREF ( pyflt );
-
- Py_DECREF ( colseq );
- }
- return 0;
-}
-
-
-/*****************************************************************************/
-/* These functions are used in NMesh.c and Object.c */
-/*****************************************************************************/
-PyObject *EXPP_PyList_fromMaterialList( Material ** matlist, int len, int all )
-{
- PyObject *list;
- int i;
-
- list = PyList_New( 0 );
- if( !matlist )
- return list;
-
- for( i = 0; i < len; i++ ) {
- Material *mat = matlist[i];
- PyObject *ob;
-
- if( mat ) {
- ob = Material_CreatePyObject( mat );
- PyList_Append( list, ob );
- Py_DECREF( ob ); /* because Append increfs */
- } else if( all ) { /* return NULL mats (empty slots) as Py_None */
- PyList_Append( list, Py_None );
- }
- }
-
- return list;
-}
-
-Material **EXPP_newMaterialList_fromPyList( PyObject * list )
-{
- int i, len;
- BPy_Material *pymat = 0;
- Material *mat;
- Material **matlist;
-
- len = PySequence_Length( list );
- if( len > 16 )
- len = 16;
- else if( len <= 0 )
- return NULL;
-
- matlist = EXPP_newMaterialList( len );
-
- for( i = 0; i < len; i++ ) {
-
- pymat = ( BPy_Material * ) PySequence_GetItem( list, i );
-
- if( BPy_Material_Check( ( PyObject * ) pymat ) ) {
- mat = pymat->material;
- matlist[i] = mat;
- } else if( ( PyObject * ) pymat == Py_None ) {
- matlist[i] = NULL;
- } else { /* error; illegal type in material list */
- Py_DECREF( pymat );
- MEM_freeN( matlist );
- return NULL;
- }
-
- Py_DECREF( pymat );
- }
-
- return matlist;
-}
-
-Material **EXPP_newMaterialList( int len )
-{
- Material **matlist =
- ( Material ** ) MEM_mallocN( len * sizeof( Material * ),
- "MaterialList" );
-
- return matlist;
-}
-
-int EXPP_releaseMaterialList( Material ** matlist, int len )
-{
- int i;
- Material *mat;
-
- if( ( len < 0 ) || ( len > MAXMAT ) ) {
- printf( "illegal matindex!\n" );
- return 0;
- }
-
- for( i = 0; i < len; i++ ) {
- mat = matlist[i];
- if( mat ) {
- if( ( ( ID * ) mat )->us > 0 )
- ( ( ID * ) mat )->us--;
- else
- printf( "FATAL: material usage=0: %s",
- ( ( ID * ) mat )->name );
- }
- }
- MEM_freeN( matlist );
-
- return 1;
-}
-
-/** expands pointer array of length 'oldsize' to length 'newsize'.
- * A pointer to the (void *) array must be passed as first argument
- * The array pointer content can be NULL, in this case a new array of length
- * 'newsize' is created.
- */
-
-static int expandPtrArray( void **p, int oldsize, int newsize )
-{
- void *newarray;
-
- if( newsize < oldsize ) {
- return 0;
- }
- newarray = MEM_callocN( sizeof( void * ) * newsize, "PtrArray" );
- if( *p ) {
- memcpy( newarray, *p, sizeof( void * ) * oldsize );
- MEM_freeN( *p );
- }
- *p = newarray;
- return 1;
-}
-
-int EXPP_synchronizeMaterialLists( Object * object )
-{
- Material ***p_dataMaterials = give_matarar( object );
- short *nmaterials = give_totcolp( object );
- int result = 0;
-
- if( object->totcol > *nmaterials ) {
- /* More object mats than data mats */
- result = expandPtrArray( ( void * ) p_dataMaterials,
- *nmaterials, object->totcol );
- *nmaterials = object->totcol;
- } else {
- if( object->totcol < *nmaterials ) {
- /* More data mats than object mats */
- result = expandPtrArray( ( void * ) &object->mat,
- object->totcol, *nmaterials );
- object->totcol = (char)*nmaterials;
- }
- } /* else no synchronization needed, they are of equal length */
-
- return result; /* 1 if changed, 0 otherwise */
-}
-
-void EXPP_incr_mats_us( Material ** matlist, int len )
-{
- int i;
- Material *mat;
-
- if( len <= 0 )
- return;
-
- for( i = 0; i < len; i++ ) {
- mat = matlist[i];
- if( mat )
- mat->id.us++;
- }
-
- return;
-}
-
-static PyObject *Material_getColorComponent( BPy_Material * self,
- void * closure )
-{
- switch ( (int)closure ) {
- case EXPP_MAT_COMP_R:
- return PyFloat_FromDouble( ( double ) self->material->r );
- case EXPP_MAT_COMP_G:
- return PyFloat_FromDouble( ( double ) self->material->g );
- case EXPP_MAT_COMP_B:
- return PyFloat_FromDouble( ( double ) self->material->b );
- case EXPP_MAT_COMP_SPECR:
- return PyFloat_FromDouble( ( double ) self->material->specr );
- case EXPP_MAT_COMP_SPECG:
- return PyFloat_FromDouble( ( double ) self->material->specg );
- case EXPP_MAT_COMP_SPECB:
- return PyFloat_FromDouble( ( double ) self->material->specb );
- case EXPP_MAT_COMP_MIRR:
- return PyFloat_FromDouble( ( double ) self->material->mirr );
- case EXPP_MAT_COMP_MIRG:
- return PyFloat_FromDouble( ( double ) self->material->mirg );
- case EXPP_MAT_COMP_MIRB:
- return PyFloat_FromDouble( ( double ) self->material->mirb );
- case EXPP_MAT_COMP_SSSR:
- return PyFloat_FromDouble( ( double ) self->material->sss_col[0] );
- case EXPP_MAT_COMP_SSSG:
- return PyFloat_FromDouble( ( double ) self->material->sss_col[1] );
- case EXPP_MAT_COMP_SSSB:
- return PyFloat_FromDouble( ( double ) self->material->sss_col[2] );
- default:
- return EXPP_ReturnPyObjError( PyExc_RuntimeError,
- "unknown color component specified" );
- }
-}
-
-static PyObject *Material_getColorband( BPy_Material * self, void * type)
-{
- switch( (long)type ) {
- case 0: /* these are backwards, but that how it works */
- return EXPP_PyList_fromColorband( self->material->ramp_col );
- case 1:
- return EXPP_PyList_fromColorband( self->material->ramp_spec );
- }
- Py_RETURN_NONE;
-}
-
-int Material_setColorband( BPy_Material * self, PyObject * value, void * type)
-{
- switch( (long)type ) {
- case 0: /* these are backwards, but that how it works */
- return EXPP_Colorband_fromPyList( &self->material->ramp_col, value );
- case 1:
- return EXPP_Colorband_fromPyList( &self->material->ramp_spec, value );
- }
- return 0;
-}
-
-/* #####DEPRECATED###### */
-
-static PyObject *Matr_oldsetAdd( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setAdd );
-}
-
-static PyObject *Matr_oldsetAlpha( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setAlpha );
-}
-
-static PyObject *Matr_oldsetAmb( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setAmb );
-}
-
-static PyObject *Matr_oldsetDiffuseDarkness( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setDiffuseDarkness );
-}
-
-static PyObject *Matr_oldsetDiffuseShader( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setDiffuseShader );
-}
-
-static PyObject *Matr_oldsetDiffuseSize( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setDiffuseSize );
-}
-
-static PyObject *Matr_oldsetDiffuseSmooth( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setDiffuseSmooth );
-}
-
-static PyObject *Matr_oldsetEmit( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setEmit );
-}
-
-static PyObject *Matr_oldsetFilter( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setFilter );
-}
-
-static PyObject *Matr_oldsetFlareBoost( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setFlareBoost );
-}
-
-static PyObject *Matr_oldsetFlareSeed( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setFlareSeed );
-}
-
-static PyObject *Matr_oldsetFlareSize( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setFlareSize );
-}
-
-static PyObject *Matr_oldsetFresnelMirr( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setFresnelMirr );
-}
-
-static PyObject *Matr_oldsetFresnelMirrFac( BPy_Material * self,
- PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setFresnelMirrFac );
-}
-
-static PyObject *Matr_oldsetFresnelTrans( BPy_Material * self,
- PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setFresnelTrans );
-}
-
-static PyObject *Matr_oldsetFresnelTransFac( BPy_Material * self,
- PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setFresnelTransFac );
-}
-
-static PyObject *Matr_oldsetHaloSeed( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setHaloSeed );
-}
-
-static PyObject *Matr_oldsetHaloSize( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setHaloSize );
-}
-
-static PyObject *Matr_oldsetHardness( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setHardness );
-}
-
-static PyObject *Matr_oldsetIOR( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setIOR );
-}
-
-static PyObject *Matr_oldsetNFlares( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setNFlares );
-}
-
-static PyObject *Matr_oldsetNLines( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setNLines );
-}
-
-static PyObject *Matr_oldsetNRings( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setNRings );
-}
-
-static PyObject *Matr_oldsetNStars( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setNStars );
-}
-
-static PyObject *Matr_oldsetRayMirr( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setRayMirr );
-}
-
-static PyObject *Matr_oldsetRoughness( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setRoughness );
-}
-
-static PyObject *Matr_oldsetMirrDepth( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setMirrDepth );
-}
-
-static PyObject *Matr_oldsetRef( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setRef );
-}
-
-static PyObject *Matr_oldsetRefracIndex( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setRefracIndex );
-}
-
-static PyObject *Matr_oldsetRms( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setRms );
-}
-
-static PyObject *Matr_oldsetSpec( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setSpec );
-}
-
-static PyObject *Matr_oldsetSpecShader( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setSpecShader );
-}
-
-static PyObject *Matr_oldsetSpecSize( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setSpecSize );
-}
-
-static PyObject *Matr_oldsetSpecSmooth( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setSpecSmooth );
-}
-
-static PyObject *Matr_oldsetSpecTransp( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setSpecTransp );
-}
-
-static PyObject *Matr_oldsetSubSize( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setSubSize );
-}
-
-static PyObject *Matr_oldsetTranslucency( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setTranslucency );
-}
-
-static PyObject *Matr_oldsetTransDepth( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setTransDepth );
-}
-
-static PyObject *Matr_oldsetZOffset( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setZOffset );
-}
-
-static PyObject *Matr_oldsetRGBCol( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapperTuple( (void *)self, args,
- (setter)Material_setRGBCol );
-}
-
-static PyObject *Matr_oldsetSpecCol( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapperTuple( (void *)self, args,
- (setter)Material_setSpecCol );
-}
-
-static PyObject *Matr_oldsetMirCol( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapperTuple( (void *)self, args,
- (setter)Material_setMirCol );
-}
-
-
-/* Possible modes are traceable, shadow, shadeless, wire, vcolLight,
- * vcolPaint, halo, ztransp, zinvert, haloRings, env, haloLines,
- * onlyShadow, xalpha, star, faceTexture, haloTex, haloPuno, noMist,
- * haloShaded, haloFlare */
-
-static PyObject *Matr_oldsetMode( BPy_Material * self, PyObject * args )
-{
- unsigned int i, flag = 0, ok = 0;
- PyObject *value, *error;
- 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
- };
-
- /*
- * 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 ( PyTuple_GET_ITEM ( args , 0 ) )
- && PyArg_ParseTuple( args, "i", &flag )
- && (flag & MA_MODE_MASK ) == flag ) {
- ok = 1;
-
- /*
- * check for either an empty argument list, or up to 28 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] ) ) {
- for( i = 0; i < 28; i++ ) {
- if( m[i] == NULL )
- break;
- if( strcmp( m[i], "Traceable" ) == 0 )
- flag |= MA_TRACEBLE;
- else if( strcmp( m[i], "Shadow" ) == 0 )
- flag |= MA_SHADOW;
- else if( strcmp( m[i], "Shadeless" ) == 0 )
- flag |= MA_SHLESS;
- else if( strcmp( m[i], "Wire" ) == 0 )
- flag |= MA_WIRE;
- else if( strcmp( m[i], "VColLight" ) == 0 )
- flag |= MA_VERTEXCOL;
- else if( strcmp( m[i], "VColPaint" ) == 0 )
- flag |= MA_VERTEXCOLP;
- else if( strcmp( m[i], "Halo" ) == 0 )
- flag |= MA_HALO;
- else if( strcmp( m[i], "ZTransp" ) == 0 )
- flag |= MA_ZTRA;
- else if( strcmp( m[i], "ZInvert" ) == 0 )
- flag |= MA_ZINV;
- else if( strcmp( m[i], "HaloRings" ) == 0 )
- flag |= MA_HALO_RINGS;
- else if( strcmp( m[i], "HaloLines" ) == 0 )
- flag |= MA_HALO_LINES;
- else if( strcmp( m[i], "OnlyShadow" ) == 0 )
- flag |= MA_ONLYSHADOW;
- else if( strcmp( m[i], "HaloXAlpha" ) == 0 )
- flag |= MA_HALO_XALPHA;
- else if( strcmp( m[i], "HaloStar" ) == 0 )
- flag |= MA_STAR;
- else if( strcmp( m[i], "TexFace" ) == 0 )
- flag |= MA_FACETEXTURE;
- else if( strcmp( m[i], "HaloTex" ) == 0 )
- flag |= MA_HALOTEX;
- else if( strcmp( m[i], "HaloPuno" ) == 0 )
- flag |= MA_HALOPUNO;
- else if( strcmp( m[i], "NoMist" ) == 0 )
- flag |= MA_NOMIST;
- else if( strcmp( m[i], "HaloShaded" ) == 0 )
- flag |= MA_HALO_SHADE;
- else if( strcmp( m[i], "HaloFlare" ) == 0 )
- flag |= MA_HALO_FLARE;
- else if( strcmp( m[i], "Radio" ) == 0 )
- flag |= MA_RADIO;
- /* ** Mirror ** */
- else if( strcmp( m[i], "RayMirr" ) == 0 )
- flag |= MA_RAYMIRROR;
- else if( strcmp( m[i], "ZTransp" ) == 0 )
- flag |= MA_ZTRA;
- else if( strcmp( m[i], "RayTransp" ) == 0 )
- flag |= MA_RAYTRANSP;
- else if( strcmp( m[i], "OnlyShadow" ) == 0 )
- flag |= MA_ONLYSHADOW;
- else if( strcmp( m[i], "NoMist" ) == 0 )
- flag |= MA_NOMIST;
- else if( strcmp( m[i], "Env" ) == 0 )
- flag |= MA_ENV;
- else
- return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
- "unknown Material mode argument" ) );
- }
- ok = 1;
- }
-
- /* 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)" ) );
- /* build tuple, call wrapper */
-
- value = Py_BuildValue("(i)", flag);
- error = EXPP_setterWrapper( (void *)self, value, (setter)Material_setMode );
- Py_DECREF ( value );
- return error;
-}
-
-static PyObject *Matr_oldsetIpo( BPy_Material * self, PyObject * args )
-{
- return EXPP_setterWrapper( (void *)self, args, (setter)Material_setIpo );
-}
-
-/*
- * clearIpo() returns True/False depending on whether material has an Ipo
- */
-
-static PyObject *Material_clearIpo( BPy_Material * self )
-{
- /* if Ipo defined, delete it and return true */
-
- if( self->material->ipo ) {
- PyObject *value = Py_BuildValue( "(O)", Py_None );
- EXPP_setterWrapper( (void *)self, value, (setter)Material_setIpo );
- Py_DECREF ( value );
- return EXPP_incr_ret_True();
- }
- return EXPP_incr_ret_False(); /* no ipo found */
-}
-