diff --git a/source/blender/python/api2_2x/Material.c b/source/blender/python/api2_2x/Material.c index 7d24aea776c9b92a2dc2da5668edebbebf32a836..1b0ac3d3da00caeb90d1cf5184193d3c70a656ab 100644 --- a/source/blender/python/api2_2x/Material.c +++ b/source/blender/python/api2_2x/Material.c @@ -71,7 +71,12 @@ #define EXPP_MAT_MODE_HALOSHADE MA_HALO_SHADE #define EXPP_MAT_MODE_HALOFLARE MA_HALO_FLARE #define EXPP_MAT_MODE_RADIO MA_RADIO - +#define EXPP_MAT_MODE_RAYMIRROR MA_RAYMIRROR +#define EXPP_MAT_MODE_ZTRA MA_ZTRA +#define EXPP_MAT_MODE_RAYTRANSP MA_RAYTRANSP +#define EXPP_MAT_MODE_ONLYSHADOW MA_ONLYSHADOW +#define EXPP_MAT_MODE_NOMIST MA_NOMIST +#define EXPP_MAT_MODE_ENV MA_ENV /* Material MIN, MAX values */ #define EXPP_MAT_ADD_MIN 0.0 #define EXPP_MAT_ADD_MAX 1.0 @@ -115,6 +120,35 @@ #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_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 + + + + + + + /*****************************************************************************/ /* Python API function prototypes for the Material module. */ /*****************************************************************************/ @@ -292,6 +326,13 @@ static PyObject *Lamp_ModesDict (void) EXPP_ADDCONST(HALOSHADE); EXPP_ADDCONST(HALOFLARE); EXPP_ADDCONST(RADIO); + EXPP_ADDCONST(RAYMIRROR); + EXPP_ADDCONST(ZTRA); + EXPP_ADDCONST(RAYTRANSP); + EXPP_ADDCONST(ONLYSHADOW); + EXPP_ADDCONST(NOMIST); + EXPP_ADDCONST(ENV); + } return Modes; @@ -348,6 +389,14 @@ 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); +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_getTextures(BPy_Material *self); static PyObject *Material_setIpo(BPy_Material *self, PyObject *args); static PyObject *Material_clearIpo(BPy_Material *self); @@ -377,6 +426,16 @@ static PyObject *Material_setNFlares(BPy_Material *self, PyObject *args); static PyObject *Material_setNStars(BPy_Material *self, PyObject *args); static PyObject *Material_setNLines(BPy_Material *self, PyObject *args); static PyObject *Material_setNRings(BPy_Material *self, PyObject *args); +/* ** Mirror and transp ** */ +static PyObject *Material_setRayMirr(BPy_Material *self, PyObject *args); +static PyObject *Material_setMirrDepth(BPy_Material *self, PyObject *args); +static PyObject *Material_setFresnelMirr(BPy_Material *self, PyObject *args); +static PyObject *Material_setFresnelMirrFac(BPy_Material *self, PyObject *args); +static PyObject *Material_setIOR(BPy_Material *self, PyObject *args); +static PyObject *Material_setTransDepth(BPy_Material *self, PyObject *args); +static PyObject *Material_setFresnelTrans(BPy_Material *self, PyObject *args); +static PyObject *Material_setFresnelTransFac(BPy_Material *self, PyObject *args); +/* ** */ static PyObject *Material_setTexture(BPy_Material *self, PyObject *args); static PyObject *Material_clearTexture(BPy_Material *self, PyObject *args); @@ -445,6 +504,22 @@ static PyMethodDef BPy_Material_methods[] = { "() - 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"}, + {"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)Material_setName, METH_VARARGS, @@ -503,6 +578,22 @@ static PyMethodDef BPy_Material_methods[] = { "(i) - Set Material's number of lines in halo - [0, 250]"}, {"setNRings", (PyCFunction)Material_setNRings, METH_VARARGS, "(i) - Set Material's number of rings in halo - [0, 24]"}, + {"setRayMirr", (PyCFunction)Material_setRayMirr, METH_VARARGS, + "(f) - Set amount mirror - [0.0, 1.0]"}, + {"setMirrDepth", (PyCFunction)Material_setMirrDepth, METH_VARARGS, + "(i) - Set amount inter-reflections - [0, 10]"}, + {"setFresnelMirr", (PyCFunction)Material_setFresnelMirr, METH_VARARGS, + "(f) - Set fresnel power for mirror - [0.0, 5.0]"}, + {"setFresnelMirrFac", (PyCFunction)Material_setFresnelMirrFac, METH_VARARGS, + "(f) - Set blend fac for mirror fresnel - [1.0, 5.0]"}, + {"setIOR", (PyCFunction)Material_setIOR, METH_VARARGS, + "(f) - Set IOR - [1.0, 3.0]"}, + {"setTransDepth", (PyCFunction)Material_setTransDepth, METH_VARARGS, + "(i) - Set amount inter-refractions - [0, 10]"}, + {"setFresnelTrans", (PyCFunction)Material_setFresnelTrans, METH_VARARGS, + "(f) - Set fresnel power for refractions - [0.0, 5.0]"}, + {"setFresnelTransFac", (PyCFunction)Material_setFresnelTransFac, METH_VARARGS, + "(f) - Set fresnel power for refractions factot- [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_VARARGS, @@ -606,7 +697,7 @@ PyObject *Material_CreatePyObject (struct Material *mat) pymat->col = (BPy_rgbTuple *)rgbTuple_New(col); pymat->amb = (BPy_rgbTuple *)rgbTuple_New(amb); - pymat->spec = (BPy_rgbTuple *)rgbTuple_New(spec); + pymat->spec = (BPy_rgbTuple *)rgbTuple_New(spec); pymat->mir = (BPy_rgbTuple *)rgbTuple_New(mir); return (PyObject *)pymat; @@ -904,6 +995,86 @@ static PyObject *Material_getNRings(BPy_Material *self) "couldn't get Material.nRings attribute"); } +static PyObject *Material_getRayMirr(BPy_Material *self) +{ + PyObject *attr = PyFloat_FromDouble((double)self->material->ray_mirror); + + if (attr) return attr; + + return EXPP_ReturnPyObjError (PyExc_RuntimeError, + "couldn't get Material.nRings attribute"); +} + +static PyObject *Material_getMirrDepth(BPy_Material *self) +{ + PyObject *attr = PyInt_FromLong((long)self->material->ray_depth); + + if (attr) return attr; + + return EXPP_ReturnPyObjError (PyExc_RuntimeError, + "couldn't get Material.nRings attribute"); +} + +static PyObject *Material_getFresnelMirr(BPy_Material *self) +{ + PyObject *attr = PyFloat_FromDouble((double)self->material->fresnel_mir); + + if (attr) return attr; + + return EXPP_ReturnPyObjError (PyExc_RuntimeError, + "couldn't get Material.nRings attribute"); +} + +static PyObject *Material_getFresnelMirrFac(BPy_Material *self) +{ + PyObject *attr = PyFloat_FromDouble((double)self->material->fresnel_mir_i); + + if (attr) return attr; + + return EXPP_ReturnPyObjError (PyExc_RuntimeError, + "couldn't get Material.nRings attribute"); +} + +static PyObject *Material_getIOR(BPy_Material *self) +{ + PyObject *attr = PyFloat_FromDouble((double)self->material->ang); + + if (attr) return attr; + + return EXPP_ReturnPyObjError (PyExc_RuntimeError, + "couldn't get Material.nRings attribute"); +} + +static PyObject *Material_getTransDepth(BPy_Material *self) +{ + PyObject *attr = PyInt_FromLong((long)self->material->ray_depth_tra); + + if (attr) return attr; + + return EXPP_ReturnPyObjError (PyExc_RuntimeError, + "couldn't get Material.nRings attribute"); +} + +static PyObject *Material_getFresnelTrans(BPy_Material *self) +{ + PyObject *attr = PyFloat_FromDouble((double)self->material->fresnel_tra); + + if (attr) return attr; + + return EXPP_ReturnPyObjError (PyExc_RuntimeError, + "couldn't get Material.nRings attribute"); +} + +static PyObject *Material_getFresnelTransFac(BPy_Material *self) +{ + PyObject *attr = PyFloat_FromDouble((double)self->material->fresnel_tra_i); + + if (attr) return attr; + + return EXPP_ReturnPyObjError (PyExc_RuntimeError, + "couldn't get Material.nRings attribute"); +} + static PyObject *Material_getTextures(BPy_Material *self) { int i; @@ -934,7 +1105,7 @@ static PyObject *Material_getTextures(BPy_Material *self) return tuple; } -static PyObject *Material_setIpo(BPy_Material *self, PyObject *args) +PyObject *Material_setIpo(BPy_Material *self, PyObject *args) { PyObject *pyipo = 0; Ipo *ipo = NULL; @@ -1007,20 +1178,22 @@ static PyObject *Material_setName(BPy_Material *self, PyObject *args) static PyObject *Material_setMode(BPy_Material *self, PyObject *args) { int i, flag = 0; - char *m[22] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; - - if (!PyArg_ParseTuple(args, "|ssssssssssssssssssssss", - &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])) + char *m[28] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL,NULL,NULL, NULL, NULL, NULL}; + + if (!PyArg_ParseTuple( args, "|ssssssssssssssssssssssssssss", + &m[0], &m[1], &m[2], &m[3], &m[4], &m[5], &m[6], + &m[7], &m[8], &m[9], &m[10], &m[11], &m[12], &m[13], + &m[14], &m[15], &m[16], &m[17], &m[18], &m[19], &m[20], &m[21], + &m[22],&m[23],&m[24], &m[25], &m[26], &m[27])) { return (EXPP_ReturnPyObjError (PyExc_AttributeError, "expected from none to 22 string argument(s)")); } - for (i = 0; i < 22; i++) { + for (i = 0; i < 28; i++) { if (m[i] == NULL) break; if (strcmp(m[i], "Traceable") == 0) flag |= EXPP_MAT_MODE_TRACEABLE; @@ -1066,6 +1239,20 @@ static PyObject *Material_setMode(BPy_Material *self, PyObject *args) flag |= EXPP_MAT_MODE_HALOFLARE; else if (strcmp(m[i], "Radio") == 0) flag |= EXPP_MAT_MODE_RADIO; + /* ** Mirror ** */ + else if (strcmp(m[i], "RayMirr") == 0) + flag |= EXPP_MAT_MODE_RAYMIRROR; + else if (strcmp(m[i], "ZTransp") == 0) + flag |= EXPP_MAT_MODE_ZTRA; + else if (strcmp(m[i], "RayTransp") == 0) + flag |= EXPP_MAT_MODE_RAYTRANSP; + else if (strcmp(m[i], "OnlyShadow") == 0) + flag |= EXPP_MAT_MODE_ONLYSHADOW; + else if (strcmp(m[i], "NoMist") == 0) + flag |= EXPP_MAT_MODE_NOMIST; + else if (strcmp(m[i], "Env") == 0) + flag |= EXPP_MAT_MODE_ENV; + /* ** */ else return (EXPP_ReturnPyObjError (PyExc_AttributeError, "unknown Material mode argument")); @@ -1408,6 +1595,119 @@ static PyObject *Material_setNRings(BPy_Material *self, PyObject *args) return EXPP_incr_ret (Py_None); } +static PyObject *Material_setRayMirr(BPy_Material *self, PyObject *args) +{ + float value; + + if (!PyArg_ParseTuple(args, "f", &value)) + return (EXPP_ReturnPyObjError (PyExc_TypeError, + "expected float argument in [0.0, 1.0]")); + + self->material->ray_mirror = EXPP_ClampFloat (value, EXPP_MAT_RAYMIRR_MIN, + EXPP_MAT_RAYMIRR_MAX); + + return EXPP_incr_ret (Py_None); +} + +static PyObject *Material_setMirrDepth(BPy_Material *self, PyObject *args) +{ + int value; + + if (!PyArg_ParseTuple(args, "i", &value)) + return (EXPP_ReturnPyObjError (PyExc_TypeError, + "expected float argument in [0, 10]")); + + self->material->ray_depth = EXPP_ClampInt (value, EXPP_MAT_MIRRDEPTH_MIN, + EXPP_MAT_MIRRDEPTH_MAX); + + return EXPP_incr_ret (Py_None); +} + +static PyObject *Material_setFresnelMirr(BPy_Material *self, PyObject *args) +{ + float value; + + if (!PyArg_ParseTuple(args, "f", &value)) + return (EXPP_ReturnPyObjError (PyExc_TypeError, + "expected float argument in [0.0, 5.0]")); + + self->material->fresnel_mir = EXPP_ClampFloat (value, EXPP_MAT_FRESNELMIRR_MIN, + EXPP_MAT_FRESNELMIRR_MAX); + + return EXPP_incr_ret (Py_None); +} + +static PyObject *Material_setFresnelMirrFac(BPy_Material *self, PyObject *args) +{ + float value; + + if (!PyArg_ParseTuple(args, "f", &value)) + return (EXPP_ReturnPyObjError (PyExc_TypeError, + "expected float argument in [0.0, 5.0]")); + + self->material->fresnel_mir_i = EXPP_ClampFloat (value, EXPP_MAT_FRESNELMIRRFAC_MIN, + EXPP_MAT_FRESNELMIRRFAC_MAX); + + return EXPP_incr_ret (Py_None); +} + +static PyObject *Material_setIOR(BPy_Material *self, PyObject *args) +{ + float value; + + if (!PyArg_ParseTuple(args, "f", &value)) + return (EXPP_ReturnPyObjError (PyExc_TypeError, + "expected float argument in [0.0, 5.0]")); + + self->material->ang = EXPP_ClampFloat (value, EXPP_MAT_IOR_MIN, + EXPP_MAT_IOR_MAX); + + return EXPP_incr_ret (Py_None); +} + +static PyObject *Material_setTransDepth(BPy_Material *self, PyObject *args) +{ + int value; + + if (!PyArg_ParseTuple(args, "i", &value)) + return (EXPP_ReturnPyObjError (PyExc_TypeError, + "expected float argument in [0, 10]")); + + self->material->ray_depth_tra = EXPP_ClampInt (value, EXPP_MAT_TRANSDEPTH_MIN, + EXPP_MAT_TRANSDEPTH_MAX); + + return EXPP_incr_ret (Py_None); +} + +static PyObject *Material_setFresnelTrans(BPy_Material *self, PyObject *args) +{ + float value; + + if (!PyArg_ParseTuple(args, "f", &value)) + return (EXPP_ReturnPyObjError (PyExc_TypeError, + "expected float argument in [0.0, 5.0]")); + + self->material->fresnel_tra = EXPP_ClampFloat (value, EXPP_MAT_FRESNELTRANS_MIN, + EXPP_MAT_FRESNELTRANS_MAX); + + return EXPP_incr_ret (Py_None); +} + +static PyObject *Material_setFresnelTransFac(BPy_Material *self, PyObject *args) +{ + float value; + + if (!PyArg_ParseTuple(args, "f", &value)) + return (EXPP_ReturnPyObjError (PyExc_TypeError, + "expected float argument in [0.0, 5.0]")); + + self->material->fresnel_tra_i = EXPP_ClampFloat (value, EXPP_MAT_FRESNELTRANSFAC_MIN, + EXPP_MAT_FRESNELTRANSFAC_MAX); + + return EXPP_incr_ret (Py_None); + +} + static PyObject *Material_setTexture(BPy_Material *self, PyObject *args) { int texnum; @@ -1578,6 +1878,22 @@ static PyObject *Material_getAttr (BPy_Material *self, char *name) attr = PyInt_FromLong((long)self->material->linec); else if (strcmp(name, "nRings") == 0) attr = PyInt_FromLong((long)self->material->ringc); + else if (strcmp (name, "rayMirr") == 0) + attr = PyFloat_FromDouble((double)self->material->ray_mirror); + else if (strcmp (name, "rayMirrDepth") == 0) + attr = PyInt_FromLong((long)self->material->ray_depth); + else if (strcmp (name, "fresnelDepth") == 0) + attr = PyFloat_FromDouble((double)self->material->fresnel_mir); + else if (strcmp (name, "fresnelDepthFac") == 0) + attr = PyFloat_FromDouble((double)self->material->fresnel_mir_i); + else if (strcmp (name, "IOR") == 0) + attr = PyFloat_FromDouble((double)self->material->ang); + else if (strcmp (name, "transDepth") == 0) + attr = PyInt_FromLong((double)self->material->ray_depth_tra); + else if (strcmp (name, "fresnelTrans") == 0) + attr = PyFloat_FromDouble((double)self->material->fresnel_tra); + else if (strcmp (name, "fresnelTransFac") == 0) + attr = PyFloat_FromDouble((double)self->material->fresnel_tra_i); else if (strcmp(name, "__members__") == 0) { attr = /* 27 items */ @@ -1586,7 +1902,9 @@ static PyObject *Material_getAttr (BPy_Material *self, char *name) "R", "G", "B", "alpha", "amb", "emit", "ref", "spec", "specTransp", "add", "zOffset", "haloSize", "haloSeed", "flareSize", "flareBoost", "flareSeed", "subSize", "hard", - "nFlares", "nStars", "nLines", "nRings"); + "nFlares", "nStars", "nLines", "nRings", "rayMirr", "rayMirrDepth", + "fresnelDepth", "fresnelDepthFac", "IOR", "transDepth", "fresnelTrans", + "fresnelTransFac"); } if (!attr) @@ -1686,6 +2004,22 @@ static int Material_setAttr (BPy_Material *self, char *name, PyObject *value) error = Material_setNLines (self, valtuple); else if (strcmp (name, "nRings") == 0) error = Material_setNRings (self, valtuple); + else if (strcmp (name, "rayMirr") == 0) + error = Material_setRayMirr(self, valtuple); + else if (strcmp (name, "rayMirrDepth") == 0) + error = Material_setMirrDepth(self, valtuple); + else if (strcmp (name, "fresnelDepth") == 0) + error = Material_setFresnelMirr(self, valtuple); + else if (strcmp (name, "fresnelDepthFac") == 0) + error = Material_setFresnelMirrFac(self, valtuple); + else if (strcmp (name, "IOR") == 0) + error = Material_setIOR(self, valtuple); + else if (strcmp (name, "transDepth") == 0) + error = Material_setTransDepth(self, valtuple); + else if (strcmp (name, "fresnelTrans") == 0) + error = Material_setFresnelTrans(self, valtuple); + else if (strcmp (name, "fresnelTransFac") == 0) + error = Material_setFresnelTransFac(self, valtuple); else { /* Error */ Py_DECREF(valtuple); @@ -1707,7 +2041,7 @@ static int Material_setAttr (BPy_Material *self, char *name, PyObject *value) /*****************************************************************************/ /* Function: Material_repr */ /* Description: This is a callback function for the BPy_Material type. It */ -/* builds a meaninful string to represent material objects. */ +/* builds a meaninful string to represent material objects. */ /*****************************************************************************/ static PyObject *Material_repr (BPy_Material *self) { diff --git a/source/blender/python/api2_2x/doc/Material.py b/source/blender/python/api2_2x/doc/Material.py index 5556eb25cd75619953ef03166b403a5e30ff5ce5..608ea995766f3ed02749a4d6090d34a97adcf40c 100644 --- a/source/blender/python/api2_2x/doc/Material.py +++ b/source/blender/python/api2_2x/doc/Material.py @@ -47,7 +47,8 @@ Example:: - HALOTEX - Give halo a texture. - HALOPUNO - Use the vertex normal to specify the dimension of the halo. - HALOFLARE - Render halo as a lens flare. - + - RAYMIRROR - Enables raytracing for mirror reflection rendering. + - RAYTRANSP - Enables raytracing for transparency rendering. @warn: Some Modes are only available when the 'Halo' mode is I{off} and others only when it is I{on}. But these two subsets of modes share the same numerical values in their Blender C #defines. So, for example, if 'Halo' is @@ -114,6 +115,15 @@ class Material: @cvar nRings: Number of halo rings - [0, 24]. @type ipo: Blender Ipo @cvar ipo: This Material's ipo. + @cvar rayMirr: Amount mirror reflection for raytrace. + @cvar rayMirrDepth: Amount of inter-reflections calculated maximal. + @cvar fresnelDepth: Power of Fresnel for mirror reflection. + @cvar fresnelDepthFac: Blending factor for Fresnel. + @cvar IOR: Sets the angular index of refraction for raytrace. + @cvar transDepth: Amount of refractions calculated maximal. + @cvar fresnelTrans: Power of Fresnel for transparency. + @cvar fresnelTransFac: Blending factor for Fresnel. + @cvar specTrans: Makes specular areas opaque on transparent materials. @warning: Most member variables assume values in some [Min, Max] interval. When trying to set them, the given parameter will be clamped to lie in that range: if val < Min, then val = Min, if val > Max, then val = Max. @@ -474,6 +484,110 @@ class Material: @param nrings: The new value in [0, 24]. """ + def getRayMirr(): + """ + Get amount mirror reflection for raytrace. + @rtype: float + """ + + def setRayMirr(nrmirr): + """ + Set amount mirror reflection for raytrace. + @type nrmirr: float + @param nrmirr: The new value in [0.0, 1.0]. + """ + + def getRayMirrDepth(): + """ + Get amount of inter-reflections calculated maximal. + @rtype: int + """ + + def setRayMirrDepth(nrmirr): + """ + Set amount mirror reflection for raytrace. + @type nrmirr: int + @param nrmirr: The new value in [0.0, 1.0]. + """ + + def getFresnelMirr(): + """ + Get power of Fresnel for mirror reflection. + @rtype: float + """ + + def setFresnelMirr(nrmirr): + """ + Set power of Fresnel for mirror reflection. + @type nrmirr: float + @param nrmirr: The new value in [0.0, 1.0]. + """ + + def getFresnelMirrFac(): + """ + Get the number of Ray Mirror. + @rtype: float + """ + + def setFresnelMirrFac(nrmirr): + """ + Set the number of ray mirror + @type nrmirr: float + @param nrmirr: The new value in [0.0, 1.0]. + """ + + def getIOR(): + """ + Get the angular index of refraction for raytrace. + @rtype: float + """ + + def setIOR(nrmirr): + """ + Set the angular index of refraction for raytrace. + @type nrmirr: float + @param nrmirr: The new value in [0.0, 1.0]. + """ + + def getTransDepth(): + """ + Get amount of refractions calculated maximal. + @rtype: int + """ + + def setTransDepth(nrmirr): + """ + Set amount of refractions calculated maximal. + @type nrmirr: int + @param nrmirr: The new value in [0.0, 1.0]. + """ + + def getFresnelTrans(): + """ + Get power of Fresnel for transparency. + @rtype: float + """ + + def setFresnelTrans(nrmirr): + """ + Set power of Fresnel for transparency. + @type nrmirr: float + @param nrmirr: The new value in [0.0, 1.0]. + """ + + def getFresnelTransFac(): + """ + Get blending factor for Fresnel. + @rtype: float + """ + + def setFresnelTransFac(nrmirr): + """ + Set blending factor for Fresnel. + @type nrmirr: float + @param nrmirr: The new value in [0.0, 1.0]. + """ + def setTexture(index, texture, texco, mapto): """ Assign a Blender Texture object to slot number 'number'.