[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18440] branches/blender2.5/blender/source /blender: 2.5
Ton Roosendaal
ton at blender.org
Sat Jan 10 15:19:14 CET 2009
Revision: 18440
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18440
Author: ton
Date: 2009-01-10 15:19:14 +0100 (Sat, 10 Jan 2009)
Log Message:
-----------
2.5
- Weightpaint back (CTRL+TAB or menu)
Also weightpaint is sortof non-modal, allowing to use all existing
hotkeys while in paint mode. Only leftmouse is overridden.
- Made vpaint and wpaint entirely local, stored in scene (and saved!)
- Small bugfix (also in 2.48): on weightpaint mode, all armature objects
in 3d window were drawing as active poses. Now only the armature
deformer is.
Nice point for the UI agenda: are paint modes on ACTION mouse? Only then
you can combine it with SELECT mouse...
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/blenkernel/intern/DerivedMesh.c
branches/blender2.5/blender/source/blender/blenkernel/intern/scene.c
branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c
branches/blender2.5/blender/source/blender/editors/animation/anim_deps.c
branches/blender2.5/blender/source/blender/editors/armature/editarmature.c
branches/blender2.5/blender/source/blender/editors/armature/meshlaplacian.c
branches/blender2.5/blender/source/blender/editors/armature/poseobject.c
branches/blender2.5/blender/source/blender/editors/include/ED_anim_api.h
branches/blender2.5/blender/source/blender/editors/include/ED_armature.h
branches/blender2.5/blender/source/blender/editors/include/ED_mesh.h
branches/blender2.5/blender/source/blender/editors/include/ED_view3d.h
branches/blender2.5/blender/source/blender/editors/mesh/meshtools.c
branches/blender2.5/blender/source/blender/editors/object/object_edit.c
branches/blender2.5/blender/source/blender/editors/space_view3d/drawarmature.c
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_select.c
branches/blender2.5/blender/source/blender/editors/space_view3d/vpaint.c
branches/blender2.5/blender/source/blender/editors/util/ed_util.c
branches/blender2.5/blender/source/blender/makesdna/DNA_scene_types.h
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/DerivedMesh.c 2009-01-10 14:03:00 UTC (rev 18439)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/DerivedMesh.c 2009-01-10 14:19:14 UTC (rev 18440)
@@ -2054,15 +2054,16 @@
{
Mesh *me = ob->data;
float min[3], max[3];
- int needMapping= 0; //
+ //int needMapping= 0;
+ Object *obact = scene->basact?scene->basact->object:NULL;
+ int editing = (FACESEL_PAINT_TEST)|(G.f & G_PARTICLEEDIT);
+ int needMapping = editing && (ob==obact);
+
clear_mesh_caches(ob);
-// XXX Object *obact = scene->basact?scene->basact->object:NULL;
-// int editing = (FACESEL_PAINT_TEST)|(G.f & G_PARTICLEEDIT);
-// int needMapping = editing && (ob==obact);
-// if( (G.f & G_WEIGHTPAINT) && ob==obact ) {
- if(dataMask & CD_MASK_WEIGHTPAINT) {
+ if( (G.f & G_WEIGHTPAINT) && ob==obact ) {
+// if(dataMask & CD_MASK_WEIGHTPAINT) {
MCol *wpcol = (MCol*)calc_weightpaint_colors(ob);
int layernum = CustomData_number_of_layers(&me->fdata, CD_MCOL);
int prevactive = CustomData_get_active_layer(&me->fdata, CD_MCOL);
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/scene.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/scene.c 2009-01-10 14:03:00 UTC (rev 18439)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/scene.c 2009-01-10 14:19:14 UTC (rev 18440)
@@ -167,7 +167,12 @@
BLI_freelistN(&sce->transform_spaces);
BLI_freelistN(&sce->r.layers);
- if(sce->toolsettings){
+ if(sce->toolsettings) {
+ if(sce->toolsettings->vpaint)
+ MEM_freeN(sce->toolsettings->vpaint);
+ if(sce->toolsettings->wpaint)
+ MEM_freeN(sce->toolsettings->wpaint);
+
MEM_freeN(sce->toolsettings);
sce->toolsettings = NULL;
}
Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c 2009-01-10 14:03:00 UTC (rev 18439)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c 2009-01-10 14:19:14 UTC (rev 18440)
@@ -3604,7 +3604,10 @@
sce->radio= newdataadr(fd, sce->radio);
sce->toolsettings= newdataadr(fd, sce->toolsettings);
-
+ if(sce->toolsettings) {
+ sce->toolsettings->vpaint= newdataadr(fd, sce->toolsettings->vpaint);
+ sce->toolsettings->wpaint= newdataadr(fd, sce->toolsettings->wpaint);
+ }
sce->sculptdata.session= NULL;
/* SculptData textures */
for(a=0; a<MAX_MTEX; ++a)
Modified: branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c 2009-01-10 14:03:00 UTC (rev 18439)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c 2009-01-10 14:19:14 UTC (rev 18440)
@@ -1472,6 +1472,10 @@
writestruct(wd, DATA, "Radio", 1, sce->radio);
writestruct(wd, DATA, "ToolSettings", 1, sce->toolsettings);
+ if(sce->toolsettings->vpaint)
+ writestruct(wd, DATA, "VPaint", 1, sce->toolsettings->vpaint);
+ if(sce->toolsettings->wpaint)
+ writestruct(wd, DATA, "VPaint", 1, sce->toolsettings->wpaint);
for(a=0; a<MAX_MTEX; ++a)
writestruct(wd, DATA, "MTex", 1, sce->sculptdata.mtex[a]);
Modified: branches/blender2.5/blender/source/blender/editors/animation/anim_deps.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/animation/anim_deps.c 2009-01-10 14:03:00 UTC (rev 18439)
+++ branches/blender2.5/blender/source/blender/editors/animation/anim_deps.c 2009-01-10 14:19:14 UTC (rev 18440)
@@ -89,7 +89,16 @@
DAG_scene_flush_update(scene, screen_view3d_layers(screen), 0);
}
+/* flushes changes from object to all relations in scene */
+void ED_anim_object_flush_update(const bContext *C, Object *ob)
+{
+ Scene *scene= CTX_data_scene(C);
+ bScreen *screen= CTX_wm_screen(C);
+
+ DAG_object_update_flags(scene, ob, screen_view3d_layers(screen));
+}
+
/* results in fully updated anim system */
/* in future sound should be on WM level, only 1 sound can play! */
void ED_update_for_newframe(const bContext *C, int mute)
Modified: branches/blender2.5/blender/source/blender/editors/armature/editarmature.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/armature/editarmature.c 2009-01-10 14:03:00 UTC (rev 18439)
+++ branches/blender2.5/blender/source/blender/editors/armature/editarmature.c 2009-01-10 14:19:14 UTC (rev 18440)
@@ -99,10 +99,7 @@
static void BIF_undo_push() {}
static void adduplicate() {}
static void countall() {}
-static void vertexgroup_select_by_name() {}
static void deselect_actionchannels() {}
-static void add_vert_to_defgroup() {}
-static void create_dverts() {}
static void select_actionchannel_by_name() {}
/* ************* XXX *************** */
@@ -3563,7 +3560,7 @@
}
/* called from editview.c, for mode-less pose selection */
-/* assumes scene obact and basact... XXX */
+/* assumes scene obact and basact is still on old situation */
int ED_do_pose_selectbuffer(Scene *scene, Base *base, unsigned int *buffer, short hits, short extend)
{
Object *ob= base->object;
@@ -3605,8 +3602,8 @@
/* in weightpaint we select the associated vertex group too */
if (G.f & G_WEIGHTPAINT) {
if (nearBone->flag & BONE_ACTIVE) {
- vertexgroup_select_by_name(ob, nearBone->name);
- DAG_object_flush_update(scene, ob, OB_RECALC_DATA);
+ vertexgroup_select_by_name(OBACT, nearBone->name);
+ DAG_object_flush_update(scene, OBACT, OB_RECALC_DATA);
}
}
Modified: branches/blender2.5/blender/source/blender/editors/armature/meshlaplacian.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/armature/meshlaplacian.c 2009-01-10 14:03:00 UTC (rev 18439)
+++ branches/blender2.5/blender/source/blender/editors/armature/meshlaplacian.c 2009-01-10 14:19:14 UTC (rev 18440)
@@ -58,20 +58,17 @@
#include "BLO_sys_types.h" // for intptr_t support
+#include "ED_armature.h"
+#include "ED_mesh.h"
+
#include "meshlaplacian.h"
/* ************* XXX *************** */
-static void remove_vert_defgroup() {}
-static int mesh_get_x_mirror_vert() {return 0;}
static void waitcursor() {}
static void progress_bar() {}
static void start_progress_bar() {}
static void end_progress_bar() {}
-static float get_vert_defgroup() {return 0.0;}
-static void add_vert_to_defgroup() {}
-#define WEIGHT_REPLACE 0
-#define WEIGHT_ADD 0
static void error() {}
/* ************* XXX *************** */
Modified: branches/blender2.5/blender/source/blender/editors/armature/poseobject.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/armature/poseobject.c 2009-01-10 14:03:00 UTC (rev 18439)
+++ branches/blender2.5/blender/source/blender/editors/armature/poseobject.c 2009-01-10 14:19:14 UTC (rev 18440)
@@ -52,6 +52,7 @@
#include "BKE_action.h"
#include "BKE_armature.h"
#include "BKE_blender.h"
+#include "BKE_context.h"
#include "BKE_constraint.h"
#include "BKE_deform.h"
#include "BKE_depsgraph.h"
@@ -66,8 +67,10 @@
#include "BIF_gl.h"
#include "ED_armature.h"
+#include "ED_anim_api.h"
#include "ED_keyframing.h"
#include "ED_object.h"
+#include "ED_mesh.h"
#include "ED_view3d.h"
#include "armature_intern.h"
@@ -81,8 +84,6 @@
static void BIF_undo_push() {}
static void countall() {}
static void add_constraint() {}
-static void vertexgroup_select_by_name() {}
-static int screen_view3d_layers() {return 0;}
static void select_actionchannel_by_name() {}
static int autokeyframe_cfra_can_key() {return 0;}
static void autokeyframe_pose_cb_func() {}
@@ -194,7 +195,7 @@
/* For the object with pose/action: create path curves for selected bones
* This recalculates the WHOLE path within the pchan->pathsf and pchan->pathef range
*/
-void pose_calculate_path(Scene *scene, Object *ob)
+void pose_calculate_path(bContext *C, Scene *scene, Object *ob)
{
bArmature *arm;
bPoseChannel *pchan;
@@ -230,10 +231,10 @@
/* hack: for unsaved files, set OB_RECALC so that paths can get calculated */
if ((ob->recalc & OB_RECALC)==0) {
ob->recalc |= OB_RECALC;
- DAG_object_update_flags(scene, ob, screen_view3d_layers());
+ ED_anim_object_flush_update(C, ob);
}
else
- DAG_object_update_flags(scene, ob, screen_view3d_layers());
+ ED_anim_object_flush_update(C, ob);
/* malloc the path blocks */
@@ -288,7 +289,7 @@
/* For the object with pose/action: update paths for those that have got them
* This should selectively update paths that exist...
*/
-void pose_recalculate_paths(Scene *scene, Object *ob)
+void pose_recalculate_paths(bContext *C, Scene *scene, Object *ob)
{
bArmature *arm;
bPoseChannel *pchan;
@@ -324,10 +325,10 @@
/* hack: for unsaved files, set OB_RECALC so that paths can get calculated */
if ((ob->recalc & OB_RECALC)==0) {
ob->recalc |= OB_RECALC;
- DAG_object_update_flags(scene, ob, screen_view3d_layers());
+ ED_anim_object_flush_update(C, ob);
}
else
- DAG_object_update_flags(scene, ob, screen_view3d_layers());
+ ED_anim_object_flush_update(C, ob);
for (CFRA=sfra; CFRA<=efra; CFRA++) {
/* do all updates */
@@ -1628,7 +1629,7 @@
pose_flip_names();
}
else if(nr==3) {
- pose_calculate_path(ob);
+ pose_calculate_path(C, ob);
}
else if(nr==4) {
pose_clear_paths(ob);
Modified: branches/blender2.5/blender/source/blender/editors/include/ED_anim_api.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_anim_api.h 2009-01-10 14:03:00 UTC (rev 18439)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_anim_api.h 2009-01-10 14:19:14 UTC (rev 18440)
@@ -30,6 +30,7 @@
#define ED_ANIM_API_H
struct ID;
+struct Scene;
struct ListBase;
struct bContext;
struct wmWindowManager;
@@ -321,8 +322,11 @@
/* --------- anim_deps.c, animation updates -------- */
-/* generic update flush, reads from Context screen (layers) and scene */
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list