[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21351] branches/blender2.5/blender: 2.5
Brecht Van Lommel
brecht at blender.org
Fri Jul 3 17:23:33 CEST 2009
Revision: 21351
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21351
Author: blendix
Date: 2009-07-03 17:23:33 +0200 (Fri, 03 Jul 2009)
Log Message:
-----------
2.5
* Lattices: properties editable, editmode operators, menus working
again. As a bonus you can now edit u/v/w in editmode.
* Shape Keys: some code cleanup, and added more buttons. The
value/min/max buttons don't work correct yet though.
* Fix issue with uv textures, vertex colors not being visible outside
editmode, and a few other issue. Mesh.edit_mesh is now NULL when
not in editmode.
Modified Paths:
--------------
branches/blender2.5/blender/release/ui/buttons_data_lattice.py
branches/blender2.5/blender/release/ui/buttons_data_mesh.py
branches/blender2.5/blender/source/blender/blenkernel/intern/lattice.c
branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
branches/blender2.5/blender/source/blender/editors/interface/interface_layout.c
branches/blender2.5/blender/source/blender/editors/object/editkey.c
branches/blender2.5/blender/source/blender/editors/object/editlattice.c
branches/blender2.5/blender/source/blender/editors/object/object_edit.c
branches/blender2.5/blender/source/blender/editors/object/object_intern.h
branches/blender2.5/blender/source/blender/editors/object/object_modifier.c
branches/blender2.5/blender/source/blender/editors/object/object_ops.c
branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
branches/blender2.5/blender/source/blender/editors/space_view3d/space_view3d.c
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_key.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_lattice.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_object.c
Modified: branches/blender2.5/blender/release/ui/buttons_data_lattice.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_data_lattice.py 2009-07-03 14:32:27 UTC (rev 21350)
+++ branches/blender2.5/blender/release/ui/buttons_data_lattice.py 2009-07-03 15:23:33 UTC (rev 21351)
@@ -48,7 +48,7 @@
row.itemR(lat, "interpolation_type_w", expand=True)
row = layout.row()
+ row.itemO("LATTICE_OT_make_regular")
row.itemR(lat, "outside")
- row.itemR(lat, "shape_keys")
bpy.types.register(DATA_PT_lattice)
Modified: branches/blender2.5/blender/release/ui/buttons_data_mesh.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_data_mesh.py 2009-07-03 14:32:27 UTC (rev 21350)
+++ branches/blender2.5/blender/release/ui/buttons_data_mesh.py 2009-07-03 15:23:33 UTC (rev 21351)
@@ -131,17 +131,45 @@
def draw(self, context):
layout = self.layout
ob = context.object
+ key = ob.data.shape_keys
+ kb = ob.active_shape_key
row = layout.row()
+ row.template_list(key, "keys", ob, "active_shape_key_index")
- key = ob.data.shape_keys
+ col = row.column()
- row.template_list(key, "keys", ob, "active_shape_key_index")
+ subcol = col.column(align=True)
+ subcol.itemO("OBJECT_OT_shape_key_add", icon="ICON_ZOOMIN", text="")
+ subcol.itemO("OBJECT_OT_shape_key_remove", icon="ICON_ZOOMOUT", text="")
- col = row.column(align=True)
- col.itemO("OBJECT_OT_shape_key_add", icon="ICON_ZOOMIN", text="")
- col.itemO("OBJECT_OT_shape_key_remove", icon="ICON_ZOOMOUT", text="")
+ if kb:
+ col.itemS()
+ subcol = col.column(align=True)
+ subcol.itemR(ob, "shape_key_lock", icon="ICON_PINNED", text="")
+ subcol.itemR(kb, "mute", icon="ICON_MUTE_IPO_ON", text="")
+
+ if key.relative:
+ row = layout.row()
+ row.itemR(key, "relative")
+ row.itemL()
+
+ if ob.active_shape_key_index != 0:
+ if not ob.shape_key_lock:
+ row = layout.row(align=True)
+ row.itemR(kb, "value", text="")
+ row.itemR(kb, "slider_min", text="Min")
+ row.itemR(kb, "slider_max", text="Max")
+
+ row = layout.row()
+ row.item_pointerR(kb, "vertex_group", ob, "vertex_groups", text="")
+ row.item_pointerR(kb, "relative_key", key, "keys", text="")
+ else:
+ row = layout.row()
+ row.itemR(key, "relative")
+ row.itemR(key, "slurph")
+
if context.edit_object:
layout.enabled = False
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/lattice.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/lattice.c 2009-07-03 14:32:27 UTC (rev 21350)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/lattice.c 2009-07-03 15:23:33 UTC (rev 21351)
@@ -232,8 +232,8 @@
if(lt->def) MEM_freeN(lt->def);
if(lt->dvert) free_dverts(lt->dvert, lt->pntsu*lt->pntsv*lt->pntsw);
if(lt->editlatt) {
- if(lt->def) MEM_freeN(lt->def);
- if(lt->dvert) free_dverts(lt->dvert, lt->pntsu*lt->pntsv*lt->pntsw);
+ if(lt->editlatt->def) MEM_freeN(lt->editlatt->def);
+ if(lt->editlatt->dvert) free_dverts(lt->editlatt->dvert, lt->pntsu*lt->pntsv*lt->pntsw);
MEM_freeN(lt->editlatt);
}
}
@@ -817,59 +817,68 @@
int u, v, w;
float fac1, du=0.0, dv=0.0, dw=0.0;
- bp= lt->def;
+ if(lt->flag & LT_OUTSIDE) {
+ bp= lt->def;
- if(lt->pntsu>1) du= 1.0f/((float)lt->pntsu-1);
- if(lt->pntsv>1) dv= 1.0f/((float)lt->pntsv-1);
- if(lt->pntsw>1) dw= 1.0f/((float)lt->pntsw-1);
-
- for(w=0; w<lt->pntsw; w++) {
-
- for(v=0; v<lt->pntsv; v++) {
-
- for(u=0; u<lt->pntsu; u++, bp++) {
- if(u==0 || v==0 || w==0 || u==lt->pntsu-1 || v==lt->pntsv-1 || w==lt->pntsw-1);
- else {
-
- bp->hide= 1;
- bp->f1 &= ~SELECT;
+ if(lt->pntsu>1) du= 1.0f/((float)lt->pntsu-1);
+ if(lt->pntsv>1) dv= 1.0f/((float)lt->pntsv-1);
+ if(lt->pntsw>1) dw= 1.0f/((float)lt->pntsw-1);
+
+ for(w=0; w<lt->pntsw; w++) {
+
+ for(v=0; v<lt->pntsv; v++) {
+
+ for(u=0; u<lt->pntsu; u++, bp++) {
+ if(u==0 || v==0 || w==0 || u==lt->pntsu-1 || v==lt->pntsv-1 || w==lt->pntsw-1);
+ else {
- /* u extrema */
- bp1= latt_bp(lt, 0, v, w);
- bp2= latt_bp(lt, lt->pntsu-1, v, w);
-
- fac1= du*u;
- bp->vec[0]= (1.0f-fac1)*bp1->vec[0] + fac1*bp2->vec[0];
- bp->vec[1]= (1.0f-fac1)*bp1->vec[1] + fac1*bp2->vec[1];
- bp->vec[2]= (1.0f-fac1)*bp1->vec[2] + fac1*bp2->vec[2];
-
- /* v extrema */
- bp1= latt_bp(lt, u, 0, w);
- bp2= latt_bp(lt, u, lt->pntsv-1, w);
-
- fac1= dv*v;
- bp->vec[0]+= (1.0f-fac1)*bp1->vec[0] + fac1*bp2->vec[0];
- bp->vec[1]+= (1.0f-fac1)*bp1->vec[1] + fac1*bp2->vec[1];
- bp->vec[2]+= (1.0f-fac1)*bp1->vec[2] + fac1*bp2->vec[2];
-
- /* w extrema */
- bp1= latt_bp(lt, u, v, 0);
- bp2= latt_bp(lt, u, v, lt->pntsw-1);
-
- fac1= dw*w;
- bp->vec[0]+= (1.0f-fac1)*bp1->vec[0] + fac1*bp2->vec[0];
- bp->vec[1]+= (1.0f-fac1)*bp1->vec[1] + fac1*bp2->vec[1];
- bp->vec[2]+= (1.0f-fac1)*bp1->vec[2] + fac1*bp2->vec[2];
-
- VecMulf(bp->vec, 0.3333333f);
-
+ bp->hide= 1;
+ bp->f1 &= ~SELECT;
+
+ /* u extrema */
+ bp1= latt_bp(lt, 0, v, w);
+ bp2= latt_bp(lt, lt->pntsu-1, v, w);
+
+ fac1= du*u;
+ bp->vec[0]= (1.0f-fac1)*bp1->vec[0] + fac1*bp2->vec[0];
+ bp->vec[1]= (1.0f-fac1)*bp1->vec[1] + fac1*bp2->vec[1];
+ bp->vec[2]= (1.0f-fac1)*bp1->vec[2] + fac1*bp2->vec[2];
+
+ /* v extrema */
+ bp1= latt_bp(lt, u, 0, w);
+ bp2= latt_bp(lt, u, lt->pntsv-1, w);
+
+ fac1= dv*v;
+ bp->vec[0]+= (1.0f-fac1)*bp1->vec[0] + fac1*bp2->vec[0];
+ bp->vec[1]+= (1.0f-fac1)*bp1->vec[1] + fac1*bp2->vec[1];
+ bp->vec[2]+= (1.0f-fac1)*bp1->vec[2] + fac1*bp2->vec[2];
+
+ /* w extrema */
+ bp1= latt_bp(lt, u, v, 0);
+ bp2= latt_bp(lt, u, v, lt->pntsw-1);
+
+ fac1= dw*w;
+ bp->vec[0]+= (1.0f-fac1)*bp1->vec[0] + fac1*bp2->vec[0];
+ bp->vec[1]+= (1.0f-fac1)*bp1->vec[1] + fac1*bp2->vec[1];
+ bp->vec[2]+= (1.0f-fac1)*bp1->vec[2] + fac1*bp2->vec[2];
+
+ VecMulf(bp->vec, 0.3333333f);
+
+ }
}
+
}
}
-
}
-
+ else {
+ bp= lt->def;
+
+ for(w=0; w<lt->pntsw; w++)
+ for(v=0; v<lt->pntsv; v++)
+ for(u=0; u<lt->pntsu; u++, bp++)
+ bp->hide= 0;
+ }
}
float (*lattice_getVertexCos(struct Object *ob, int *numVerts_r))[3]
Modified: branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_screen.h 2009-07-03 14:32:27 UTC (rev 21350)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_screen.h 2009-07-03 15:23:33 UTC (rev 21351)
@@ -127,6 +127,7 @@
int ED_operator_editsurf(struct bContext *C);
int ED_operator_editsurfcurve(struct bContext *C);
int ED_operator_editfont(struct bContext *C);
+int ED_operator_editlattice(struct bContext *C);
int ED_operator_uvedit(struct bContext *C);
int ED_operator_uvmap(struct bContext *C);
int ED_operator_posemode(struct bContext *C);
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_layout.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_layout.c 2009-07-03 14:32:27 UTC (rev 21350)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_layout.c 2009-07-03 15:23:33 UTC (rev 21351)
@@ -699,7 +699,7 @@
subtype= RNA_property_subtype(prop);
len= RNA_property_array_length(prop);
- if(type == PROP_STRING && strcmp(name, "") == 0)
+ if(ELEM(type, PROP_STRING, PROP_POINTER) && strcmp(name, "") == 0)
name= "non-empty";
w= ui_text_icon_width(layout, name, icon);
Modified: branches/blender2.5/blender/source/blender/editors/object/editkey.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/object/editkey.c 2009-07-03 14:32:27 UTC (rev 21350)
+++ branches/blender2.5/blender/source/blender/editors/object/editkey.c 2009-07-03 15:23:33 UTC (rev 21351)
@@ -78,10 +78,6 @@
#include "object_intern.h"
-/* XXX */
-static void BIF_undo_push() {}
-/* XXX */
-
#if 0 // XXX old animation system
static void default_key_ipo(Scene *scene, Key *key)
{
@@ -117,7 +113,7 @@
#endif // XXX old animation system
-/* **************************************** */
+/************************* Mesh ************************/
void mesh_to_key(Mesh *me, KeyBlock *kb)
{
@@ -213,7 +209,7 @@
mesh_to_key(me, kb);
}
-/* ******************** */
+/************************* Lattice ************************/
void latt_to_key(Lattice *lt, KeyBlock *kb)
{
@@ -271,7 +267,7 @@
latt_to_key(lt, kb);
}
-/* ******************************** */
+/************************* Curve ************************/
void curve_to_key(Curve *cu, KeyBlock *kb, ListBase *nurb)
{
@@ -383,7 +379,7 @@
if(cu->key==NULL) {
cu->key= add_key( (ID *)cu);
- if (rel)
+ if(rel)
cu->key->type = KEY_RELATIVE;
// else
// default_key_ipo(scene, cu->key); // XXX old animation system
@@ -396,17 +392,34 @@
else curve_to_key(cu, kb, &cu->nurb);
}
+/*********************** add shape key ***********************/
-/* ******************** */
+void ED_object_shape_key_add(bContext *C, Scene *scene, Object *ob)
+{
+ Key *key;
-void delete_key(Scene *scene, Object *ob)
+ if(ob->type==OB_MESH) insert_meshkey(scene, ob->data, 1);
+ else if ELEM(ob->type, OB_CURVE, OB_SURF) insert_curvekey(scene, ob->data, 1);
+ else if(ob->type==OB_LATTICE) insert_lattkey(scene, ob->data, 1);
+
+ key= ob_get_key(ob);
+ ob->shapenr= BLI_countlist(&key->block);
+
+ WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+}
+
+/*********************** remove shape key ***********************/
+
+int ED_object_shape_key_remove(bContext *C, Scene *scene, Object *ob)
{
+ Main *bmain= CTX_data_main(C);
KeyBlock *kb, *rkb;
Key *key;
//IpoCurve *icu;
-
+
key= ob_get_key(ob);
- if(key==NULL) return;
+ if(key==NULL)
+ return 0;
kb= BLI_findlink(&key->block, ob->shapenr-1);
@@ -417,15 +430,15 @@
BLI_remlink(&key->block, kb);
key->totkey--;
- if(key->refkey== kb) key->refkey= key->block.first;
+ if(key->refkey== kb)
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list