forked from bartvdbraak/blender
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:
parent
05c6d22af1
commit
2e7144bed8
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user