|
From: Greg R. <ne...@po...> - 2001-09-09 23:58:01
|
> All Cosmo did was pick a point in the middle of the bbox and use that as > the examine center. Then it was maintained through pan and zoom. Ah, but the bounding box of what? Everything visible within the view frustum, only those things completely contained within it, just the things within a half-angle view, ... ? For example, if you have two balls, one centered and one to the side, you probably want to rotate about the centered one, not about the centroid of the two. But maybe that gets too complicated with special cases. > The really cool thing about Cosmo's examine mode (which I have not seen > duplicated anywhere else), is the manipulation interface. It used a > manipulator from Inventor called a "SphereSheetProjector". This was a > very nice class which would take the pick point and project it onto > either a sphere or plane (sheet) depending on its distance from the > center of rotation. Near the center of rotation, the object is > manipulated as if your hand was on a sphere, very natural. But as you > moved off the center, it became more and more as though you were > dragging a piece of string along a flat surface (the sheet). The other > end of this string was wrapped around the object, which spun along an > axis perpendicular to the direction of drag as you moved away. It solves > many of the problems of manipulation and makes for very repeatable > results. It was very easy to grab the object examine all around it and > then return it to its original orientation. This is something I have > never seen in any of the other browsers. Yes, yes, I *loved* that level of control--very nice, and most worthy of copying. The only thing missing (IMHO) was a Cosmo/Live3D body- centered spin mode, which was very nice for manipulating building models (where you generally want "up" to be "up," regardless). I can't remember what the other mouse buttons and shift keys did in Cosmo, but there must be some available combo to which one could bind the secondary mode. Greg |