Changed the branch code markers to say "Radish" in response to a review.

They weren't & aren't meant to show ownership, they just help me navigate my related code.
This commit is contained in:
Jason Hays 2011-09-18 03:49:00 +00:00
parent 6d2b98ac89
commit a9c99f58f4
31 changed files with 129 additions and 129 deletions

@ -1072,7 +1072,7 @@ class VIEW3D_MT_paint_weight(Menu):
layout.operator("object.vertex_group_invert", text="Invert")
layout.operator("object.vertex_group_clean", text="Clean")
layout.operator("object.vertex_group_levels", text="Levels")
#Jason
# Radish
layout.operator("object.vertex_group_fix", text="Fix Deforms")
layout.separator()

@ -646,7 +646,7 @@ class VIEW3D_PT_tools_brush(PaintPanel, Panel):
elif context.weight_paint_object and brush:
layout.prop(context.tool_settings, "vertex_group_weight", text="Weight", slider=True)
layout.prop(context.tool_settings, "use_auto_normalize", text="Auto Normalize")
# Jason was here
# Radish
layout.prop(context.tool_settings, "use_multipaint", text="Multi-Paint")
col = layout.column()

@ -59,7 +59,7 @@ void paint_brush_set(struct Paint *paint, struct Brush *br);
* Texture paint could be removed since selected faces are not used
* however hiding faces is useful */
int paint_facesel_test(struct Object *ob);
/* Jason */
/* Radish */
int paint_vertsel_test(struct Object *ob);
/* Session data (mode-specific) */

