[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22482] branches/blender2.5/blender/source /blender: 2.5/Vertex paint:
Nicholas Bishop
nicholasbishop at gmail.com
Sat Aug 15 22:36:15 CEST 2009
Revision: 22482
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22482
Author: nicholasbishop
Date: 2009-08-15 22:36:15 +0200 (Sat, 15 Aug 2009)
Log Message:
-----------
2.5/Vertex paint:
* Made vertex paint local to object, like sculpt mode.
* New test for vertex paint is (ob->mode & OB_MODE_VERTEX_PAINT)
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c
branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c
branches/blender2.5/blender/source/blender/blenkernel/intern/context.c
branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c
branches/blender2.5/blender/source/blender/editors/mesh/mesh_layers.c
branches/blender2.5/blender/source/blender/editors/object/object_edit.c
branches/blender2.5/blender/source/blender/editors/screen/screen_context.c
branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_vertex.c
branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c
branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_buttons.c
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_draw.c
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_select.c
branches/blender2.5/blender/source/blender/editors/transform/transform_manipulator.c
branches/blender2.5/blender/source/blender/editors/transform/transform_orientations.c
branches/blender2.5/blender/source/blender/makesdna/DNA_object_types.h
Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h 2009-08-15 20:21:49 UTC (rev 22481)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h 2009-08-15 20:36:15 UTC (rev 22482)
@@ -112,8 +112,6 @@
#define G_FACESELECT (1 << 8)
-#define G_VERTEXPAINT (1 << 10)
-
#define G_DEBUG (1 << 12)
#define G_DOSCRIPTLINKS (1 << 13)
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c 2009-08-15 20:21:49 UTC (rev 22481)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c 2009-08-15 20:36:15 UTC (rev 22482)
@@ -226,7 +226,7 @@
G.main= NULL;
- G.f &= ~(G_WEIGHTPAINT + G_VERTEXPAINT + G_FACESELECT + G_PARTICLEEDIT);
+ G.f &= ~(G_WEIGHTPAINT + G_FACESELECT + G_PARTICLEEDIT);
}
/* make sure path names are correct for OS */
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c 2009-08-15 20:21:49 UTC (rev 22481)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c 2009-08-15 20:36:15 UTC (rev 22482)
@@ -188,10 +188,14 @@
Brush **current_brush_source(Scene *sce)
{
- if(sce->basact && sce->basact->object->mode & OB_MODE_SCULPT)
- return &sce->toolsettings->sculpt->brush;
- else if(G.f & G_VERTEXPAINT)
- return &sce->toolsettings->vpaint->brush;
+ Object *ob = sce->basact ? sce->basact->object : NULL;
+
+ if(ob) {
+ if(ob->mode & OB_MODE_SCULPT)
+ return &sce->toolsettings->sculpt->brush;
+ else if(ob->mode & OB_MODE_VERTEX_PAINT)
+ return &sce->toolsettings->vpaint->brush;
+ }
else if(G.f & G_WEIGHTPAINT)
return &sce->toolsettings->wpaint->brush;
else if(G.f & G_TEXTUREPAINT)
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/context.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/context.c 2009-08-15 20:21:49 UTC (rev 22481)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/context.c 2009-08-15 20:36:15 UTC (rev 22482)
@@ -689,7 +689,7 @@
if(ob && (ob->flag & OB_POSEMODE)) return "posemode";
else if (ob && ob->mode & OB_MODE_SCULPT) return "sculpt_mode";
else if (G.f & G_WEIGHTPAINT) return "weightpaint";
- else if (G.f & G_VERTEXPAINT) return "vertexpaint";
+ else if (ob && ob->mode & OB_MODE_VERTEX_PAINT) return "vertexpaint";
else if (G.f & G_TEXTUREPAINT) return "texturepaint";
else if(G.f & G_PARTICLEEDIT) return "particlemode";
}
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c 2009-08-15 20:21:49 UTC (rev 22481)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c 2009-08-15 20:36:15 UTC (rev 22482)
@@ -32,6 +32,6 @@
int paint_facesel_test(Object *ob)
{
- return (G.f&G_FACESELECT) && (G.f & (G_VERTEXPAINT|G_WEIGHTPAINT|G_TEXTUREPAINT));
+ return (G.f&G_FACESELECT) && ((G.f & (G_WEIGHTPAINT|G_TEXTUREPAINT)) || (ob && (ob->mode & OB_MODE_VERTEX_PAINT)));
}
Modified: branches/blender2.5/blender/source/blender/editors/mesh/mesh_layers.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/mesh_layers.c 2009-08-15 20:21:49 UTC (rev 22481)
+++ branches/blender2.5/blender/source/blender/editors/mesh/mesh_layers.c 2009-08-15 20:36:15 UTC (rev 22482)
@@ -54,12 +54,14 @@
#include "WM_types.h"
#include "ED_mesh.h"
+#include "ED_object.h"
#include "ED_view3d.h"
#include "mesh_intern.h"
-static void delete_customdata_layer(Mesh *me, CustomDataLayer *layer)
+static void delete_customdata_layer(bContext *C, Object *ob, CustomDataLayer *layer)
{
+ Mesh *me = ob->data;
CustomData *data= (me->edit_mesh)? &me->edit_mesh->fdata: &me->fdata;
void *actlayerdata, *rndlayerdata, *clonelayerdata, *masklayerdata, *layerdata=layer->data;
int type= layer->type;
@@ -87,9 +89,8 @@
mesh_update_customdata_pointers(me);
}
- if(!CustomData_has_layer(data, type))
- if(type == CD_MCOL && (G.f & G_VERTEXPAINT))
- G.f &= ~G_VERTEXPAINT; /* get out of vertexpaint mode */
+ if(!CustomData_has_layer(data, type) && (type == CD_MCOL && (ob->mode & OB_MODE_VERTEX_PAINT)))
+ ED_object_toggle_modes(C, OB_MODE_VERTEX_PAINT);
/* reconstruct active layer */
if (actlayerdata != layerdata) {
@@ -225,7 +226,7 @@
if(!cdl)
return OPERATOR_CANCELLED;
- delete_customdata_layer(me, cdl);
+ delete_customdata_layer(C, ob, cdl);
DAG_object_flush_update(scene, ob, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_DATA, ob);
@@ -328,7 +329,7 @@
if(!cdl)
return OPERATOR_CANCELLED;
- delete_customdata_layer(me, cdl);
+ delete_customdata_layer(C, ob, cdl);
DAG_object_flush_update(scene, ob, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_DATA, ob);
Modified: branches/blender2.5/blender/source/blender/editors/object/object_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/object/object_edit.c 2009-08-15 20:21:49 UTC (rev 22481)
+++ branches/blender2.5/blender/source/blender/editors/object/object_edit.c 2009-08-15 20:36:15 UTC (rev 22482)
@@ -4165,7 +4165,7 @@
}
DAG_object_flush_update(scene, ob, OB_RECALC_DATA);
}
- else if(G.f & G_VERTEXPAINT) {
+ else if(ob->mode & OB_MODE_VERTEX_PAINT) {
Mesh *me= get_mesh(ob);
if(me==0 || (me->mcol==NULL && me->mtface==NULL) ) return;
@@ -7042,4 +7042,6 @@
{
if(mode & OB_MODE_SCULPT)
WM_operator_name_call(C, "SCULPT_OT_sculptmode_toggle", WM_OP_EXEC_REGION_WIN, NULL);
+ if(mode & OB_MODE_VERTEX_PAINT)
+ WM_operator_name_call(C, "SCULPT_OT_vertex_paint_toggle", WM_OP_EXEC_REGION_WIN, NULL);
}
Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_context.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_context.c 2009-08-15 20:21:49 UTC (rev 22481)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_context.c 2009-08-15 20:36:15 UTC (rev 22482)
@@ -44,7 +44,11 @@
bScreen *sc= CTX_wm_screen(C);
Scene *scene= sc->scene;
Base *base;
+ Object *ob = NULL;
+ if(scene && scene->basact)
+ ob = scene->basact->object;
+
if(CTX_data_dir(member)) {
static const char *dir[] = {
"scene", "selected_objects", "selected_bases",
@@ -112,14 +116,14 @@
return 1;
}
else if(CTX_data_equals(member, "sculpt_object")) {
- if(scene->basact && (scene->basact->object->mode & OB_MODE_SCULPT))
- CTX_data_id_pointer_set(result, &scene->basact->object->id);
+ if(ob && (ob->mode & OB_MODE_SCULPT))
+ CTX_data_id_pointer_set(result, &ob->id);
return 1;
}
else if(CTX_data_equals(member, "vertex_paint_object")) {
- if(G.f & G_VERTEXPAINT && scene->basact)
- CTX_data_id_pointer_set(result, &scene->basact->object->id);
+ if(ob && (ob->mode & OB_MODE_VERTEX_PAINT))
+ CTX_data_id_pointer_set(result, &ob->id);
return 1;
}
Modified: branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_vertex.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_vertex.c 2009-08-15 20:21:49 UTC (rev 22481)
+++ branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_vertex.c 2009-08-15 20:36:15 UTC (rev 22482)
@@ -108,7 +108,9 @@
static int vp_poll(bContext *C)
{
- if(G.f & G_VERTEXPAINT) {
+ Object *ob = CTX_data_active_object(C);
+
+ if(ob && ob->mode & OB_MODE_VERTEX_PAINT) {
ScrArea *sa= CTX_wm_area(C);
if(sa->spacetype==SPACE_VIEW3D) {
ARegion *ar= CTX_wm_region(C);
@@ -369,12 +371,12 @@
unsigned int *to, paintcol;
int a;
- if((G.f & G_VERTEXPAINT)==0) return;
-
ob= OBACT;
me= get_mesh(ob);
if(!ob || ob->id.lib) return;
+ if(!(ob->mode & OB_MODE_VERTEX_PAINT)) return;
+
if(me==0 || me->mcol==0 || me->totface==0) return;
paintcol= vpaint_get_current_col(scene->toolsettings->vpaint);
@@ -540,10 +542,10 @@
int a, temp;
unsigned char *cp, gamtab[256];
- if((G.f & G_VERTEXPAINT)==0) return;
-
ob= OBACT;
me= get_mesh(ob);
+
+ if(!(ob->mode & OB_MODE_VERTEX_PAINT)) return;
if(me==0 || me->mcol==0 || me->totface==0) return;
igam= 1.0/vp->gamma;
@@ -1584,22 +1586,22 @@
me= get_mesh(ob);
if(me==NULL || object_data_is_libdata(ob)) {
- G.f &= ~G_VERTEXPAINT;
+ ob->mode &= ~OB_MODE_VERTEX_PAINT;
return OPERATOR_PASS_THROUGH;
}
if(me && me->totface>=MAXINDEX) {
error("Maximum number of faces: %d", MAXINDEX-1);
- G.f &= ~G_VERTEXPAINT;
+ ob->mode &= ~OB_MODE_VERTEX_PAINT;
return OPERATOR_FINISHED;
}
if(me && me->mcol==NULL) make_vertexcol(scene, 0);
/* toggle: end vpaint */
- if(G.f & G_VERTEXPAINT) {
+ if(ob->mode & OB_MODE_VERTEX_PAINT) {
- G.f &= ~G_VERTEXPAINT;
+ ob->mode &= ~OB_MODE_VERTEX_PAINT;
if(vp) {
toggle_paint_cursor(C, 0);
@@ -1608,7 +1610,7 @@
}
else {
- G.f |= G_VERTEXPAINT;
+ ob->mode |= OB_MODE_VERTEX_PAINT;
/* Turn off weight painting */
if (G.f & G_WEIGHTPAINT)
set_wpaint(C, op);
Modified: branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c 2009-08-15 20:21:49 UTC (rev 22481)
+++ branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c 2009-08-15 20:36:15 UTC (rev 22482)
@@ -323,7 +323,7 @@
if(obact && obact->mode & OB_MODE_SCULPT)
br= ts->sculpt->brush;
- else if(G.f & G_VERTEXPAINT)
+ else if(obact && obact->mode & OB_MODE_VERTEX_PAINT)
br= ts->vpaint->brush;
else if(G.f & G_WEIGHTPAINT)
br= ts->wpaint->brush;
Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list