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
path: root/source
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2007-05-02 04:49:41 +0400
committerCampbell Barton <ideasman42@gmail.com>2007-05-02 04:49:41 +0400
commitd7235265fec9560a9f90272cb1dbd3a3d398234e (patch)
tree11ac8eced4b7be27f43895572d7029c33d6a2087 /source
parentc24aa10561c3e301989df0d7f227f478f846143a (diff)
PyAPI, Mesh.c - added renderColorLayer and renderUVLayer to the mesh
buttons_editing.c - use icons for mesh viewport layer/render layer
Diffstat (limited to 'source')
-rw-r--r--source/blender/python/api2_2x/Mesh.c40
-rw-r--r--source/blender/python/api2_2x/doc/Mesh.py6
-rw-r--r--source/blender/src/buttons_editing.c6
3 files changed, 42 insertions, 10 deletions
diff --git a/source/blender/python/api2_2x/Mesh.c b/source/blender/python/api2_2x/Mesh.c
index 7cd2b8cc1cb..85feedf86ba 100644
--- a/source/blender/python/api2_2x/Mesh.c
+++ b/source/blender/python/api2_2x/Mesh.c
@@ -6530,7 +6530,14 @@ static PyObject *Mesh_getColorLayerNames( BPy_Mesh * self )
static PyObject *Mesh_getActiveLayer( BPy_Mesh * self, void *type )
{
CustomData *data = &self->mesh->fdata;
- int i = CustomData_get_active_layer_index(data, (int)type);
+ int layer_type = (int)type;
+ int i;
+ if (layer_type < 0) { /* hack, if negative, its the renderlayer.*/
+ layer_type = -layer_type;
+ i = CustomData_get_render_layer_index(data, layer_type);
+ } else {
+ i = CustomData_get_active_layer_index(data, layer_type);
+ }
if (i == -1) /* so -1 is for no active layer 0+ for an active layer */
Py_RETURN_NONE;
else {
@@ -6542,17 +6549,22 @@ static int Mesh_setActiveLayer( BPy_Mesh * self, PyObject * value, void *type )
{
CustomData *data = &self->mesh->fdata;
char *name;
- int i,ok,n;
+ int i,ok,n,layer_type = (int)type, render=0;
if( !PyString_Check( value ) )
return EXPP_ReturnIntError( PyExc_ValueError,
"expected a string argument" );
-
+
+ if (layer_type<0) {
+ layer_type = -layer_type;
+ render = 1;
+ }
+
name = PyString_AsString( value );
ok = 0;
n = 0;
for(i=0; i < data->totlayer; ++i) {
- if(data->layers[i].type == (int) type) {
+ if(data->layers[i].type == layer_type) {
if (strcmp(data->layers[i].name, name)==0) {
ok = 1;
break;
@@ -6564,9 +6576,12 @@ static int Mesh_setActiveLayer( BPy_Mesh * self, PyObject * value, void *type )
if (!ok)
return EXPP_ReturnIntError( PyExc_ValueError,
"layer name does not exist" );
-
- CustomData_set_layer_active(data, (int)type, n);
- mesh_update_customdata_pointers(self->mesh);
+ if (render) {
+ CustomData_set_layer_render(data, layer_type, n);
+ } else {
+ CustomData_set_layer_active(data, layer_type, n);
+ mesh_update_customdata_pointers(self->mesh);
+ }
return 0;
}
@@ -7696,6 +7711,17 @@ static PyGetSetDef BPy_Mesh_getseters[] = {
(getter)Mesh_getActiveLayer, (setter)Mesh_setActiveLayer,
"Name of the active vertex color layer",
(void *)CD_MTFACE},
+ /* hack flip CD_MCOL so it uses the render setting */
+ {"renderColorLayer",
+ (getter)Mesh_getActiveLayer, (setter)Mesh_setActiveLayer,
+ "Name of the render UV layer",
+ (void *)-CD_MCOL},
+ {"renderUVLayer",
+ (getter)Mesh_getActiveLayer, (setter)Mesh_setActiveLayer,
+ "Name of the render vertex color layer",
+ (void *)-CD_MTFACE},
+
+
/* Multires */
{"multiresLevelCount",
diff --git a/source/blender/python/api2_2x/doc/Mesh.py b/source/blender/python/api2_2x/doc/Mesh.py
index 69a8feba7e6..ae4c4370e3f 100644
--- a/source/blender/python/api2_2x/doc/Mesh.py
+++ b/source/blender/python/api2_2x/doc/Mesh.py
@@ -778,6 +778,12 @@ class Mesh:
B{Note}: After setting this value, call L{update} so the result can be seen the the 3d view.
@type activeColorLayer: string
+
+ @ivar renderUVLayer: The mesh's rendered UV/Image layer. None if there is no UV/Image layers.
+ @type renderUVLayer: string
+ @ivar renderColorLayer: The mesh's rendered Vertex Color layer. None if there is no UV/Image layers.
+ @type renderColorLayer: string
+
@ivar multires: The mesh has multires data, set True to add multires data.
Will throw an exception if the mesh has shape keys; use L{key} to test.
@type multires: bool
diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c
index b68d81b510d..80dd4a034c7 100644
--- a/source/blender/src/buttons_editing.c
+++ b/source/blender/src/buttons_editing.c
@@ -799,9 +799,9 @@ static int customdata_buttons(
if(layer->type == type) {
*activep= layer->active + 1;
*renderp= layer->active_rnd + 1;
-
- uiDefButI(block, ROW, setevt, "A", x,y,25,19, activep, 1.0, count, 0, 0, browsetip);
- uiDefButI(block, ROW, setevt_rnd, "R", x+25,y,25,19, renderp, 1.0, count, 0, 0, browsetip_rnd);
+
+ uiDefIconButI(block, ROW, setevt, ICON_VIEW3D, x,y,25,19, activep, 1.0, count, 0, 0, browsetip);
+ uiDefIconButI(block, ROW, setevt_rnd, ICON_SCENE, x+25,y,25,19, renderp, 1.0, count, 0, 0, browsetip_rnd);
but=uiDefBut(block, TEX, setevt, "", x+50,y,145,19, layer->name, 0.0, 31.0, 0, 0, label);
uiButSetFunc(but, verify_customdata_name_func, data, layer);
but= uiDefIconBut(block, BUT, B_NOP, VICON_X, x+195,y,25,19, NULL, 0.0, 0.0, 0.0, 0.0, deltip);