Patch by Martin Poirier: display normalized coordinates in image window, with
a few small modifications: - also display normalized coords while transforming - adapt step size & precision for button - moved option to 'View' menu Also made sure pixel snapping when transforming uv's is off by default.
This commit is contained in:
parent
08169d7fba
commit
ece2733c63
@ -455,8 +455,10 @@ typedef struct SpaceImaSel {
|
||||
#define SI_STICKYUVS 16
|
||||
#define SI_DRAWSHADOW 32
|
||||
#define SI_SELACTFACE 64
|
||||
#define SI_NOPIXELSNAP 128
|
||||
#define SI_DEPRECATED 128
|
||||
#define SI_LOCALSTICKY 256
|
||||
#define SI_COORDFLOATS 512
|
||||
#define SI_PIXELSNAP 1024
|
||||
|
||||
/* SpaceText flags (moved from DNA_text_types.h) */
|
||||
|
||||
|
@ -571,7 +571,7 @@ static void image_editvertex_buts(uiBlock *block)
|
||||
static float ocent[2];
|
||||
float cent[2]= {0.0, 0.0};
|
||||
int imx, imy;
|
||||
int i, nactive= 0;
|
||||
int i, nactive= 0, step, digits;
|
||||
Mesh *me;
|
||||
|
||||
if( is_uv_tface_editing_allowed_silent()==0 ) return;
|
||||
@ -614,32 +614,46 @@ static void image_editvertex_buts(uiBlock *block)
|
||||
|
||||
if(block) { // do the buttons
|
||||
if (nactive) {
|
||||
ocent[0]= (cent[0]*imx)/nactive;
|
||||
ocent[1]= (cent[1]*imy)/nactive;
|
||||
|
||||
uiDefBut(block, LABEL, 0, "UV Vertex:",10,55,302,19,0,0,0,0,0,"");
|
||||
if(nactive==1) {
|
||||
uiBlockBeginAlign(block);
|
||||
uiDefButF(block, NUM, B_TRANS_IMAGE, "Vertex X:", 10, 35, 290, 19, &ocent[0], -10*imx, 10.0*imx, 100, 0, "");
|
||||
uiDefButF(block, NUM, B_TRANS_IMAGE, "Vertex Y:", 10, 15, 290, 19, &ocent[1], -10*imy, 10.0*imy, 100, 0, "");
|
||||
uiBlockEndAlign(block);
|
||||
ocent[0]= cent[0]/nactive;
|
||||
ocent[1]= cent[1]/nactive;
|
||||
if (G.sima->flag & SI_COORDFLOATS) {
|
||||
step= 1;
|
||||
digits= 3;
|
||||
}
|
||||
else {
|
||||
uiBlockBeginAlign(block);
|
||||
uiDefButF(block, NUM, B_TRANS_IMAGE, "Median X:", 10, 35, 290, 19, &ocent[0], -10*imx, 10.0*imx, 100, 0, "");
|
||||
uiDefButF(block, NUM, B_TRANS_IMAGE, "Median Y:", 10, 15, 290, 19, &ocent[1], -10*imy, 10.0*imy, 100, 0, "");
|
||||
uiBlockEndAlign(block);
|
||||
ocent[0] *= imx;
|
||||
ocent[1] *= imy;
|
||||
step= 100;
|
||||
digits= 2;
|
||||
}
|
||||
|
||||
uiDefBut(block, LABEL, 0, "UV Vertex:",10,55,302,19,0,0,0,0,0,"");
|
||||
uiBlockBeginAlign(block);
|
||||
if(nactive==1) {
|
||||
uiDefButF(block, NUM, B_TRANS_IMAGE, "Vertex X:", 10, 35, 290, 19, &ocent[0], -10*imx, 10.0*imx, step, digits, "");
|
||||
uiDefButF(block, NUM, B_TRANS_IMAGE, "Vertex Y:", 10, 15, 290, 19, &ocent[1], -10*imy, 10.0*imy, step, digits, "");
|
||||
}
|
||||
else {
|
||||
uiDefButF(block, NUM, B_TRANS_IMAGE, "Median X:", 10, 35, 290, 19, &ocent[0], -10*imx, 10.0*imx, step, digits, "");
|
||||
uiDefButF(block, NUM, B_TRANS_IMAGE, "Median Y:", 10, 15, 290, 19, &ocent[1], -10*imy, 10.0*imy, step, digits, "");
|
||||
}
|
||||
uiBlockEndAlign(block);
|
||||
}
|
||||
}
|
||||
else { // apply event
|
||||
float delta[2];
|
||||
|
||||
cent[0]= (cent[0]*imx)/nactive;
|
||||
cent[1]= (cent[1]*imy)/nactive;
|
||||
cent[0]= cent[0]/nactive;
|
||||
cent[1]= cent[1]/nactive;
|
||||
|
||||
delta[0]= (ocent[0]-cent[0])/imx;
|
||||
delta[1]= (ocent[1]-cent[1])/imy;
|
||||
if (G.sima->flag & SI_COORDFLOATS) {
|
||||
delta[0]= ocent[0]-cent[0];
|
||||
delta[1]= ocent[1]-cent[1];
|
||||
}
|
||||
else {
|
||||
delta[0]= ocent[0]/imx - cent[0];
|
||||
delta[1]= ocent[1]/imy - cent[1];
|
||||
}
|
||||
|
||||
for (i=0; i<me->totface; i++) {
|
||||
MFace *mf= &((MFace*) me->mface)[i];
|
||||
|
@ -229,12 +229,8 @@ static void sima_pixelgrid(float *loc, float sx, float sy)
|
||||
{
|
||||
float y;
|
||||
float x;
|
||||
|
||||
if(G.sima->flag & SI_NOPIXELSNAP) {
|
||||
loc[0]= sx;
|
||||
loc[1]= sy;
|
||||
}
|
||||
else {
|
||||
|
||||
if(G.sima->flag & SI_PIXELSNAP) {
|
||||
if(G.sima->image && G.sima->image->ibuf) {
|
||||
x= G.sima->image->ibuf->x;
|
||||
y= G.sima->image->ibuf->y;
|
||||
@ -256,6 +252,10 @@ static void sima_pixelgrid(float *loc, float sx, float sy)
|
||||
loc[1]= sy;
|
||||
}
|
||||
}
|
||||
else {
|
||||
loc[0]= sx;
|
||||
loc[1]= sy;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -539,11 +539,17 @@ void transform_tface_uv(int mode, int context) // 2 args, for callback
|
||||
}
|
||||
}
|
||||
|
||||
ivec[0]= (vec[0]*xim);
|
||||
ivec[1]= (vec[1]*yim);
|
||||
|
||||
if(G.sima->flag & SI_BE_SQUARE) be_square_tface_uv(me);
|
||||
|
||||
|
||||
if (G.sima->flag & SI_COORDFLOATS) {
|
||||
ivec[0]= vec[0];
|
||||
ivec[1]= vec[1];
|
||||
}
|
||||
else {
|
||||
ivec[0]= (vec[0]*xim);
|
||||
ivec[1]= (vec[1]*yim);
|
||||
}
|
||||
|
||||
sprintf(str, "X: %.4f Y: %.4f ", ivec[0], ivec[1]);
|
||||
headerprint(str);
|
||||
}
|
||||
|
@ -444,6 +444,10 @@ static void do_image_viewmenu(void *arg, int event)
|
||||
break;
|
||||
case 9:
|
||||
image_viewcentre();
|
||||
case 10: /* Display Normalized Coordinates */
|
||||
G.sima->flag ^= SI_COORDFLOATS;
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
@ -460,12 +464,13 @@ static uiBlock *image_viewmenu(void *arg_unused)
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_MENU_PANEL, "View Properties...", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_MENU_PANEL, "View Paint Tool...", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 8, "");
|
||||
|
||||
|
||||
if(G.sima->flag & SI_COORDFLOATS) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Display Normalized Coordinates|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 10, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Display Normalized Coordinates|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 10, "");
|
||||
if(G.f & G_DRAWFACES) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Draw Faces", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Draw Faces|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
|
||||
if(G.sima->flag & SI_DRAWSHADOW) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Draw Shadow Mesh", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Draw Shadow Mesh|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
|
||||
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiDefIconTextBlockBut(block, image_view_viewnavmenu, NULL, ICON_RIGHTARROW_THIN, "View Navigation", 0, yco-=20, 120, 19, "");
|
||||
|
||||
@ -956,8 +961,7 @@ static void do_image_uvsmenu(void *arg, int event)
|
||||
G.scene->proportional= 1;
|
||||
break;
|
||||
case 7: /* UVs Snap to Pixel */
|
||||
if(G.sima->flag & SI_NOPIXELSNAP) G.sima->flag &= ~SI_NOPIXELSNAP;
|
||||
else G.sima->flag |= SI_NOPIXELSNAP;
|
||||
G.sima->flag ^= SI_PIXELSNAP;
|
||||
break;
|
||||
case 8:
|
||||
pin_tface_uv(1);
|
||||
@ -983,8 +987,8 @@ static uiBlock *image_uvsmenu(void *arg_unused)
|
||||
|
||||
// uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Transform Properties...|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
|
||||
// uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
if(G.sima->flag & SI_NOPIXELSNAP) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Snap to Pixels|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Snap to Pixels|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
|
||||
if(G.sima->flag & SI_PIXELSNAP) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Snap to Pixels|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Snap to Pixels|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
|
||||
|
||||
if(G.sima->flag & SI_BE_SQUARE) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Quads Constrained Rectangular|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Quads Constrained Rectangular|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
|
||||
|
Loading…
Reference in New Issue
Block a user