[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29993] trunk/blender/source/blender/ editors/object/object_add.c: Fix #21917: add object operator has 30 layers, now the layer property
Brecht Van Lommel
brecht at blender.org
Mon Jul 5 18:20:52 CEST 2010
Revision: 29993
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29993
Author: blendix
Date: 2010-07-05 18:20:52 +0200 (Mon, 05 Jul 2010)
Log Message:
-----------
Fix #21917: add object operator has 30 layers, now the layer property
has just 20 and the local view layers are added afterwards.
Modified Paths:
--------------
trunk/blender/source/blender/editors/object/object_add.c
Modified: trunk/blender/source/blender/editors/object/object_add.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_add.c 2010-07-05 15:52:25 UTC (rev 29992)
+++ trunk/blender/source/blender/editors/object/object_add.c 2010-07-05 16:20:52 UTC (rev 29993)
@@ -183,7 +183,7 @@
RNA_def_float_vector(ot->srna, "location", 3, NULL, -FLT_MAX, FLT_MAX, "Location", "Location for the newly added object.", -FLT_MAX, FLT_MAX);
RNA_def_float_rotation(ot->srna, "rotation", 3, NULL, -FLT_MAX, FLT_MAX, "Rotation", "Rotation for the newly added object", -FLT_MAX, FLT_MAX);
- prop = RNA_def_boolean_layer_member(ot->srna, "layer", 32, NULL, "Layer", "");
+ prop = RNA_def_boolean_layer_member(ot->srna, "layer", 20, NULL, "Layer", "");
RNA_def_property_flag(prop, PROP_HIDDEN);
}
@@ -193,32 +193,28 @@
if (!RNA_property_is_set(op->ptr, "enter_editmode"))
RNA_boolean_set(op->ptr, "enter_editmode", U.flag & USER_ADD_EDITMODE);
- if (!RNA_property_is_set(op->ptr, "location")) {
+ if(!RNA_property_is_set(op->ptr, "location")) {
float loc[3];
ED_object_location_from_view(C, loc);
RNA_float_set_array(op->ptr, "location", loc);
}
- if (!RNA_property_is_set(op->ptr, "layer")) {
+ if(!RNA_property_is_set(op->ptr, "layer")) {
View3D *v3d = CTX_wm_view3d(C);
Scene *scene = CTX_data_scene(C);
- int a, values[32], layer;
+ int a, values[20], layer;
- if (v3d) {
- if (v3d->localvd) {
- layer = v3d->layact + v3d->lay;
- for(a=0; a<32; a++)
- values[a]= (layer & (1<<a));
- } else {
- layer = (v3d->scenelock)?scene->layact:v3d->layact;
+ if(v3d) {
+ layer = (v3d->scenelock && !v3d->localvd)? scene->layact: v3d->layact;
- for(a=0; a<32; a++)
- values[a]= (layer & (1<<a));
- }
- } else {
+ for(a=0; a<20; a++)
+ values[a]= (layer & (1<<a));
+ }
+ else {
layer = scene->layact;
- for(a=0; a<32; a++)
+
+ for(a=0; a<20; a++)
values[a]= (layer & (1<<a));
}
@@ -234,7 +230,8 @@
int ED_object_add_generic_get_opts(bContext *C, wmOperator *op, float *loc, float *rot, int *enter_editmode, unsigned int *layer)
{
- int a, layer_values[32];
+ View3D *v3d = CTX_wm_view3d(C);
+ int a, layer_values[20];
int view_align;
*enter_editmode = FALSE;
@@ -245,7 +242,7 @@
if(RNA_property_is_set(op->ptr, "layer")) {
RNA_boolean_get_array(op->ptr, "layer", layer_values);
- for(a=0; a<32; a++) {
+ for(a=0; a<20; a++) {
if(layer_values[a])
*layer |= (1 << a);
else
@@ -258,6 +255,11 @@
*layer = scene->layact;
}
+ /* in local view we additionally add local view layers,
+ not part of operator properties */
+ if(v3d && v3d->localvd)
+ *layer |= v3d->lay;
+
if (RNA_property_is_set(op->ptr, "view_align"))
view_align = RNA_boolean_get(op->ptr, "view_align");
else
More information about the Bf-blender-cvs
mailing list