|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object
|
+--gnu.gleem.Manip
|
+--gnu.gleem.HandleBoxManip
Patterned after Inventor's HandleBoxManip (by Paul Isaacs and David Mott) and TransformerManip (by Paul Isaacs). Center box allows 3-D translation. Outer six handles allow rotation about the box's six axes. When a handle is clicked, the axis of rotation is immediately chosen as that which is most parallel to the viewing direction (note there are at most two possibilities for the axis of each handle's rotation). Eight corner handles allow aspect ratio-preserving scaling; shift-dragging these handles allows non-uniform scaling in one of two possible directions using a "snap-to-axis" paradigm. These two directions are chosen as the axes of the adjacent face to the handle whose normal most directly faces the viewing direction.
| Constructor Summary | |
HandleBoxManip()
Default HandleBoxManip has translation (0, 0, 0) and the identity orientation |
|
| Method Summary | |
void |
clearHighlight()
Tell the manipulator to clear the current highlight |
void |
drag(Vec3f rayStart,
Vec3f rayDirection)
When a manipulator is active, drags of the live portion cause motion of the manipulator. |
Vec3f |
getGeometryScale()
|
Rotf |
getRotation()
Get the rotation of this HandleBoxManip. |
Vec3f |
getScale()
|
Vec3f |
getTranslation()
Get the translation of this Translate1Manip. |
void |
highlight(HitPoint hit)
Tell the manipulator to highlight the current portion of itself. |
void |
intersectRay(Vec3f rayStart,
Vec3f rayDirection,
java.util.List results)
Cast a ray in 3-space from the camera start position in the specified direction and test for intersections against all live portions of this manipulator. |
void |
makeActive(HitPoint hit)
If the ManipManager decides that this manipulator is to become active, it will pass back the HitPoint which made it make its decision. |
void |
makeInactive()
When the mouse button is released, makeInactive() is called. |
void |
render(gl4java.GLFunc gl)
Render this Manipulator now using the given OpenGL routines and assuming an OpenGL context is current. |
void |
setGeometryScale(Vec3f geometryScale)
Set the scale of the HandleBoxManip's geometry. |
void |
setRotation(Rotf rotation)
Set the rotation of this HandleBoxManip. |
void |
setScale(Vec3f scale)
Set the scale of the HandleBoxManip. |
void |
setTranslation(Vec3f translation)
Set the translation of this HandleBoxManip. |
| Methods inherited from class gnu.gleem.Manip |
addMotionListener, removeMotionListener |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public HandleBoxManip()
| Method Detail |
public void setTranslation(Vec3f translation)
public Vec3f getTranslation()
public void setRotation(Rotf rotation)
public Rotf getRotation()
public void setScale(Vec3f scale)
public Vec3f getScale()
public void setGeometryScale(Vec3f geometryScale)
public Vec3f getGeometryScale()
public void render(gl4java.GLFunc gl)
Manip
render in class Manip
public void intersectRay(Vec3f rayStart,
Vec3f rayDirection,
java.util.List results)
Manip
intersectRay in class Manippublic void highlight(HitPoint hit)
Manip
highlight in class Manippublic void clearHighlight()
Manip
clearHighlight in class Manippublic void makeActive(HitPoint hit)
Manip
makeActive in class Manip
public void drag(Vec3f rayStart,
Vec3f rayDirection)
Manip
drag in class Manippublic void makeInactive()
Manip
makeInactive in class Manip
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||