forked from bartvdbraak/blender
Patch #4896, submitted by Juho Vepsäläinen (bebraw):
Allows "Degr" field in Mesh tools accept negative and positive float values from range [-360, 360].
This commit is contained in:
parent
c1b05cace9
commit
56a12a30c5
@ -197,7 +197,7 @@ extern void esubdivideflag(int flag, float rad, int beauty, int numcuts, int sel
|
|||||||
extern void extrude_mesh(void);
|
extern void extrude_mesh(void);
|
||||||
extern void split_mesh(void);
|
extern void split_mesh(void);
|
||||||
extern void extrude_repeat_mesh(int steps, float offs);
|
extern void extrude_repeat_mesh(int steps, float offs);
|
||||||
extern void spin_mesh(int steps,int degr,float *dvec, int mode);
|
extern void spin_mesh(int steps,float degr,float *dvec, int mode);
|
||||||
extern void screw_mesh(int steps,int turns);
|
extern void screw_mesh(int steps,int turns);
|
||||||
extern void delete_mesh(void);
|
extern void delete_mesh(void);
|
||||||
extern void beauty_fill(void);
|
extern void beauty_fill(void);
|
||||||
@ -228,4 +228,3 @@ void pathselect(void);
|
|||||||
void loop_to_region(void);
|
void loop_to_region(void);
|
||||||
void region_to_loop(void);
|
void region_to_loop(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -323,12 +323,10 @@ typedef struct ToolSettings {
|
|||||||
short cornertype;
|
short cornertype;
|
||||||
short editbutflag;
|
short editbutflag;
|
||||||
/* Extrude Tools */
|
/* Extrude Tools */
|
||||||
short degr;
|
float degr;
|
||||||
short step;
|
short step;
|
||||||
short turn;
|
short turn;
|
||||||
|
|
||||||
short pad1;
|
|
||||||
|
|
||||||
float extr_offs;
|
float extr_offs;
|
||||||
float doublimit;
|
float doublimit;
|
||||||
|
|
||||||
@ -643,4 +641,3 @@ typedef struct Scene {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -3698,11 +3698,11 @@ static void editing_panel_mesh_tools(Object *ob, Mesh *me)
|
|||||||
uiDefBut(block, BUT,B_SPIN, "Spin", 110,75,100,24, 0, 0, 0, 0, 0, "Extrudes the selected vertices in a circle around the cursor in the indicated viewport");
|
uiDefBut(block, BUT,B_SPIN, "Spin", 110,75,100,24, 0, 0, 0, 0, 0, "Extrudes the selected vertices in a circle around the cursor in the indicated viewport");
|
||||||
uiDefBut(block, BUT,B_SPINDUP,"Spin Dup", 210,75,115,24, 0, 0, 0, 0, 0, "Creates copies of the selected vertices in a circle around the cursor in the indicated viewport");
|
uiDefBut(block, BUT,B_SPINDUP,"Spin Dup", 210,75,115,24, 0, 0, 0, 0, 0, "Creates copies of the selected vertices in a circle around the cursor in the indicated viewport");
|
||||||
|
|
||||||
uiDefButS(block, NUM, B_DIFF, "Degr:", 10,55,100,19, &G.scene->toolsettings->degr,10.0,360.0, 0, 0, "Specifies the number of degrees 'Spin' revolves");
|
uiDefButF(block, NUM, B_DIFF, "Degr:", 10,55,100,19, &G.scene->toolsettings->degr,-360.0,360.0, 1000, 0, "Specifies the number of degrees 'Spin' revolves");
|
||||||
uiDefButS(block, NUM, B_DIFF, "Steps:", 110,55,100,19, &G.scene->toolsettings->step,1.0,180.0, 0, 0, "Specifies the total number of 'Spin' slices");
|
uiDefButS(block, NUM, B_DIFF, "Steps:", 110,55,100,19, &G.scene->toolsettings->step,1.0,180.0, 0, 0, "Specifies the total number of 'Spin' slices");
|
||||||
uiDefButS(block, NUM, B_DIFF, "Turns:", 210,55,115,19, &G.scene->toolsettings->turn,1.0,360.0, 0, 0, "Specifies the number of revolutions the screw turns");
|
uiDefButS(block, NUM, B_DIFF, "Turns:", 210,55,115,19, &G.scene->toolsettings->turn,1.0,360.0, 0, 0, "Specifies the number of revolutions the screw turns");
|
||||||
uiDefButBitS(block, TOG, B_KEEPORIG, B_DIFF, "Keep Original",10,35,200,19, &G.scene->toolsettings->editbutflag, 0, 0, 0, 0, "Keeps a copy of the original vertices and faces after executing tools");
|
uiDefButBitS(block, TOG, B_KEEPORIG, B_DIFF, "Keep Original",10,35,200,19, &G.scene->toolsettings->editbutflag, 0, 0, 0, 0, "Keeps a copy of the original vertices and faces after executing tools");
|
||||||
uiDefButBitS(block, TOG, B_CLOCKWISE, B_DIFF, "Clockwise", 210,35,115,19, &G.scene->toolsettings->editbutflag, 0, 0, 0, 0, "Specifies the direction for 'Screw' and 'Spin'");
|
uiDefButBitS(block, TOG, B_CLOCKWISE, B_DIFF, "Clockwise", 210,35,115,19, &G.scene->toolsettings->editbutflag, 0, 0, 0, 0, "Specifies the direction for 'Screw'");
|
||||||
|
|
||||||
uiBlockBeginAlign(block);
|
uiBlockBeginAlign(block);
|
||||||
uiDefBut(block, BUT,B_EXTREP, "Extrude Dup", 10,10,150,19, 0, 0, 0, 0, 0, "Creates copies of the selected vertices in a straight line away from the current viewport");
|
uiDefBut(block, BUT,B_EXTREP, "Extrude Dup", 10,10,150,19, 0, 0, 0, 0, 0, "Creates copies of the selected vertices in a straight line away from the current viewport");
|
||||||
|
@ -787,7 +787,7 @@ void extrude_repeat_mesh(int steps, float offs)
|
|||||||
BIF_undo_push("Extrude Repeat");
|
BIF_undo_push("Extrude Repeat");
|
||||||
}
|
}
|
||||||
|
|
||||||
void spin_mesh(int steps, int degr, float *dvec, int mode)
|
void spin_mesh(int steps, float degr, float *dvec, int mode)
|
||||||
{
|
{
|
||||||
EditMesh *em = G.editMesh;
|
EditMesh *em = G.editMesh;
|
||||||
EditVert *eve,*nextve;
|
EditVert *eve,*nextve;
|
||||||
@ -810,9 +810,8 @@ void spin_mesh(int steps, int degr, float *dvec, int mode)
|
|||||||
cent[2]-= G.obedit->obmat[3][2];
|
cent[2]-= G.obedit->obmat[3][2];
|
||||||
Mat3MulVecfl(imat, cent);
|
Mat3MulVecfl(imat, cent);
|
||||||
|
|
||||||
phi= (float)(degr*M_PI/360.0);
|
phi= degr*M_PI/(-360.0);
|
||||||
phi/= steps;
|
phi/= steps;
|
||||||
if(G.scene->toolsettings->editbutflag & B_CLOCKWISE) phi= -phi;
|
|
||||||
|
|
||||||
if(dvec) {
|
if(dvec) {
|
||||||
n[0]=n[1]= 0.0;
|
n[0]=n[1]= 0.0;
|
||||||
@ -879,7 +878,7 @@ void screw_mesh(int steps, int turns)
|
|||||||
EditMesh *em = G.editMesh;
|
EditMesh *em = G.editMesh;
|
||||||
EditVert *eve,*v1=0,*v2=0;
|
EditVert *eve,*v1=0,*v2=0;
|
||||||
EditEdge *eed;
|
EditEdge *eed;
|
||||||
float dvec[3], nor[3];
|
float dvec[3], nor[3],deg=(-360);
|
||||||
|
|
||||||
TEST_EDITMESH
|
TEST_EDITMESH
|
||||||
|
|
||||||
@ -937,8 +936,9 @@ void screw_mesh(int steps, int turns)
|
|||||||
dvec[1]= -dvec[1];
|
dvec[1]= -dvec[1];
|
||||||
dvec[2]= -dvec[2];
|
dvec[2]= -dvec[2];
|
||||||
}
|
}
|
||||||
|
if(G.scene->toolsettings->editbutflag & B_CLOCKWISE) deg= -deg;
|
||||||
|
|
||||||
spin_mesh(turns*steps, turns*360, dvec, 0);
|
spin_mesh(turns*steps, turns*deg, dvec, 0);
|
||||||
|
|
||||||
BIF_undo_push("Spin");
|
BIF_undo_push("Spin");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user