forked from bartvdbraak/blender
mesh_wire, fixed error with zero area edges
Holding Ctrl flips the align view in editmode. (patch from BeBraw)
This commit is contained in:
parent
2d0b69f3c3
commit
384f7a7875
@ -167,9 +167,12 @@ def solid_wire(ob_orig, me_orig, sce, PREF_THICKNESS, PREF_SOLID, PREF_SHARP, PR
|
||||
|
||||
if PREF_SHARP == 0:
|
||||
def add_tri_flipped(i1,i2,i3):
|
||||
if AngleBetweenVecs(me.verts[i1].no, TriangleNormal(me.verts[i1].co, me.verts[i2].co, me.verts[i3].co)) < 90:
|
||||
return i3,i2,i1
|
||||
else:
|
||||
try:
|
||||
if AngleBetweenVecs(me.verts[i1].no, TriangleNormal(me.verts[i1].co, me.verts[i2].co, me.verts[i3].co)) < 90:
|
||||
return i3,i2,i1
|
||||
else:
|
||||
return i1,i2,i3
|
||||
except:
|
||||
return i1,i2,i3
|
||||
|
||||
# This stores new verts that use this vert
|
||||
|
@ -636,11 +636,13 @@ static void changeview3dspace(ScrArea *sa, void *spacedata)
|
||||
*/
|
||||
static void align_view_to_selected(View3D *v3d)
|
||||
{
|
||||
int nr= pupmenu("Align View%t|To Selected (top)%x2|To Selected (front)%x1|To Selected (side)%x0");
|
||||
|
||||
int nr= pupmenu("Align View (Ctrl flips)%t|To Selected (top)%x3|To Selected (front)%x2|To Selected (side)%x1");
|
||||
if (nr!=-1) {
|
||||
int axis= nr;
|
||||
|
||||
|
||||
/* opposite axis in case ctrl is pressed */
|
||||
if(G.qual==LR_CTRLKEY) axis= -axis;
|
||||
|
||||
if ((G.obedit) && (G.obedit->type == OB_MESH)) {
|
||||
editmesh_align_view_to_selected(v3d, axis);
|
||||
addqueue(v3d->area->win, REDRAW, 1);
|
||||
|
@ -1505,7 +1505,9 @@ void view3d_align_axis_to_vector(View3D *v3d, int axisidx, float vec[3])
|
||||
float norm[3], axis[3], angle, new_quat[4];
|
||||
|
||||
alignaxis[0]= alignaxis[1]= alignaxis[2]= 0.0;
|
||||
alignaxis[axisidx]= 1.0;
|
||||
|
||||
if(axisidx > 0) alignaxis[axisidx-1]= 1.0;
|
||||
else alignaxis[-axisidx-1]= -1.0;
|
||||
|
||||
norm[0]= vec[0], norm[1]= vec[1], norm[2]= vec[2];
|
||||
Normalize(norm);
|
||||
|
Loading…
Reference in New Issue
Block a user