Big Transform Manipulator Merge

*NOTE*: Some UI decision done in this commit will most likely be revised, all flame shall go in /dev/null. Constructive discussions of course welcomed.

This commit merges manipulator orientation selection back in "traditional" transform.
That's how it works:
	- The dropdown in the 3D view header is always visible
	- The orientation chosen will be used when choosing an axis with MMB and for the *second* key press of X,Y,Z
		However, Local orientation doesn't use the one calculated by the manipulator. This is to ensure that multiple object local and armatures in pose still works as before.
	- Alt-Space (to change the orientation) works during transform


New Transform orientation: View, using the view axis.

Fixes for the following bugs:
	- Constraint projection code "jammed" if input vector was <0,0,0>, reported a couple of times on IRC. Thanks to Basse for the example file.
	- Transform on texspace crashed on objects without texspace data (camera, lamp, ...). This was reported in tracker.
	- Numinput with lock constraints didn't work correctly. Reported on elysiun

	Probably some others that I'm forgetting

I also moved a couple of functions around in an attempt to make things clearer.
This commit is contained in:
2005-07-24 06:25:00 +00:00
parent 1516381df1
commit 0e2302bfa5
10 changed files with 334 additions and 295 deletions

View File

@@ -1072,14 +1072,8 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
}
}
else if(G.qual == LR_ALTKEY) {
val= pupmenu("Manipulator Orientation%t|Global|Local|Normal");
if(val>0) {
if(val==1) v3d->twmode= V3D_MANIP_GLOBAL;
else if(val==2) v3d->twmode= V3D_MANIP_LOCAL;
else if(val==3) v3d->twmode= V3D_MANIP_NORMAL;
v3d->twflag |= V3D_USE_MANIPULATOR;
doredraw= 1;
}
BIF_selectOrientation();
doredraw= 1;
}
break;