Removed my earlier vertex paint vertex select--someone is changing it drastically in Salad (dynamic paint, I think), so I shouldn't have messed with it.

This commit is contained in:
Jason Hays 2011-07-21 18:46:59 +00:00
parent 05c6d22af1
commit 2e7144bed8
3 changed files with 12 additions and 52 deletions

@ -99,7 +99,7 @@ int paint_facesel_test(Object *ob)
/* Jason */
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_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT)));
return (ob && ob->type==OB_MESH && ob->data && (((Mesh *)ob->data)->editflag & ME_EDIT_VERT_SEL) && (ob->mode & OB_MODE_WEIGHT_PAINT));
}
void paint_init(Paint *p, const char col[3])
{

@ -361,9 +361,7 @@ void vpaint_fill(Object *ob, unsigned int paintcol)
Mesh *me;
MFace *mf;
unsigned int *mcol;
int i, selected, selectedVerts;//Jason
// Jason
MVert *mv;
int i, selected;
me= get_mesh(ob);
if(me==NULL || me->totface==0) return;
@ -372,29 +370,15 @@ void vpaint_fill(Object *ob, unsigned int paintcol)
make_vertexcol(ob);
selected= (me->editflag & ME_EDIT_PAINT_MASK);
// Jason
selectedVerts = (me->editflag & ME_EDIT_VERT_SEL);
mv = me->mvert;
mf = me->mface;
mcol = (unsigned int*)me->mcol;
for (i = 0; i < me->totface; i++, mf++, mcol+=4) {
if (!selected || mf->flag & ME_FACE_SEL || selectedVerts) {
if(selectedVerts) {
if(((mv+mf->v1)->flag & SELECT))
mcol[0] = paintcol;
if(((mv+mf->v2)->flag & SELECT))
mcol[1] = paintcol;
if(((mv+mf->v3)->flag & SELECT))
mcol[2] = paintcol;
if(mf->v4 && ((mv+mf->v4)->flag & SELECT))
mcol[3] = paintcol;
} else {
mcol[0] = paintcol;
mcol[1] = paintcol;
mcol[2] = paintcol;
mcol[3] = paintcol;
}
if (!selected || mf->flag & ME_FACE_SEL) {
mcol[0] = paintcol;
mcol[1] = paintcol;
mcol[2] = paintcol;
mcol[3] = paintcol;
}
}
@ -2358,33 +2342,15 @@ static void vpaint_paint_face(VPaint *vp, VPaintData *vpd, Object *ob, int index
Brush *brush = paint_brush(&vp->paint);
Mesh *me = get_mesh(ob);
MFace *mface= ((MFace*)me->mface) + index;
// Jason
MVert *mv = me->mvert;
int selectedVerts = (me->editflag & ME_EDIT_VERT_SEL);
char *m;
unsigned int *mcol= ((unsigned int*)me->mcol) + 4*index;
unsigned int *mcolorig= ((unsigned int*)vp->vpaint_prev) + 4*index;
float alpha;
int i;
// Jason
if(selectedVerts) {
m = MEM_mallocN(sizeof(char)*4, "selectedVerts");
m[0] = ((mv+mface->v1)->flag & SELECT);
m[1] = ((mv+mface->v2)->flag & SELECT);
m[2] = ((mv+mface->v3)->flag & SELECT);
m[3] = (mface->v4 && ((mv+mface->v4)->flag & SELECT));
}
if((vp->flag & VP_COLINDEX && mface->mat_nr!=ob->actcol-1) ||
((me->editflag & ME_EDIT_PAINT_MASK) && !(mface->flag & ME_FACE_SEL))
|| (selectedVerts && !(m[0] || m[1] || m[2] || m[3]))) {// Jason
if(selectedVerts) {
MEM_freeN(m);
}
((me->editflag & ME_EDIT_PAINT_MASK) && !(mface->flag & ME_FACE_SEL)))
return;
}
if(brush->vertexpaint_tool==VP_BLUR) {
unsigned int fcol1= mcol_blend( mcol[0], mcol[1], 128);
@ -2399,15 +2365,9 @@ static void vpaint_paint_face(VPaint *vp, VPaintData *vpd, Object *ob, int index
}
for(i = 0; i < (mface->v4 ? 4 : 3); ++i) {
if(!selectedVerts || m[i]) {
alpha= calc_vp_alpha_dl(vp, vc, vpd->vpimat, vpd->vertexcosnos+6*(&mface->v1)[i], mval, pressure);
if(alpha)
vpaint_blend(vp, mcol+i, mcolorig+i, vpd->paintcol, (int)(alpha*255.0f));
}
}
// Jason
if(selectedVerts) {
MEM_freeN(m);
alpha= calc_vp_alpha_dl(vp, vc, vpd->vpimat, vpd->vertexcosnos+6*(&mface->v1)[i], mval, pressure);
if(alpha)
vpaint_blend(vp, mcol+i, mcolorig+i, vpd->paintcol, (int)(alpha*255.0f));
}
}

@ -496,7 +496,7 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
PointerRNA meshptr;
RNA_pointer_create(&ob->id, &RNA_Mesh, ob->data, &meshptr);
if(ob->mode & OB_MODE_TEXTURE_PAINT) {
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