svn merge -r 12382:12391 https://svn.blender.org/svnroot/bf-blender/trunk/blender
This commit is contained in:
@@ -175,6 +175,7 @@ typedef struct Global {
|
||||
#define G_DRAWCREASES (1 << 19)
|
||||
#define G_DRAWSEAMS (1 << 20)
|
||||
#define G_HIDDENEDGES (1 << 21)
|
||||
#define G_HIDDENHANDLES (1 << 22) /* used for curves only */
|
||||
|
||||
|
||||
/* Measurement info Drawing */
|
||||
|
||||
@@ -208,6 +208,9 @@ void IK_FreeSolver(IK_Solver *solver) {};
|
||||
|
||||
void IK_SolverAddGoal(IK_Solver *solver, IK_Segment *tip, float goal[3], float weight) {}
|
||||
void IK_SolverAddGoalOrientation(IK_Solver *solver, IK_Segment *tip, float goal[][3], float weight) {}
|
||||
void IK_SolverSetPoleVectorConstraint(IK_Solver *solver, IK_Segment *tip, float goal[3], float polegoal[3], float poleangle, int getangle) {}
|
||||
float IK_SolverGetPoleAngle(IK_Solver *solver) {}
|
||||
|
||||
int IK_Solve(IK_Solver *solver, float tolerance, int max_iterations) { return 0; }
|
||||
|
||||
/* exotic.c */
|
||||
|
||||
@@ -254,7 +254,7 @@
|
||||
#define REDRAWNODE 0x4038
|
||||
#define RECALC_COMPOSITE 0x4039
|
||||
#define REDRAWMARKER 0x4040 /* all views that display markers */
|
||||
|
||||
#define REDRAWVIEW3D_IMAGE 0x4041
|
||||
|
||||
#endif /* !__MYDEVICE_H__ */
|
||||
|
||||
|
||||
@@ -308,6 +308,9 @@ extern Object workob;
|
||||
#define OB_SHADED 4
|
||||
#define OB_TEXTURE 5
|
||||
|
||||
/* this condition has been made more complex since editmode can draw textures */
|
||||
#define CHECK_OB_DRAWTEXTURE(vd, dt) ((vd->drawtype==OB_TEXTURE && dt>OB_SOLID) || (vd->drawtype==OB_SOLID && vd->flag2 & V3D_SOLID_TEX))
|
||||
|
||||
/* dtx: flags, char! */
|
||||
#define OB_AXIS 2
|
||||
#define OB_TEXSPACE 4
|
||||
|
||||
@@ -427,7 +427,7 @@ typedef struct Scene {
|
||||
|
||||
/* editmode stuff */
|
||||
float editbutsize; /* size of normals */
|
||||
short selectmode;
|
||||
short selectmode; /* for mesh only! */
|
||||
short proportional, prop_mode;
|
||||
short automerge, pad5, pad6, pad7;
|
||||
|
||||
@@ -603,8 +603,6 @@ typedef struct Scene {
|
||||
#define SCE_SELECT_EDGE 2
|
||||
#define SCE_SELECT_FACE 4
|
||||
|
||||
#define SCE_SELECT_CU_HANDLES_HIDE 8 /* for curve, when flagged hide handles */
|
||||
|
||||
/* sce->recalc (now in use by previewrender) */
|
||||
#define SCE_PRV_CHANGED 1
|
||||
|
||||
|
||||
@@ -2960,7 +2960,7 @@ static void editing_panel_curve_tools1(Object *ob, Curve *cu)
|
||||
|
||||
uiBlockBeginAlign(block);
|
||||
uiDefButF(block, NUM, REDRAWVIEW3D, "NSize:", 400, 60, 150, 19, &G.scene->editbutsize, 0.001, 1.0, 10, 0, "Normal size for drawing");
|
||||
uiDefButBitI(block, TOGN, SCE_SELECT_CU_HANDLES_HIDE, REDRAWVIEW3D, "Draw Handles", 400, 40, 150, 19, &G.scene->selectmode, 0, 0, 0, 0, "Draw curve handles in 3D view");
|
||||
uiDefButBitI(block, TOGN, G_HIDDENHANDLES, REDRAWVIEW3D, "Draw Handles", 400, 40, 150, 19, &G.f, 0, 0, 0, 0, "Draw curve handles in 3D view");
|
||||
uiBlockEndAlign(block);
|
||||
|
||||
if(G.obedit) {
|
||||
@@ -4397,7 +4397,7 @@ static void editing_panel_mesh_tools1(Object *ob, Mesh *me)
|
||||
uiBlockEndAlign(block);
|
||||
|
||||
uiBlockBeginAlign(block);
|
||||
uiDefButBitI(block, TOG, G_DRAWFACES, REDRAWVIEW3D|REDRAWIMAGE, "Draw Faces", 955,88,150,19, &G.f, 0, 0, 0, 0, "Displays all faces as shades");
|
||||
uiDefButBitI(block, TOG, G_DRAWFACES, REDRAWVIEW3D_IMAGE, "Draw Faces", 955,88,150,19, &G.f, 0, 0, 0, 0, "Displays all faces as shades in the 3d view and UV editor");
|
||||
uiDefButBitI(block, TOG, G_DRAWEDGES, REDRAWVIEW3D, "Draw Edges", 955,66,150,19, &G.f, 0, 0, 0, 0, "Displays selected edges using hilights");
|
||||
uiDefButBitI(block, TOG, G_DRAWCREASES, REDRAWVIEW3D, "Draw Creases", 955,44,150,19, &G.f, 0, 0, 0, 0, "Displays creases created for subsurf weighting");
|
||||
uiDefButBitI(block, TOG, G_DRAWSEAMS, REDRAWVIEW3D, "Draw Seams", 955,22,150,19, &G.f, 0, 0, 0, 0, "Displays UV unwrapping seams");
|
||||
@@ -5337,9 +5337,9 @@ static void editing_panel_mesh_texface(void)
|
||||
|
||||
uiBlockBeginAlign(block);
|
||||
uiBlockSetCol(block, TH_BUT_SETTING1);
|
||||
uiDefButC(block, ROW, REDRAWVIEW3D, "Opaque", 600,80,60,19, &tf->transp, 2.0, 0.0, 0, 0, "Render color of textured face as color");
|
||||
uiDefButC(block, ROW, REDRAWVIEW3D, "Add", 660,80,60,19, &tf->transp, 2.0, 1.0, 0, 0, "Render face transparent and add color of face");
|
||||
uiDefButC(block, ROW, REDRAWVIEW3D, "Alpha", 720,80,60,19, &tf->transp, 2.0, 2.0, 0, 0, "Render polygon transparent, depending on alpha channel of the texture");
|
||||
uiDefButC(block, ROW, REDRAWVIEW3D, "Opaque", 600,80,60,19, &tf->transp, 2.0, (float)TF_SOLID,0, 0, "Render color of textured face as color");
|
||||
uiDefButC(block, ROW, REDRAWVIEW3D, "Add", 660,80,60,19, &tf->transp, 2.0, (float)TF_ADD, 0, 0, "Render face transparent and add color of face");
|
||||
uiDefButC(block, ROW, REDRAWVIEW3D, "Alpha", 720,80,60,19, &tf->transp, 2.0, (float)TF_ALPHA,0, 0, "Render polygon transparent, depending on alpha channel of the texture");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -96,6 +96,7 @@
|
||||
#include "BIF_screen.h"
|
||||
#include "BIF_toolbox.h"
|
||||
#include "BIF_transform.h"
|
||||
#include "BIF_editmesh.h"
|
||||
|
||||
#include "BSE_drawipo.h"
|
||||
#include "BSE_drawview.h"
|
||||
@@ -243,31 +244,33 @@ void calc_image_view(SpaceImage *sima, char mode)
|
||||
void what_image(SpaceImage *sima)
|
||||
{
|
||||
MTFace *activetf;
|
||||
|
||||
|
||||
if( (sima->mode!=SI_TEXTURE) ||
|
||||
(sima->image && sima->image->source==IMA_SRC_VIEWER) ||
|
||||
(G.obedit != OBACT)
|
||||
(G.obedit != OBACT) ||
|
||||
(sima->pin)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* viewer overrides faceselect */
|
||||
if (!sima->pin)
|
||||
/* viewer overrides uv editmode */
|
||||
if (EM_texFaceCheck()) {
|
||||
sima->image= NULL;
|
||||
|
||||
activetf = get_active_mtface(NULL, NULL, 1); /* partially selected face is ok */
|
||||
|
||||
if(activetf && activetf->mode & TF_TEX) {
|
||||
if (!sima->pin)
|
||||
sima->image= activetf->tpage;
|
||||
|
||||
if(sima->flag & SI_EDITTILE);
|
||||
else sima->curtile= activetf->tile;
|
||||
activetf = get_active_mtface(NULL, NULL, 1); /* partially selected face is ok */
|
||||
|
||||
if(sima->image) {
|
||||
if(activetf->mode & TF_TILES)
|
||||
sima->image->tpageflag |= IMA_TILES;
|
||||
else sima->image->tpageflag &= ~IMA_TILES;
|
||||
if(activetf && activetf->mode & TF_TEX) {
|
||||
if (!sima->pin)
|
||||
sima->image= activetf->tpage;
|
||||
|
||||
if(sima->flag & SI_EDITTILE);
|
||||
else sima->curtile= activetf->tile;
|
||||
|
||||
if(sima->image) {
|
||||
if(activetf->mode & TF_TILES)
|
||||
sima->image->tpageflag |= IMA_TILES;
|
||||
else sima->image->tpageflag &= ~IMA_TILES;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -293,32 +296,45 @@ void image_changed(SpaceImage *sima, Image *image)
|
||||
MTFace *tface;
|
||||
EditMesh *em = G.editMesh;
|
||||
EditFace *efa;
|
||||
|
||||
if(image==NULL)
|
||||
sima->flag &= ~SI_DRAWTOOL;
|
||||
ImBuf *ibuf = NULL;
|
||||
short change = 0;
|
||||
|
||||
if(sima->mode!=SI_TEXTURE || !EM_texFaceCheck())
|
||||
if(image==NULL) {
|
||||
sima->flag &= ~SI_DRAWTOOL;
|
||||
} else {
|
||||
ibuf = BKE_image_get_ibuf(image, NULL);
|
||||
}
|
||||
|
||||
if(sima->mode!=SI_TEXTURE)
|
||||
return;
|
||||
|
||||
|
||||
/* skip assigning these procedural images... */
|
||||
if(image && (image->type==IMA_TYPE_R_RESULT || image->type==IMA_TYPE_COMPOSITE))
|
||||
if(image && (image->type==IMA_TYPE_R_RESULT || image->type==IMA_TYPE_COMPOSITE)) {;
|
||||
return;
|
||||
|
||||
for (efa= em->faces.first; efa; efa= efa->next) {
|
||||
tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
|
||||
if (efa->h==0 && efa->f & SELECT) {
|
||||
if (image) {
|
||||
tface->tpage= image;
|
||||
tface->mode |= TF_TEX;
|
||||
|
||||
if(image->tpageflag & IMA_TILES) tface->mode |= TF_TILES;
|
||||
else tface->mode &= ~TF_TILES;
|
||||
|
||||
if(image->id.us==0) id_us_plus(&image->id);
|
||||
else id_lib_extern(&image->id);
|
||||
} else {
|
||||
tface->tpage= NULL;
|
||||
tface->mode &= ~TF_TEX;
|
||||
} else if (EM_texFaceCheck()) {
|
||||
for (efa= em->faces.first; efa; efa= efa->next) {
|
||||
tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
|
||||
if (efa->h==0 && efa->f & SELECT) {
|
||||
if (image) {
|
||||
tface->tpage= image;
|
||||
tface->mode |= TF_TEX;
|
||||
|
||||
if(image->tpageflag & IMA_TILES) tface->mode |= TF_TILES;
|
||||
else tface->mode &= ~TF_TILES;
|
||||
|
||||
if(image->id.us==0) id_us_plus(&image->id);
|
||||
else id_lib_extern(&image->id);
|
||||
|
||||
if (tface->transp==TF_ADD) {} /* they obviously know what they are doing! - leave as is */
|
||||
else if (ibuf && ibuf->depth == 32) tface->transp = TF_ALPHA;
|
||||
else tface->transp = TF_SOLID;
|
||||
|
||||
} else {
|
||||
tface->tpage= NULL;
|
||||
tface->mode &= ~TF_TEX;
|
||||
tface->transp = TF_SOLID;
|
||||
}
|
||||
change = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -326,7 +342,9 @@ void image_changed(SpaceImage *sima, Image *image)
|
||||
* to check if the face is displayed in UV-localview */
|
||||
sima->image = image;
|
||||
|
||||
object_uvs_changed(OBACT);
|
||||
if (change)
|
||||
object_uvs_changed(OBACT);
|
||||
|
||||
allqueue(REDRAWBUTSEDIT, 0);
|
||||
}
|
||||
/*
|
||||
@@ -1688,44 +1706,28 @@ static void imagespace_grid(SpaceImage *sima)
|
||||
|
||||
static void sima_draw_alpha_backdrop(SpaceImage *sima, float x1, float y1, float xsize, float ysize)
|
||||
{
|
||||
float tile= sima->zoom*15.0f;
|
||||
float x, y, maxx, maxy;
|
||||
GLubyte checker_stipple[32*32/8] =
|
||||
{
|
||||
255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0, \
|
||||
255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0, \
|
||||
255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0, \
|
||||
255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0, \
|
||||
0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255, \
|
||||
0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255, \
|
||||
0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255, \
|
||||
0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255, \
|
||||
};
|
||||
|
||||
glColor3ub(100, 100, 100);
|
||||
glRectf(x1, y1, x1 + sima->zoom*xsize, y1 + sima->zoom*ysize);
|
||||
glColor3ub(160, 160, 160);
|
||||
|
||||
maxx= x1+sima->zoom*xsize;
|
||||
maxy= y1+sima->zoom*ysize;
|
||||
|
||||
for(x=0; x<xsize; x+=30) {
|
||||
for(y=0; y<ysize; y+=30) {
|
||||
float fx= x1 + sima->zoom*x;
|
||||
float fy= y1 + sima->zoom*y;
|
||||
float tilex= tile, tiley= tile;
|
||||
|
||||
if(fx+tile > maxx)
|
||||
tilex= maxx-fx;
|
||||
if(fy+tile > maxy)
|
||||
tiley= maxy-fy;
|
||||
|
||||
glRectf(fx, fy, fx + tilex, fy + tiley);
|
||||
}
|
||||
}
|
||||
for(x=15; x<xsize; x+=30) {
|
||||
for(y=15; y<ysize; y+=30) {
|
||||
float fx= x1 + sima->zoom*x;
|
||||
float fy= y1 + sima->zoom*y;
|
||||
float tilex= tile, tiley= tile;
|
||||
|
||||
if(fx+tile > maxx)
|
||||
tilex= maxx-fx;
|
||||
if(fy+tile > maxy)
|
||||
tiley= maxy-fy;
|
||||
|
||||
glRectf(fx, fy, fx + tilex, fy + tiley);
|
||||
}
|
||||
}
|
||||
glEnable(GL_POLYGON_STIPPLE);
|
||||
glPolygonStipple(checker_stipple);
|
||||
glRectf(x1, y1, x1 + sima->zoom*xsize, y1 + sima->zoom*ysize);
|
||||
glEnd();
|
||||
glDisable(GL_POLYGON_STIPPLE);
|
||||
return;
|
||||
}
|
||||
|
||||
static void sima_draw_alpha_pixels(float x1, float y1, int rectx, int recty, unsigned int *recti)
|
||||
|
||||
@@ -222,7 +222,7 @@ int set_tpage(MTFace *tface)
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
glDisable(GL_TEXTURE_GEN_S);
|
||||
glDisable(GL_TEXTURE_GEN_T);
|
||||
|
||||
glDisable ( GL_ALPHA_TEST );
|
||||
return 0;
|
||||
}
|
||||
lasttface= tface;
|
||||
@@ -744,7 +744,7 @@ static void draw_tfaces3D(Object *ob, Mesh *me, DerivedMesh *dm)
|
||||
glLineWidth(1);
|
||||
}
|
||||
|
||||
/* Draw Selected Faces */
|
||||
/* Draw Selected Faces */
|
||||
if(G.f & G_DRAWFACES) {
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
@@ -960,7 +960,6 @@ static void draw_textured_begin(Object *ob)
|
||||
Gtexdraw.istex = istex;
|
||||
memcpy(Gtexdraw.obcol, obcol, sizeof(obcol));
|
||||
set_draw_settings_cached(1, 0, 0, Gtexdraw.islit, 0, 0, 0);
|
||||
glDisable ( GL_ALPHA_TEST );
|
||||
glShadeModel(GL_SMOOTH);
|
||||
}
|
||||
|
||||
|
||||
@@ -1357,7 +1357,7 @@ void nurbs_foreachScreenVert(void (*func)(void *userData, Nurb *nu, BPoint *bp,
|
||||
BezTriple *bezt = &nu->bezt[i];
|
||||
|
||||
if(bezt->hide==0) {
|
||||
if (G.scene->selectmode & SCE_SELECT_CU_HANDLES_HIDE) {
|
||||
if (G.f & G_HIDDENHANDLES) {
|
||||
view3d_project_short_clip(curarea, bezt->vec[1], s, pmat, vmat);
|
||||
func(userData, nu, NULL, bezt, 1, s[0], s[1]);
|
||||
} else {
|
||||
@@ -2026,9 +2026,7 @@ static void draw_em_fancy(Object *ob, EditMesh *em, DerivedMesh *cageDM, Derived
|
||||
EM_init_index_arrays(1, 1, 1);
|
||||
|
||||
if(dt>OB_WIRE) {
|
||||
if( (G.vd->drawtype==OB_TEXTURE && dt>OB_SOLID) ||
|
||||
(G.vd->drawtype==OB_SOLID && G.vd->flag2 & V3D_SOLID_TEX)
|
||||
) {
|
||||
if( CHECK_OB_DRAWTEXTURE(G.vd, dt) ) {
|
||||
draw_mesh_textured(ob, finalDM, 0);
|
||||
} else {
|
||||
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, me->flag & ME_TWOSIDED);
|
||||
@@ -2066,6 +2064,10 @@ static void draw_em_fancy(Object *ob, EditMesh *em, DerivedMesh *cageDM, Derived
|
||||
glEnable(GL_BLEND);
|
||||
glDepthMask(0); // disable write in zbuffer, needed for nice transp
|
||||
|
||||
/* dont draw unselected faces, only selected, this is MUCH nicer when texturing */
|
||||
if CHECK_OB_DRAWTEXTURE(G.vd, dt)
|
||||
col1[3] = 0;
|
||||
|
||||
draw_dm_faces_sel(cageDM, col1, col2, col3, efa_act);
|
||||
|
||||
glDisable(GL_BLEND);
|
||||
@@ -2089,10 +2091,7 @@ static void draw_em_fancy(Object *ob, EditMesh *em, DerivedMesh *cageDM, Derived
|
||||
}
|
||||
|
||||
/* here starts all fancy draw-extra over */
|
||||
if( (G.f & G_DRAWEDGES)==0 &&
|
||||
((G.vd->drawtype==OB_TEXTURE && dt>OB_SOLID) ||
|
||||
(G.vd->drawtype==OB_SOLID && G.vd->flag2 & V3D_SOLID_TEX))
|
||||
) {
|
||||
if((G.f & G_DRAWEDGES)==0 && CHECK_OB_DRAWTEXTURE(G.vd, dt)) {
|
||||
/* we are drawing textures and 'G_DRAWEDGES' is disabled, dont draw any edges */
|
||||
|
||||
/* only draw selected edges otherwise there is no way of telling if a face is selected */
|
||||
@@ -2242,8 +2241,7 @@ static void draw_mesh_fancy(Base *base, int dt, int flag)
|
||||
draw_wire = 1;
|
||||
}
|
||||
else if( (ob==OBACT && (G.f & G_TEXTUREPAINT || FACESEL_PAINT_TEST)) ||
|
||||
(G.vd->drawtype==OB_TEXTURE && dt>OB_SOLID) ||
|
||||
(G.vd->drawtype==OB_SOLID && G.vd->flag2 & V3D_SOLID_TEX))
|
||||
CHECK_OB_DRAWTEXTURE(G.vd, dt))
|
||||
{
|
||||
int faceselect= (ob==OBACT && FACESEL_PAINT_TEST);
|
||||
|
||||
@@ -2968,7 +2966,7 @@ static void tekenhandlesN(Nurb *nu, short sel)
|
||||
unsigned int *col;
|
||||
int a;
|
||||
|
||||
if(nu->hide || (G.scene->selectmode & SCE_SELECT_CU_HANDLES_HIDE)) return;
|
||||
if(nu->hide || (G.f & G_HIDDENHANDLES)) return;
|
||||
|
||||
glBegin(GL_LINES);
|
||||
|
||||
@@ -3035,7 +3033,7 @@ static void tekenvertsN(Nurb *nu, short sel)
|
||||
a= nu->pntsu;
|
||||
while(a--) {
|
||||
if(bezt->hide==0) {
|
||||
if (G.scene->selectmode & SCE_SELECT_CU_HANDLES_HIDE) {
|
||||
if (G.f & G_HIDDENHANDLES) {
|
||||
if((bezt->f2 & 1)==sel) bglVertex3fv(bezt->vec[1]);
|
||||
} else {
|
||||
if((bezt->f1 & 1)==sel) bglVertex3fv(bezt->vec[0]);
|
||||
|
||||
@@ -3440,6 +3440,7 @@ void Face_Menu() {
|
||||
flip_editnormals();
|
||||
DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA);
|
||||
BIF_undo_push("Flip Normals");
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
case 2:
|
||||
bevel_menu();
|
||||
|
||||
@@ -533,12 +533,17 @@ static void do_lasso_select_curve__doSelect(void *userData, Nurb *nu, BPoint *bp
|
||||
if (bp) {
|
||||
bp->f1 = data->select?(bp->f1|1):(bp->f1&~1);
|
||||
} else {
|
||||
if (beztindex==0) {
|
||||
bezt->f1 = data->select?(bezt->f1|1):(bezt->f1&~1);
|
||||
} else if (beztindex==1) {
|
||||
bezt->f2 = data->select?(bezt->f2|1):(bezt->f2&~1);
|
||||
if (G.f & G_HIDDENHANDLES) {
|
||||
/* can only be beztindex==0 here since handles are hidden */
|
||||
bezt->f1 = bezt->f2 = bezt->f3 = data->select?(bezt->f1|1):(bezt->f1&~1);
|
||||
} else {
|
||||
bezt->f3 = data->select?(bezt->f3|1):(bezt->f3&~1);
|
||||
if (beztindex==0) {
|
||||
bezt->f1 = data->select?(bezt->f1|1):(bezt->f1&~1);
|
||||
} else if (beztindex==1) {
|
||||
bezt->f2 = data->select?(bezt->f2|1):(bezt->f2&~1);
|
||||
} else {
|
||||
bezt->f3 = data->select?(bezt->f3|1):(bezt->f3&~1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1602,12 +1607,17 @@ static void do_nurbs_box_select__doSelect(void *userData, Nurb *nu, BPoint *bp,
|
||||
if (bp) {
|
||||
bp->f1 = data->select?(bp->f1|1):(bp->f1&~1);
|
||||
} else {
|
||||
if (beztindex==0) {
|
||||
bezt->f1 = data->select?(bezt->f1|1):(bezt->f1&~1);
|
||||
} else if (beztindex==1) {
|
||||
bezt->f2 = data->select?(bezt->f2|1):(bezt->f2&~1);
|
||||
if (G.f & G_HIDDENHANDLES) {
|
||||
/* can only be beztindex==0 here since handles are hidden */
|
||||
bezt->f1 = bezt->f2 = bezt->f3 = data->select?(bezt->f1|1):(bezt->f1&~1);
|
||||
} else {
|
||||
bezt->f3 = data->select?(bezt->f3|1):(bezt->f3&~1);
|
||||
if (beztindex==0) {
|
||||
bezt->f1 = data->select?(bezt->f1|1):(bezt->f1&~1);
|
||||
} else if (beztindex==1) {
|
||||
bezt->f2 = data->select?(bezt->f2|1):(bezt->f2&~1);
|
||||
} else {
|
||||
bezt->f3 = data->select?(bezt->f3|1):(bezt->f3&~1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1848,7 +1848,7 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
fill_mesh();
|
||||
else if(G.qual==LR_ALTKEY)
|
||||
beauty_fill();
|
||||
else if(G.qual & (LR_CTRLKEY|LR_SHIFTKEY))
|
||||
else if(G.qual==(LR_CTRLKEY|LR_SHIFTKEY))
|
||||
edge_flip();
|
||||
else if (G.qual==0)
|
||||
addedgeface_mesh();
|
||||
@@ -6036,6 +6036,12 @@ void allqueue(unsigned short event, short val)
|
||||
}
|
||||
}
|
||||
break;
|
||||
case REDRAWVIEW3D_IMAGE:
|
||||
if(sa->spacetype==SPACE_VIEW3D || sa->spacetype==SPACE_IMAGE) {
|
||||
scrarea_queue_winredraw(sa);
|
||||
if(val) scrarea_queue_headredraw(sa);
|
||||
}
|
||||
break;
|
||||
case REDRAWVIEWCAM:
|
||||
if(sa->spacetype==SPACE_VIEW3D) {
|
||||
v3d= sa->spacedata.first;
|
||||
|
||||
Reference in New Issue
Block a user