@ -40,7 +40,7 @@
#include "DNA_cloth_types.h"
#include "DNA_key_types.h"
#include "DNA_meshdata_types.h"
// Jason
/* Radish */
#include "DNA_armature_types.h"
#include "DNA_object_types.h"
@ -1689,12 +1689,12 @@ static void calc_weightpaint_vert_color(Object *ob, ColorBand *coba, int vert, u
float colf[4], input = 0.0f;
int i;
// Jason was here
/* Radish */
int make_black= FALSE;
if (me->dvert) {
if ((selected > 1) && (draw_flag & CALC_WP_MULTIPAINT)) {
// Jason was here
/* Radish */
int was_a_nonzero= FALSE;
for (i=0; i<me->dvert[vert].totweight; i++) {
/* in multipaint, get the average if auto normalize is inactive
@ -1761,7 +1761,7 @@ static void add_weight_mcol_dm(Object *ob, DerivedMesh *dm, int const draw_flag)
unsigned char *wtcol;
int i;
// Jason was here
/* Radish */
int defbase_len = BLI_countlist(&ob->defbase);
char *defbase_sel = MEM_mallocN(defbase_len * sizeof(char), __func__);
int selected = get_selected_defgroups(ob, defbase_sel, defbase_len);
@ -1777,7 +1777,7 @@ static void add_weight_mcol_dm(Object *ob, DerivedMesh *dm, int const draw_flag)
if (mf->v4)
calc_weightpaint_vert_color(ob, coba, mf->v4, &wtcol[(i*4 + 3)*4], defbase_sel, selected, unselected, draw_flag);
}
// Jason
/* Radish */
MEM_freeN(defbase_sel);
CustomData_add_layer(&dm->faceData, CD_WEIGHT_MCOL, CD_ASSIGN, wtcol, dm->numFaceData);
@ -1807,7 +1807,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
int has_multires = mmd != NULL, multires_applied = 0;
int sculpt_mode = ob->mode & OB_MODE_SCULPT && ob->sculpt;
// Jason
/* Radish */
int draw_flag= ((scene->toolsettings->multipaint ? CALC_WP_MULTIPAINT : 0) |
(scene->toolsettings->auto_normalize ? CALC_WP_AUTO_NORMALIZE : 0));
@ -1990,7 +1990,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
}
if((dataMask & CD_MASK_WEIGHT_MCOL) && (ob->mode & OB_MODE_WEIGHT_PAINT))
add_weight_mcol_dm(ob, dm, draw_flag); // Jason
add_weight_mcol_dm(ob, dm, draw_flag); /* Radish */
/* Constructive modifiers need to have an origindex
* otherwise they wont have anywhere to copy the data from.
@ -2102,7 +2102,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
CDDM_calc_normals(finaldm);
if((dataMask & CD_MASK_WEIGHT_MCOL) && (ob->mode & OB_MODE_WEIGHT_PAINT))
add_weight_mcol_dm(ob, finaldm, draw_flag);// Jason
add_weight_mcol_dm(ob, finaldm, draw_flag);/* Radish */
} else if(dm) {
finaldm = dm;
} else {
@ -2114,7 +2114,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
}
if((dataMask & CD_MASK_WEIGHT_MCOL) && (ob->mode & OB_MODE_WEIGHT_PAINT))
add_weight_mcol_dm(ob, finaldm, draw_flag);// Jason
add_weight_mcol_dm(ob, finaldm, draw_flag);/* Radish */
}
/* add an orco layer if needed */
@ -2387,7 +2387,7 @@ static void clear_mesh_caches(Object *ob)
static void mesh_build_data(Scene *scene, Object *ob, CustomDataMask dataMask)
{
Object *obact = scene->basact?scene->basact->object:NULL;
int editing = paint_facesel_test(ob) || paint_vertsel_test(ob);// Jason: paint_vertsel_test
int editing = paint_facesel_test(ob) || paint_vertsel_test(ob);/* Radish: paint_vertsel_test */
/* weight paint and face select need original indices because of selection buffer drawing */
int needMapping = (ob==obact) && (editing || (ob->mode & (OB_MODE_WEIGHT_PAINT|OB_MODE_VERTEX_PAINT)));

@ -2465,7 +2465,7 @@ void where_is_pose (Scene *scene, Object *ob)
}
}
/* Jason was here */
/* Radish */
/* Returns total selected vgroups */
int get_selected_defgroups(Object *ob, char *dg_selection, int defbase_len)
{

@ -96,7 +96,7 @@ int paint_facesel_test(Object *ob)
{
return (ob && ob->type==OB_MESH && ob->data && (((Mesh *)ob->data)->editflag & ME_EDIT_PAINT_MASK) && (ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT)));
}
/* Jason */
/* Radish */
int paint_vertsel_test(Object *ob)
{
return (ob && ob->type==OB_MESH && ob->data && (((Mesh *)ob->data)->editflag & ME_EDIT_VERT_SEL) && (ob->mode & OB_MODE_WEIGHT_PAINT));

@ -4276,7 +4276,7 @@ static int bone_looper(Object *ob, Bone *bone, void *data,
return count;
}
// Jason
/* Radish */
Bone* get_other_selected_bone(Object *ob) {
Bone *bone;
int i;
@ -4307,10 +4307,10 @@ int ED_do_pose_selectbuffer(Scene *scene, Base *base, unsigned int *buffer, shor
bArmature *arm= ob->data;
/* since we do unified select, we don't shift+select a bone if the armature object was not active yet */
/* Jason was here, I'm doing a select for multibone painting */
/* Radish, I'm doing a select for multibone painting */
if (scene->toolsettings->multipaint && (base != scene->basact)) {//if (!(extend) || (base != scene->basact)) {
Bone *new_act_bone;
/* Jason was here */
/* Radish */
/* only deselect all if they aren't using 'shift' */
if(!extend) {
ED_pose_deselectall(ob, 0);
@ -4319,7 +4319,7 @@ int ED_do_pose_selectbuffer(Scene *scene, Base *base, unsigned int *buffer, shor
ED_vgroup_select_by_name(OBACT, nearBone->name);
}
else {
// Jason deselect this bone specifically if it is selected already
/* Radish deselect this bone specifically if it is selected already */
if (nearBone->flag & BONE_SELECTED) {
nearBone->flag &= ~(BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL);
if(nearBone == arm->act_bone) {
@ -5105,7 +5105,7 @@ void POSE_OT_select_inverse(wmOperatorType *ot)
static int pose_de_select_all_exec(bContext *C, wmOperator *op)
{
int action = RNA_enum_get(op->ptr, "action");
//Jason
//Radish
Object *ob = NULL;
Scene *scene= CTX_data_scene(C);
int multipaint = scene->toolsettings->multipaint;
@ -5138,7 +5138,7 @@ static int pose_de_select_all_exec(bContext *C, wmOperator *op)
CTX_DATA_END;
WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, NULL);
// Jason
/* Radish */
if(multipaint) {
ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);

@ -657,7 +657,7 @@ void heat_bone_weighting(Object *ob, Mesh *me, float (*verts)[3], int numsource,
int *vertsflipped = NULL, *mask= NULL;
int a, totface, j, bbone, firstsegment, lastsegment;
// Jason
/* Radish */
MVert *mv = me->mvert;
int use_vert_sel= FALSE;
@ -670,7 +670,7 @@ void heat_bone_weighting(Object *ob, Mesh *me, float (*verts)[3], int numsource,
for(totface=0, a=0, mface=me->mface; a<me->totface; a++, mface++) {
totface++;
if(mface->v4) totface++;
// Jason (added selectedVerts content for vertex mask, they used to just equal 1)
/* Radish (added selectedVerts content for vertex mask, they used to just equal 1) */
if(mask && ((mface->flag & ME_FACE_SEL) || use_vert_sel)) {
mask[mface->v1]= use_vert_sel ? ((mv+mface->v1)->flag & 1): 1;
mask[mface->v2]= use_vert_sel ? ((mv+mface->v2)->flag & 1): 1;

@ -122,7 +122,7 @@ int EM_texFaceCheck(struct EditMesh *em);
int EM_vertColorCheck(struct EditMesh *em);
void undo_push_mesh(struct bContext *C, const char *name);
/* Jason */
/* Radish */
void paintvert_flush_flags(struct Object *ob);
void paintvert_deselect_all_visible(struct Object *ob, int action, short flush_flags);

@ -216,7 +216,7 @@ void ED_view3d_project_float(struct ARegion *a, const float vec[3], float adr[2]
void ED_view3d_calc_camera_border(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, struct RegionView3D *rv3d, struct rctf *viewborder_r, short do_shift);
/* drawobject.c iterators */
/*Jason*/
/* Radish */
void mesh_obmode_foreachScreenVert(struct ViewContext *vc, void (*func)(void *userData, struct MVert *mv, int x, int y, int index), void *userData, int clipVerts);
void mesh_foreachScreenVert(struct ViewContext *vc, void (*func)(void *userData, struct EditVert *eve, int x, int y, int index), void *userData, int clipVerts);

@ -2124,7 +2124,7 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe
//uiItemR(row, itemptr, "mute", 0, "", ICON_MUTE_IPO_OFF);
uiBlockSetEmboss(block, UI_EMBOSS);
}
/* Jason was here: I need the RNA struct for vertex groups */
/* Radish: I need the RNA struct for vertex groups */
else if(itemptr->type == &RNA_VertexGroup) {
bDeformGroup *dg= (bDeformGroup *)itemptr->data;
uiItemL(sub, name, icon);

@ -1960,7 +1960,7 @@ void em_setup_viewcontext(bContext *C, ViewContext *vc)
}
/* Jason (similar to void paintface_flush_flags(Object *ob))
/* Radish (similar to void paintface_flush_flags(Object *ob))
* copy the vertex flags, most importantly selection from the mesh to the final derived mesh,
* use in object mode when selecting vertices (while painting) */
void paintvert_flush_flags(Object *ob)
@ -1992,7 +1992,7 @@ void paintvert_flush_flags(Object *ob)
}
}
}
/* Jason note: if the caller passes FALSE to flush_flags, then they will need to run paintvert_flush_flags(ob) themselves */
/* Radish note: if the caller passes FALSE to flush_flags, then they will need to run paintvert_flush_flags(ob) themselves */
void paintvert_deselect_all_visible(Object *ob, int action, short flush_flags)
{
Mesh *me;

@ -266,7 +266,7 @@ int EM_mask_init_backbuf_border(ViewContext *vc, int mcords[][2], short tot, sho
/* method in use for face selecting too */
if(vc->obedit==NULL) {
if(paint_facesel_test(vc->obact));
else if(paint_vertsel_test(vc->obact));//Jason
else if(paint_vertsel_test(vc->obact));//Radish
else return 0;
}
else if(vc->v3d->drawtype<OB_SOLID || (vc->v3d->flag & V3D_ZBUF_SELECT)==0) return 0;
@ -329,7 +329,7 @@ int EM_init_backbuf_circle(ViewContext *vc, short xs, short ys, short rads)
/* method in use for face selecting too */
if(vc->obedit==NULL) {
if(paint_facesel_test(vc->obact));
else if (paint_vertsel_test(vc->obact));//Jason
else if (paint_vertsel_test(vc->obact));//Radish
else return 0;
}
else if(vc->v3d->drawtype<OB_SOLID || (vc->v3d->flag & V3D_ZBUF_SELECT)==0) return 0;

@ -200,7 +200,7 @@ void OBJECT_OT_vertex_group_copy(struct wmOperatorType *ot);
void OBJECT_OT_vertex_group_normalize(struct wmOperatorType *ot);
void OBJECT_OT_vertex_group_normalize_all(struct wmOperatorType *ot);
void OBJECT_OT_vertex_group_levels(struct wmOperatorType *ot);
/* Jason was here */
/* Radish */
void OBJECT_OT_vertex_group_lock(struct wmOperatorType *ot);
void OBJECT_OT_vertex_group_fix(struct wmOperatorType *ot);

@ -174,7 +174,7 @@ void ED_operatortypes_object(void)
WM_operatortype_append(OBJECT_OT_vertex_group_copy);
WM_operatortype_append(OBJECT_OT_vertex_group_normalize);
WM_operatortype_append(OBJECT_OT_vertex_group_normalize_all);
/* Jason was here */
/* Radish */
WM_operatortype_append(OBJECT_OT_vertex_group_lock);
WM_operatortype_append(OBJECT_OT_vertex_group_fix);

@ -61,7 +61,7 @@
#include "BKE_global.h"
#include "BKE_mesh.h"
#include "BKE_report.h"
#include "BKE_DerivedMesh.h"//Jason
#include "BKE_DerivedMesh.h"//Radish
#include "RNA_access.h"
#include "RNA_define.h"
@ -703,7 +703,7 @@ static void vgroup_normalize(Object *ob)
MDeformWeight *dw;
MDeformVert *dvert, **dvert_array=NULL;
int i, def_nr, dvert_tot=0;
// Jason
/* Radish */
Mesh *me = ob->data;
MVert *mvert = me->mvert;
const int use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
@ -718,7 +718,7 @@ static void vgroup_normalize(Object *ob)
def_nr= ob->actdef-1;
for(i = 0; i < dvert_tot; i++) {
// Jason
/* Radish */
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
continue;
}
@ -732,7 +732,7 @@ static void vgroup_normalize(Object *ob)
if(weight_max > 0.0f) {
for(i = 0; i < dvert_tot; i++) {
// Jason
/* Radish */
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
continue;
}
@ -751,7 +751,7 @@ static void vgroup_normalize(Object *ob)
if (dvert_array) MEM_freeN(dvert_array);
}
// Jason
/* Radish */
/* This adds the indices of vertices to a list if they are not already present
It returns the number that it added (0-2)
It relies on verts having -1 for unassigned indices
@ -780,7 +780,7 @@ static int tryToAddVerts(int *verts, int length, int a, int b) {
}
return added;
}
//Jason
//Radish
/* This finds all of the vertices connected to vert by an edge
and returns an array of indices of size count
@ -844,7 +844,7 @@ static int* getSurroundingVerts(Mesh *me, int vert, int *count) {
MEM_freeN(tverts);
return verts;
}
/* Jason */
/* Radish */
/* get a single point in space by averaging a point cloud (vectors of size 3)
coord is the place the average is stored, points is the point cloud, count is the number of points in the cloud
*/
@ -856,7 +856,7 @@ static void getSingleCoordinate(MVert *points, int count, float coord[3]) {
}
mul_v3_fl(coord, 1.0f/count);
}
/* Jason */
/* Radish */
/* find the closest point on a plane to another point and store it in dst */
/* coord is a point on the plane */
/* point is the point that you want the nearest of */
@ -873,7 +873,7 @@ static void getNearestPointOnPlane(const float norm[3], const float coord[3], co
dst_r[1] = point[1] - (norm[1] * dotprod);
dst_r[2] = point[2] - (norm[2] * dotprod);
}
/* Jason */
/* Radish */
/* distance of two vectors a and b of size length */
static float distance(float* a, float *b, int length) {
int i;
@ -883,7 +883,7 @@ static float distance(float* a, float *b, int length) {
}
return sqrt(sum);
}
/* Jason */
/* Radish */
/* given a plane and a start and end position,
compute the amount of vertical distance relative to the plane and store it in dists,
then get the horizontal and vertical change and store them in changes
@ -904,7 +904,7 @@ static void getVerticalAndHorizontalChange(float *norm, float d, float *coord, f
// horizontal change
changes[index][1] = distance(projA, projB, 3);
}
// Jason
/* Radish */
// I need the derived mesh to be forgotten so the positions are recalculated with weight changes (see dm_deform_recalc)
static void dm_deform_clear(DerivedMesh *dm, Object *ob) {
if(ob->derivedDeform && (ob->derivedDeform)==dm) {
@ -917,12 +917,12 @@ static void dm_deform_clear(DerivedMesh *dm, Object *ob) {
dm->release(dm);
}
}
// Jason
/* Radish */
// recalculate the deformation
static DerivedMesh* dm_deform_recalc(Scene *scene, Object *ob) {
return mesh_get_derived_deform(scene, ob, CD_MASK_BAREMESH);
}
// Jason
/* Radish */
/* by changing nonzero weights, try to move a vertex in me->mverts with index 'index' to distToBe distance away from the provided plane
strength can change distToBe so that it moves towards distToBe by that percentage
cp changes how much the weights are adjusted to check the distance
@ -1094,7 +1094,7 @@ static void moveCloserToDistanceFromPlane(Scene *scene, Object *ob, Mesh *me, in
MEM_freeN(dists);
MEM_freeN(dwIndices);
}
// Jason
/* Radish */
/* this is used to try to smooth a surface by only adjusting the nonzero weights of a vertex
but it could be used to raise or lower an existing 'bump.' */
static void vgroup_fix(Scene *scene, Object *ob, float distToBe, float strength, float cp)
@ -1106,7 +1106,7 @@ static void vgroup_fix(Scene *scene, Object *ob, float distToBe, float strength,
const int use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
int *verts = NULL;
for(i = 0; i < me->totvert && mvert; i++, mvert++) {
// Jason
/* Radish */
if(use_vert_sel && (mvert->flag & SELECT)) {
int count=0;
@ -1153,7 +1153,7 @@ static void vgroup_levels(Object *ob, float offset, float gain)
MDeformWeight *dw;
MDeformVert *dvert, **dvert_array=NULL;
int i, def_nr, dvert_tot=0;
// Jason
/* Radish */
Mesh *me = ob->data;
MVert *mvert = me->mvert;
const int use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
@ -1166,7 +1166,7 @@ static void vgroup_levels(Object *ob, float offset, float gain)
def_nr= ob->actdef-1;
for(i = 0; i < dvert_tot; i++) {
// Jason
/* Radish */
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
continue;
}
@ -1192,7 +1192,7 @@ static void vgroup_normalize_all(Object *ob, int lock_active)
int i, dvert_tot=0;
float tot_weight;
// Jason
/* Radish */
Mesh *me = ob->data;
MVert *mvert = me->mvert;
const int use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
@ -1206,7 +1206,7 @@ static void vgroup_normalize_all(Object *ob, int lock_active)
for(i = 0; i < dvert_tot; i++) {
float lock_iweight= 1.0f;
int j;
// Jason
/* Radish */
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
continue;
}
@ -1250,7 +1250,7 @@ static void vgroup_normalize_all(Object *ob, int lock_active)
else {
for(i = 0; i < dvert_tot; i++) {
int j;
// Jason
/* Radish */
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
continue;
}
@ -1281,7 +1281,7 @@ static void vgroup_normalize_all(Object *ob, int lock_active)
if (dvert_array) MEM_freeN(dvert_array);
}
/* Jason was here */
/* Radish */
static void vgroup_lock_all(Object *ob, int action)
{
bDeformGroup *dg;
@ -1317,7 +1317,7 @@ static void vgroup_invert(Object *ob, int auto_assign, int auto_remove)
MDeformWeight *dw;
MDeformVert *dvert, **dvert_array=NULL;
int i, def_nr, dvert_tot=0;
// Jason
/* Radish */
Mesh *me = ob->data;
MVert *mvert = me->mvert;
const int use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
@ -1331,7 +1331,7 @@ static void vgroup_invert(Object *ob, int auto_assign, int auto_remove)
for(i = 0; i < dvert_tot; i++) {
// Jason
/* Radish */
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
continue;
}
@ -1447,7 +1447,7 @@ static void vgroup_clean(Object *ob, float eul, int keep_single)
MDeformWeight *dw;
MDeformVert *dvert, **dvert_array=NULL;
int i, def_nr, dvert_tot=0;
// Jason
/* Radish */
Mesh *me = ob->data;
MVert *mvert = me->mvert;
const int use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
@ -1460,7 +1460,7 @@ static void vgroup_clean(Object *ob, float eul, int keep_single)
def_nr= ob->actdef-1;
for(i = 0; i < dvert_tot; i++) {
// Jason
/* Radish */
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
continue;
}
@ -1485,7 +1485,7 @@ static void vgroup_clean_all(Object *ob, float eul, int keep_single)
MDeformWeight *dw;
MDeformVert *dvert, **dvert_array=NULL;
int i, dvert_tot=0;
// Jason
/* Radish */
Mesh *me = ob->data;
MVert *mvert = me->mvert;
const int use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
@ -1495,7 +1495,7 @@ static void vgroup_clean_all(Object *ob, float eul, int keep_single)
if(dvert_array) {
for(i = 0; i < dvert_tot; i++) {
int j;
// Jason
/* Radish */
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
continue;
}
@ -2319,7 +2319,7 @@ void OBJECT_OT_vertex_group_normalize_all(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "lock_active", TRUE, "Lock Active", "Keep the values of the active group while normalizing others.");
}
/* Jason */
/* Radish */
static int vertex_group_fix_exec(bContext *C, wmOperator *op)
{
Object *ob= CTX_data_active_object(C);
@ -2367,7 +2367,7 @@ void OBJECT_OT_vertex_group_fix(wmOperatorType *ot)
RNA_def_float(ot->srna, "cp", 1.0f, 0.05f, FLT_MAX, "Change Sensitivity", "Changes the amount weights are altered with each iteration: lower values are slower.", 0.05f, 1.f);
}
/* Jason was here */
/* Radish */
static int vertex_group_lock_exec(bContext *C, wmOperator *op)
{
Object *ob= CTX_data_active_object(C);
@ -2378,7 +2378,7 @@ static int vertex_group_lock_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
/* Jason was here */
/* Radish */
void OBJECT_OT_vertex_group_lock(wmOperatorType *ot)
{
/* identifiers */

@ -5408,12 +5408,12 @@ int facemask_paint_poll(bContext *C)
{
return paint_facesel_test(CTX_data_active_object(C));
}
// Jason
/* Radish */
int vert_paint_poll(bContext *C)
{
return paint_vertsel_test(CTX_data_active_object(C));
}
// Jason
/* Radish */
int mask_paint_poll(bContext *C)
{
return paint_facesel_test(CTX_data_active_object(C)) || paint_vertsel_test(CTX_data_active_object(C));

@ -121,7 +121,7 @@ void PAINT_OT_face_select_all(struct wmOperatorType *ot);
void PAINT_OT_face_select_inverse(struct wmOperatorType *ot);
void PAINT_OT_face_select_hide(struct wmOperatorType *ot);
void PAINT_OT_face_select_reveal(struct wmOperatorType *ot);
/* Jason */
/* Radish */
void PAINT_OT_vert_select_all(struct wmOperatorType *ot);
void PAINT_OT_vert_select_inverse(struct wmOperatorType *ot);
int vert_paint_poll(struct bContext *C);

@ -373,7 +373,7 @@ void ED_operatortypes_paint(void)
WM_operatortype_append(PAINT_OT_weight_sample);
WM_operatortype_append(PAINT_OT_weight_sample_group);
/* Jason, vertex selection */
/* Radish, vertex selection */
WM_operatortype_append(PAINT_OT_vert_select_all);
WM_operatortype_append(PAINT_OT_vert_select_inverse);
@ -611,7 +611,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
WM_keymap_verify_item(keymap, "PAINT_OT_weight_from_bones", WKEY, KM_PRESS, 0, 0);
// Jason
/* Radish */
/*Weight paint's Vertex Selection Mode */
keymap= WM_keymap_find(keyconf, "Weight Paint Vertex Selection", 0, 0);
keymap->poll= vert_paint_poll;

@ -358,7 +358,7 @@ void PAINT_OT_face_select_all(wmOperatorType *ot)
WM_operator_properties_select_all(ot);
}
/* Jason */
/* Radish */
static int vert_select_all_exec(bContext *C, wmOperator *op)
{
Object *ob= CTX_data_active_object(C);
@ -367,7 +367,7 @@ static int vert_select_all_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
/* Jason */
/* Radish */
void PAINT_OT_vert_select_all(wmOperatorType *ot)
{
ot->name= "Vertex Selection";
@ -381,7 +381,7 @@ void PAINT_OT_vert_select_all(wmOperatorType *ot)
WM_operator_properties_select_all(ot);
}
/* Jason */
/* Radish */
static int vert_select_inverse_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_active_object(C);
@ -389,7 +389,7 @@ static int vert_select_inverse_exec(bContext *C, wmOperator *UNUSED(op))
ED_region_tag_redraw(CTX_wm_region(C));
return OPERATOR_FINISHED;
}
/* Jason */
/* Radish */
void PAINT_OT_vert_select_inverse(wmOperatorType *ot)
{
ot->name= "Vertex Select Invert";

@ -399,14 +399,14 @@ void wpaint_fill(VPaint *wp, Object *ob, float paintweight)
unsigned char i;
int vgroup_mirror= -1;
int selected;
// Jason
/* Radish */
int use_vert_sel;
me= ob->data;
if(me==NULL || me->totface==0 || me->dvert==NULL || !me->mface) return;
selected= (me->editflag & ME_EDIT_PAINT_MASK);
// Jason
/* Radish */
use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
indexar= get_indexarray(me);
@ -443,7 +443,7 @@ void wpaint_fill(VPaint *wp, Object *ob, float paintweight)
faceverts[3]= mface->v4;
for (i=0; i<3 || faceverts[i]; i++) {
if(!me->dvert[faceverts[i]].flag) {
// Jason
/* Radish */
if(use_vert_sel && ((me->mvert[faceverts[i]].flag & SELECT) == 0)) {
continue;
}
@ -840,7 +840,7 @@ static void wpaint_blend(VPaint *wp, MDeformWeight *dw, MDeformWeight *uw, float
if (dw->weight > paintval)
dw->weight = paintval*alpha + dw->weight*(1.0f-alpha);
}
// Jason delay clamping until the end so multi-paint can function when the active group is at the limits
/* Radish delay clamping until the end so multi-paint can function when the active group is at the limits */
//CLAMP(dw->weight, 0.0f, 1.0f);
/* if no spray, clip result with orig weight & orig alpha */
@ -1111,7 +1111,7 @@ static void do_weight_paint_auto_normalize(MDeformVert *dvert,
}
#endif
// Jason was here: the active group should be involved in auto normalize
/* Radish: the active group should be involved in auto normalize */
static void do_weight_paint_auto_normalize_all_groups(MDeformVert *dvert, char *map)
{
// MDeformWeight *dw = dvert->dw;
@ -1140,7 +1140,7 @@ static void do_weight_paint_auto_normalize_all_groups(MDeformVert *dvert, char *
}
}
}
/* Jason was here */
/* Radish */
/*
See if the current deform vertex has a locked group
*/
@ -1154,7 +1154,7 @@ static char has_locked_group(MDeformVert *dvert, char *flags)
}
return FALSE;
}
/* Jason was here
/* Radish
* gen_lck_flags gets the status of "flag" for each bDeformGroup
*in ob->defbase and returns an array containing them
*/
@ -1177,7 +1177,7 @@ static char *gen_lck_flags(Object* ob, int defbase_len)
MEM_freeN(flags);
return NULL;
}
/* Jason was here */
/* Radish */
static int has_locked_group_selected(int defbase_len, char *defbase_sel, char *flags) {
int i;
for(i = 0; i < defbase_len; i++) {
@ -1188,7 +1188,7 @@ static int has_locked_group_selected(int defbase_len, char *defbase_sel, char *f
return FALSE;
}
/* Jason was here */
/* Radish */
#if 0 /* UNUSED */
static int has_unselected_unlocked_bone_group(int defbase_len, char *defbase_sel, int selected, char *flags, char *bone_groups) {
int i;
@ -1204,7 +1204,7 @@ static int has_unselected_unlocked_bone_group(int defbase_len, char *defbase_sel
}
#endif
/*Jason*/
/* Radish */
static void multipaint_selection(MDeformVert *dvert, float change, char *defbase_sel, int defbase_len) {
int i;
MDeformWeight *dw;
@ -1216,7 +1216,7 @@ static void multipaint_selection(MDeformVert *dvert, float change, char *defbase
if(dw && dw->weight) {
val = dw->weight * change;
if(val > 1) {
// Jason TODO: when the change is reduced, you need to recheck the earlier values to make sure they are not 0 (precision error)
/* Radish TODO: when the change is reduced, you need to recheck the earlier values to make sure they are not 0 (precision error) */
change = 1.0f/dw->weight;
}
// the value should never reach zero while multi-painting if it was nonzero beforehand
@ -1236,7 +1236,7 @@ static void multipaint_selection(MDeformVert *dvert, float change, char *defbase
}
}
}
/*Jason*/
/* Radish */
// move all change onto valid, unchanged groups. If there is change left over, then return it.
// assumes there are valid groups to shift weight onto
static float redistribute_change(MDeformVert *ndv, char *change_status, int changeme, int changeto, char *validmap, float totchange, float total_valid) {
@ -1282,7 +1282,7 @@ static float redistribute_change(MDeformVert *ndv, char *change_status, int chan
// left overs
return totchange;
}
/*Jason*/
/* Radish */
// observe the changes made to the weights of groups.
// make sure all locked groups on the vertex have the same deformation
// by moving the changes made to groups onto other unlocked groups
@ -1406,7 +1406,7 @@ static void enforce_locks(MDeformVert *odv, MDeformVert *ndv, int defbase_len, c
MEM_freeN(change_status);
}
/*Jason*/
/* Radish */
// multi-paint's initial, potential change is computed here based on the user's stroke
static float get_mp_change(MDeformVert *odv, char *defbase_sel, float brush_change) {
float selwsum = 0.0f;
@ -1422,7 +1422,7 @@ static float get_mp_change(MDeformVert *odv, char *defbase_sel, float brush_chan
}
return 0.0f;
}
/*Jason*/
/* Radish */
// change the weights back to the wv's weights
// it assumes you already have the correct pointer index
static void reset_to_prev(MDeformVert *wv, MDeformVert *dv) {
@ -1440,14 +1440,14 @@ static void reset_to_prev(MDeformVert *wv, MDeformVert *dv) {
}
}
}
/* Jason */
/* Radish */
static void clamp_weights(MDeformVert *dvert) {
int i;
for (i = 0; i < dvert->totweight; i++) {
CLAMP((dvert->dw+i)->weight, 0.0f, 1.0f);
}
}
/*Jason*/
/* Radish */
/* fresh start to make multi-paint and locking modular */
/* returns TRUE if it thinks you need to reset the weights due to normalizing while multi-painting */
static int apply_mp_lcks_normalize(Mesh *me, int index, MDeformWeight *dw, MDeformWeight *tdw, int defbase_len, float change, float oldChange, float oldw, float neww, char *defbase_sel, int selected, char *bone_groups, char *validmap, char *flags, int multipaint) {
@ -1506,7 +1506,7 @@ static int get_first_selected_nonzero_weight(MDeformVert *dvert, char *defbase_s
}
return -1;
}
// Jason
/* Radish */
static char *wpaint_make_validmap(Object *ob);
static void do_weight_paint_vertex(VPaint *wp, Object *ob, int index,
@ -1514,11 +1514,11 @@ static void do_weight_paint_vertex(VPaint *wp, Object *ob, int index,
int vgroup_mirror, char *validmap, int multipaint)
{
Mesh *me= ob->data;
// Jason: tdw, tuw
// Radish: tdw, tuw
MDeformWeight *dw, *uw, *tdw = NULL, *tuw;
int vgroup= ob->actdef-1;
/* Jason was here */
/* Radish */
char *flags;
char *bone_groups;
char *defbase_sel;
@ -1549,7 +1549,7 @@ static void do_weight_paint_vertex(VPaint *wp, Object *ob, int index,
}
if(dw==NULL || uw==NULL)
return;
/* Jason was here */
/* Radish */
flags = gen_lck_flags(ob, defbase_len = BLI_countlist(&ob->defbase));
defbase_sel = MEM_mallocN(defbase_len * sizeof(char), "dg_selected_flags");
selected = get_selected_defgroups(ob, defbase_sel, defbase_len);
@ -1608,7 +1608,7 @@ static void do_weight_paint_vertex(VPaint *wp, Object *ob, int index,
}
}
}
/* Jason was here */
/* Radish */
if(apply_mp_lcks_normalize(me, index, dw, tdw, defbase_len, change, oldChange, oldw, neww, defbase_sel, selected, bone_groups, validmap, flags, multipaint)) {
reset_to_prev(dv, me->dvert+index);
change = 0;
@ -1629,13 +1629,13 @@ static void do_weight_paint_vertex(VPaint *wp, Object *ob, int index,
uw= defvert_verify_index(me->dvert+j, vgroup_mirror);
else
uw= defvert_verify_index(me->dvert+j, vgroup);
/* Jason */
/* Radish */
//uw->weight= dw->weight;
/* Jason */
/* Radish */
apply_mp_lcks_normalize(me, j, uw, tdw, defbase_len, change, oldChange, oldw, neww, defbase_sel, selected, bone_groups, validmap, flags, multipaint);
}
}
/* Jason */
/* Radish */
if(flags) {
MEM_freeN(flags);
}
@ -1899,7 +1899,7 @@ static void wpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
float alpha;
float mval[2], pressure;
// Jason
/* Radish */
int use_vert_sel;
/* cannot paint if there is no stroke data */
@ -1928,7 +1928,7 @@ static void wpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
swap_m4m4(wpd->vc.rv3d->persmat, mat);
// Jason
/* Radish */
use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
/* which faces are involved */
@ -2172,7 +2172,7 @@ void PAINT_OT_weight_set(wmOperatorType *ot)
/* api callbacks */
ot->exec= weight_paint_set_exec;
ot->poll= mask_paint_poll; // Jason, it was facemask_paint_poll
ot->poll= mask_paint_poll; /* Radish, it was facemask_paint_poll */
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;

@ -86,7 +86,7 @@
#include "BIF_gl.h"
#include "BIF_glutil.h"
#include "GPU_buffers.h"// Jason
#include "GPU_buffers.h"/* Radish */
#include "GPU_draw.h"
#include "GPU_extensions.h"
@ -1741,7 +1741,7 @@ void mesh_foreachScreenVert(ViewContext *vc, void (*func)(void *userData, EditVe
dm->release(dm);
}
/*Jason */
/* Radish */
static void mesh_obmode_foreachScreenVert__mapFunc(void *userData, int index, float *co, float *UNUSED(no_f), short *UNUSED(no_s))
{
struct { void (*func)(void *userData, MVert *mv, int x, int y, int index); void *userData; ViewContext vc; int clipVerts; } *data = userData;
@ -1762,7 +1762,7 @@ static void mesh_obmode_foreachScreenVert__mapFunc(void *userData, int index, fl
data->func(data->userData, mv, s[0], s[1], index);
}
}
/*Jason*/
/* Radish */
void mesh_obmode_foreachScreenVert(ViewContext *vc, void (*func)(void *userData, MVert *mv, int x, int y, int index), void *userData, int clipVerts)
{
struct { void (*func)(void *userData, MVert *mv, int x, int y, int index); void *userData; ViewContext vc; int clipVerts; } data;
@ -1781,7 +1781,7 @@ void mesh_obmode_foreachScreenVert(ViewContext *vc, void (*func)(void *userData,
dm->release(dm);
}
/* Jason draw callback */
/* Radish draw callback */
static void drawSelectedVertices__mapFunc(void *userData, int index, float *co, float *no_f, short *no_s)
{
MVert *mv = userData;
@ -1800,7 +1800,7 @@ static void drawSelectedVertices__mapFunc(void *userData, int index, float *co,
glVertex3fv(co);
}
}
/* Jason */
/* Radish */
static void drawSelectedVertices(DerivedMesh *dm, Mesh *me) {
glBegin(GL_POINTS);
dm->foreachMappedVert(dm, drawSelectedVertices__mapFunc, me->mvert);
@ -2990,7 +2990,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
bglPolygonOffset(rv3d->dist, 0.0);
}
}
// Jason
/* Radish */
if(paint_vertsel_test(ob)) {
glColor3f(0.0f, 0.0f, 0.0f);
@ -6590,7 +6590,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
}
/* ***************** BACKBUF SEL (BBS) ********* */
/* Jason */
/* Radish */
static void bbs_obmode_mesh_verts__mapFunc(void *userData, int index, float *co, float *UNUSED(no_f), short *UNUSED(no_s))
{
struct {void* offset; MVert *mvert;} *data = userData;
@ -6602,7 +6602,7 @@ static void bbs_obmode_mesh_verts__mapFunc(void *userData, int index, float *co,
bglVertex3fv(co);
}
}
/* Jason */
/* Radish */
static void bbs_obmode_mesh_verts(Object *ob, DerivedMesh *dm, int offset)
{
struct {void* offset; struct MVert *mvert;} data;
@ -6714,7 +6714,7 @@ static int bbs_mesh_solid_hide__setDrawOpts(void *userData, int index, int *UNUS
return 0;
}
}
/* Jason */
/* Radish */
// must have called WM_set_framebuffer_index_color beforehand
static int bbs_mesh_solid_hide2__setDrawOpts(void *userData, int index, int *UNUSED(drawSmooth_r))
{

@ -371,7 +371,7 @@ static void view3d_main_area_init(wmWindowManager *wm, ARegion *ar)
keymap= WM_keymap_find(wm->defaultconf, "Face Mask", 0, 0);
WM_event_add_keymap_handler(&ar->handlers, keymap);
/* Jason */
/* Radish */
keymap= WM_keymap_find(wm->defaultconf, "Weight Paint Vertex Selection", 0, 0);
WM_event_add_keymap_handler(&ar->handlers, keymap);

@ -503,7 +503,7 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
if(ob->mode & (OB_MODE_TEXTURE_PAINT|OB_MODE_VERTEX_PAINT)) {
uiItemR(layout, &meshptr, "use_paint_mask", UI_ITEM_R_ICON_ONLY, "", ICON_NONE);
} else {
// Jason
/* Radish */
row= uiLayoutRow(layout, 1);
uiItemR(row, &meshptr, "use_paint_mask", UI_ITEM_R_ICON_ONLY, "", ICON_NONE);
uiItemR(row, &meshptr, "use_paint_mask_vertex", UI_ITEM_R_ICON_ONLY, "", ICON_NONE);

@ -54,7 +54,7 @@
#include "BLI_linklist.h"
#include "BLI_utildefines.h"
// Jason--vertex box select
/* Radish--vertex box select */
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
#include "BKE_global.h"
@ -203,7 +203,7 @@ static void EM_backbuf_checkAndSelectFaces(EditMesh *em, int select)
}
}
/* Jason */
/* Radish */
/* object mode, EM_ prefix is confusing here, rename? */
static void EM_backbuf_checkAndSelectVerts_obmode(Mesh *me, int select)
{
@ -254,7 +254,7 @@ static int view3d_selectable_data(bContext *C)
if (ob->mode & OB_MODE_SCULPT) {
return 0;
}
if (ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT) && !paint_facesel_test(ob) && !paint_vertsel_test(ob)) {//Jason
if (ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT) && !paint_facesel_test(ob) && !paint_vertsel_test(ob)) {//Radish
return 0;
}
}
@ -749,7 +749,7 @@ static void do_lasso_select_meta(ViewContext *vc, int mcords[][2], short moves,
}
}
}
/* Jason */
/* Radish */
int do_paintvert_box_select(ViewContext *vc, rcti *rect, int select, int extend)
{
Mesh *me;
@ -809,7 +809,7 @@ int do_paintvert_box_select(ViewContext *vc, rcti *rect, int select, int extend)
return OPERATOR_FINISHED;
}
/* Jason */
/* Radish */
static void do_lasso_select_paintvert(ViewContext *vc, int mcords[][2], short moves, short extend, short select)
{
Object *ob= vc->obact;
@ -1943,7 +1943,7 @@ void VIEW3D_OT_select_border(wmOperatorType *ot)
/* rna */
WM_operator_properties_gesture_border(ot, TRUE);
}
/*Jason*/
/* Radish */
/* much like facesel_face_pick()*/
/* returns 0 if not found, otherwise 1 */
static int vertsel_vert_pick(struct bContext *C, Mesh *me, const int mval[2], unsigned int *index, short rect)
@ -1973,7 +1973,7 @@ static int vertsel_vert_pick(struct bContext *C, Mesh *me, const int mval[2], un
return 1;
}
/* Jason */
/* Radish */
/* mouse selection in weight paint */
/* gets called via generic mouse select operator */
int mouse_wp_select(bContext *C, const int mval[2], short extend, Object *obact, Mesh* me)
@ -2039,7 +2039,7 @@ static int view3d_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
return PE_mouse_particles(C, event->mval, extend);
else if(obact && paint_facesel_test(obact))
retval = paintface_mouse_select(C, obact, event->mval, extend);
/*Jason*/
/* Radish */
else if (paint_vertsel_test(obact)) {
retval = mouse_wp_select(C, event->mval, extend, obact, obact->data);
} else {
@ -2168,7 +2168,7 @@ static void paint_facesel_circle_select(ViewContext *vc, int select, const int m
}
}
/* Jason */
/* Radish */
static void paint_vertsel_circle_select(ViewContext *vc, int select, const int mval[2], float rad)
{
Object *ob= vc->obact;
@ -2440,7 +2440,7 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op)
int select;
select= (gesture_mode==GESTURE_MODAL_SELECT);
// Jason
/* Radish */
if( CTX_data_edit_object(C) || paint_facesel_test(obact) || paint_vertsel_test(obact) ||
(obact && (obact->mode & (OB_MODE_PARTICLE_EDIT|OB_MODE_POSE))) )
{
@ -2460,7 +2460,7 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op)
else if(paint_facesel_test(obact)) {
paint_facesel_circle_select(&vc, select, mval, (float)radius);
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obact->data);
}/* Jason */
}/* Radish */
else if(paint_vertsel_test(obact)) {
paint_vertsel_circle_select(&vc, select, mval, (float)radius);
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obact->data);

@ -125,7 +125,7 @@ typedef struct TFace {
#define ME_EDIT_PAINT_MASK (1 << 3)
#define ME_EDIT_MIRROR_TOPO (1 << 4)
#define ME_EDIT_VERT_SEL (1 << 5)// Jason
#define ME_EDIT_VERT_SEL (1 << 5)/* Radish */
/* me->flag */
/* #define ME_ISDONE 1 */

@ -62,7 +62,7 @@ struct bGPdata;
typedef struct bDeformGroup {
struct bDeformGroup *next, *prev;
char name[32];
/* Jason was here: need this flag for locking weights */
/* Radish: need this flag for locking weights */
char flag, pad[7];
} bDeformGroup;
#define MAX_VGROUP_NAME 32

@ -763,7 +763,7 @@ typedef struct ToolSettings {
char auto_normalize; /*auto normalizing mode in wpaint*/
//Jason
//Radish
char multipaint; /* paint multiple bones in wpaint */
short sculpt_paint_settings; /* user preferences for sculpt and paint */

@ -90,7 +90,7 @@ void rna_Mesh_update_draw(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA
}
}
/* Jason */
/* Radish */
void rna_Mesh_update_vertmask(Main *bmain, Scene *scene, PointerRNA *ptr)
{
Mesh* me = ptr->data;
@ -99,7 +99,7 @@ void rna_Mesh_update_vertmask(Main *bmain, Scene *scene, PointerRNA *ptr)
}
rna_Mesh_update_draw(bmain, scene, ptr);
}
/* Jason */
/* Radish */
void rna_Mesh_update_facemask(Main *bmain, Scene *scene, PointerRNA *ptr)
{
Mesh* me = ptr->data;
@ -2095,7 +2095,7 @@ static void rna_def_mesh(BlenderRNA *brna)
RNA_def_property_ui_icon(prop, ICON_FACESEL_HLT, 0);
RNA_def_property_update(prop, 0, "rna_Mesh_update_facemask");
/* Jason */
/* Radish */
prop= RNA_def_property(srna, "use_paint_mask_vertex", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "editflag", ME_EDIT_VERT_SEL);
RNA_def_property_ui_text(prop, "Vertex Selection", "Vertex selection masking for painting (weight paint only)");

@ -1265,7 +1265,7 @@ static void rna_def_vertex_group(BlenderRNA *brna)
RNA_def_struct_name_property(srna, prop);
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_VertexGroup_name_set");
RNA_def_property_update(prop, NC_GEOM|ND_DATA|NA_RENAME, "rna_Object_internal_update_data"); /* update data because modifiers may use [#24761] */
/* Jason was here */
/* Radish */
prop= RNA_def_property(srna, "lock_weight", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_ui_text(prop, "", "Maintain the relative weights for the group");
RNA_def_property_boolean_sdna(prop, NULL, "flag", 0);

@ -1044,7 +1044,7 @@ static KeyingSet *rna_Scene_keying_set_new(Scene *sce, ReportList *reports, cons
}
}
/* Jason */
/* Radish */
/* note: without this, when Multi-Paint is activated/deactivated, the colors
* will not change right away when multiple bones are selected, this function