[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38808] branches/soc-2011-onion: new paint stroke stuff now works in vpaint mode
Jason Wilkins
Jason.A.Wilkins at gmail.com
Fri Jul 29 05:05:40 CEST 2011
Revision: 38808
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38808
Author: jwilkins
Date: 2011-07-29 03:05:37 +0000 (Fri, 29 Jul 2011)
Log Message:
-----------
new paint stroke stuff now works in vpaint mode
Modified Paths:
--------------
branches/soc-2011-onion/release/scripts/startup/bl_ui/space_view3d_toolbar.py
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_intern.h
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_mask.c
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_meshcache.c
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_ops.c
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_vertex.c
branches/soc-2011-onion/source/blender/editors/sculpt_paint/sculpt.c
branches/soc-2011-onion/source/blender/editors/sculpt_paint/sculpt_tools.c
Modified: branches/soc-2011-onion/release/scripts/startup/bl_ui/space_view3d_toolbar.py
===================================================================
--- branches/soc-2011-onion/release/scripts/startup/bl_ui/space_view3d_toolbar.py 2011-07-29 02:15:01 UTC (rev 38807)
+++ branches/soc-2011-onion/release/scripts/startup/bl_ui/space_view3d_toolbar.py 2011-07-29 03:05:37 UTC (rev 38808)
@@ -899,7 +899,7 @@
col = layout.column()
- if context.sculpt_object:
+ if context.sculpt_object or context.vertex_paint_object:
db = False
col.prop(brush, "stroke_method", text="")
Modified: branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_intern.h
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_intern.h 2011-07-29 02:15:01 UTC (rev 38807)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_intern.h 2011-07-29 03:05:37 UTC (rev 38808)
@@ -224,7 +224,6 @@
/* paint_vertex.c */
int weight_paint_poll(const struct bContext *C);
int weight_paint_mode_poll(const struct bContext *C);
-int vertex_paint_poll(const struct bContext *C);
int vertex_paint_mode_poll(const struct bContext *C);
void vpaint_fill(struct Object *ob, unsigned int paintcol);
@@ -238,7 +237,7 @@
void PAINT_OT_weight_sample_group(struct wmOperatorType *ot);
void PAINT_OT_vertex_paint_toggle(struct wmOperatorType *ot);
-void PAINT_OT_vertex_paint(struct wmOperatorType *ot);
+void PAINT_OT_vpaint_stroke(struct wmOperatorType *ot);
unsigned int vpaint_get_current_col(struct VPaint *vp);
@@ -278,7 +277,7 @@
int facemask_paint_poll(struct bContext *C);
-void paint_tag_partial_redraw(struct bContext *C, struct Object *ob);
+void paint_tag_partial_redraw(const struct bContext *C, struct Object *ob);
struct MultiresModifierData *paint_mesh_get_active_multires(const struct bContext *C);
@@ -370,7 +369,8 @@
void paint_mesh_undo_restore(struct bContext *C, struct SculptUndoNode *unode);
float *paint_mesh_orig_co(const struct Object *ob, int i);
int paint_mesh_totvert(const struct Object *ob);
-void paint_mesh_restore(const struct bContext *C);
+void paint_mesh_restore_co(const struct bContext *C);
+void paint_mesh_restore_mcol(const struct bContext *C);
int paint_use_threaded(const struct bContext *C);
Modified: branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_mask.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_mask.c 2011-07-29 02:15:01 UTC (rev 38807)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_mask.c 2011-07-29 03:05:37 UTC (rev 38808)
@@ -120,7 +120,7 @@
float symm_brush_local_mat[4][4],
int mirror_pass,
float special_rotation,
- struct bglMats* mats)
+ struct bglMats* UNUSED(mats))
{
Brush *brush = paint_brush(paint);
const struct ViewContext *vc;
@@ -145,11 +145,11 @@
if(paint_stroke_test(&test, vd.co)) {
float fade;
- fade =
- bstrength *
+ fade = bstrength;
+ /* SNIP bstrength *
brush_tex_strength(
vc,
- NULL /*pmat doesn't work*/,
+ NULL, // pmat doesn't work
symm_brush_local_mat,
mirror_pass,
brush,
@@ -160,7 +160,8 @@
radius3d,
special_rotation,
tex_mouse,
- mats /*XXX: until fix pmat */);
+ mats); // XXX: until fix pmat
+ */
*vd.mask_active += fade;
CLAMP(*vd.mask_active, 0, 1);
Modified: branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_meshcache.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_meshcache.c 2011-07-29 02:15:01 UTC (rev 38807)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_meshcache.c 2011-07-29 03:05:37 UTC (rev 38808)
@@ -439,7 +439,7 @@
copy_v3_v3(me->mvert[index].co, newco);
}
-void paint_mesh_restore(const struct bContext *C)
+void paint_mesh_restore_co(const struct bContext *C)
{
struct Object *ob= CTX_data_active_object(C);
int use_threaded= paint_use_threaded(C);
@@ -478,8 +478,13 @@
MEM_freeN(nodes);
}
+void paint_mesh_restore_mcol(const struct bContext *C)
+{
+ /* TODO */
+}
+
/*
* Flush & Finish
*
Modified: branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_ops.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_ops.c 2011-07-29 02:15:01 UTC (rev 38807)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_ops.c 2011-07-29 03:05:37 UTC (rev 38808)
@@ -397,7 +397,7 @@
/* vertex */
WM_operatortype_append(PAINT_OT_vertex_paint_toggle);
- WM_operatortype_append(PAINT_OT_vertex_paint);
+ WM_operatortype_append(PAINT_OT_vpaint_stroke);
WM_operatortype_append(PAINT_OT_vertex_color_set);
/* face-select */
@@ -566,10 +566,10 @@
keymap= WM_keymap_find(keyconf, "Sculpt", 0, 0);
keymap->poll= sculpt_poll;
- RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_stroke", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "mode", PAINT_STROKE_NORMAL);
- RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_stroke", LEFTMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "mode", PAINT_STROKE_INVERT);
- RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_stroke", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", PAINT_STROKE_SWITCH);
- RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_stroke", LEFTMOUSE, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "mode", PAINT_STROKE_SWITCH|PAINT_STROKE_INVERT);
+ RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_sculpt_stroke", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "mode", PAINT_STROKE_NORMAL);
+ RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_sculpt_stroke", LEFTMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "mode", PAINT_STROKE_INVERT);
+ RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_sculpt_stroke", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", PAINT_STROKE_SWITCH);
+ RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_sculpt_stroke", LEFTMOUSE, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "mode", PAINT_STROKE_SWITCH|PAINT_STROKE_INVERT);
WM_keymap_add_item(keymap, "SCULPT_OT_area_hide", EVT_TWEAK_L, KM_ANY, KM_CTRL|KM_SHIFT, 0);
RNA_boolean_set(WM_keymap_add_item(keymap, "SCULPT_OT_area_hide", EVT_TWEAK_L, KM_ANY, KM_CTRL|KM_ALT, 0)->ptr, "hide_inside", 1);
@@ -617,7 +617,7 @@
keymap= WM_keymap_find(keyconf, "Vertex Paint", 0, 0);
keymap->poll= vertex_paint_mode_poll;
- WM_keymap_verify_item(keymap, "PAINT_OT_vertex_paint", LEFTMOUSE, KM_PRESS, 0, 0);
+ WM_keymap_verify_item(keymap, "PAINT_OT_vpaint_stroke", LEFTMOUSE, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "PAINT_OT_sample_color", RIGHTMOUSE, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap,
@@ -684,7 +684,7 @@
/* paint stroke */
{
wmKeyMap* keymap= paint_stroke_modal_keymap(keyconf);
- WM_modalkeymap_assign(keymap, "SCULPT_OT_stroke");
- WM_modalkeymap_assign(keymap, "PAINT_OT_vertex_paint");
+ WM_modalkeymap_assign(keymap, "SCULPT_OT_sculpt_stroke");
+ WM_modalkeymap_assign(keymap, "PAINT_OT_vpaint_stroke");
}
}
Modified: branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_vertex.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_vertex.c 2011-07-29 02:15:01 UTC (rev 38807)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_vertex.c 2011-07-29 03:05:37 UTC (rev 38808)
@@ -106,20 +106,6 @@
return ob && ob->mode == OB_MODE_VERTEX_PAINT && ((Mesh *)ob->data)->totface;
}
-int vertex_paint_poll(const struct bContext *C)
-{
- if(vertex_paint_mode_poll(C) &&
- paint_brush(&CTX_data_tool_settings(C)->vpaint->paint)) {
- ScrArea *sa= CTX_wm_area(C);
- if(sa->spacetype==SPACE_VIEW3D) {
- ARegion *ar= CTX_wm_region(C);
- if(ar->regiontype==RGN_TYPE_WINDOW)
- return 1;
- }
- }
- return 0;
-}
-
int weight_paint_mode_poll(const struct bContext *C)
{
Object *ob = CTX_data_active_object(C);
@@ -149,10 +135,10 @@
static VPaint *new_vpaint(int wpaint)
{
VPaint *vp= MEM_callocN(sizeof(VPaint), "VPaint");
-
- vp->flag= VP_AREA+VP_SPRAY;
-
- if(wpaint)
+
+ vp->flag= VP_AREA|VP_SPRAY;
+
+ if (wpaint)
vp->flag= VP_AREA;
return vp;
@@ -1530,89 +1516,9 @@
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-/* ************ set / clear vertex paint mode ********** */
-static int vpaint_stroke_get_location(
- const struct bContext *C,
- float out[3],
- const struct PaintStroke *stroke,
- const float mouse[2]);
-static int set_vpaint(bContext *C, wmOperator *op) /* toggle */
-{
- Object *ob= CTX_data_active_object(C);
- Scene *scene= CTX_data_scene(C);
- VPaint *vp= scene->toolsettings->vpaint;
- Mesh *me;
-
- me= get_mesh(ob);
-
- if(me==NULL || object_data_is_libdata(ob)) {
- ob->mode &= ~OB_MODE_VERTEX_PAINT;
- return OPERATOR_PASS_THROUGH;
- }
-
- /* toggle: end vpaint */
- if(ob->mode & OB_MODE_VERTEX_PAINT) {
- free_paintsession(ob);
-
- ob->mode &= ~OB_MODE_VERTEX_PAINT;
- paint_mode_exit(&(vp->paint));
- }
- else {
- ob->mode |= OB_MODE_VERTEX_PAINT;
- /* Turn off weight painting */
- if (ob->mode & OB_MODE_WEIGHT_PAINT)
- set_wpaint(C, op);
-
- if(vp==NULL)
- vp= scene->toolsettings->vpaint= new_vpaint(0);
-
- if(me->mcol==NULL)
- make_vertexcol(ob);
-
- create_paintsession(ob);
-
- paint_mode_init(
- CTX_wm_manager(C),
- &(vp->paint),
- OB_MODE_VERTEX_PAINT,
- vertex_paint_poll,
- paint_draw_cursor,
- vpaint_stroke_get_location);
-
- // SNIP paint_init(&vp->paint, OB_MODE_VERTEX_PAINT);
- }
-
- /* create pbvh */
- if(ob->mode & OB_MODE_VERTEX_PAINT) {
- DerivedMesh *dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH|CD_MASK_MCOL);
- ob->paint->pbvh = dm->getPBVH(ob, dm);
- }
-
- WM_event_add_notifier(C, NC_SCENE|ND_MODE, scene);
-
- return OPERATOR_FINISHED;
-}
-
-void PAINT_OT_vertex_paint_toggle(wmOperatorType *ot)
-{
-
- /* identifiers */
- ot->name= "Vertex Paint Mode";
- ot->idname= "PAINT_OT_vertex_paint_toggle";
-
- /* api callbacks */
- ot->exec= set_vpaint;
- ot->poll= paint_poll_test;
-
- /* flags */
- ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-}
-
-
-
/* ********************** vertex paint operator ******************* */
/* Implementation notes:
@@ -1664,12 +1570,20 @@
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list