# NAME

viewget - get MGED view parameters

viewset - set MGED view parameters

# SYNOPSIS

viewget s(ize)|e(ye)|c(enter)|a(et)|y(pr)|q(uat)

viewset type params ?type? ?params? ...

# DESCRIPTION

Viewget returns the current value of the requested viewing parameters. The following viewing parameters may be requested:

size
  The current viewsize.
eye
  The current eye point, in the order x y z.
center
  The current center point, in the order x y z. The center point is always directly in front of the eye point. The distance from the center to the eye is one half the viewsize.
aet
  The azimuth, elevation, and twist of the current view. These angles are defined as follows: an aet of 0 0 0 indicates that the view faces the negative x direction, with the y-axis leading to the right and the z-axis going up. To reach any other aet, the eye is rotated +twist degrees about the x-axis, -elevation degrees about the y-axis, and azimuth degrees about the z-axis.
ypr
  The yaw, pitch, and roll of the current view. These angles are defined as follows: a ypr of 0 0 0 indicates that the view faces the positive x direction, with the y-axis leading to the left and the z-axis going up. To reach any other ypr, the eye is rotated +twist degrees about the x-axis, -elevation degrees about the y-axis, and +yaw degrees about the z-axis.
quat
  A unit quaternion representing the current view orientation, in the order x y z w. The identity quaternion, 0 0 0 1, represents the orientation of the `press top` command: facing the negative z direction with the x-axis to the right and the y-axis going up. For any other unit quaternion, x y z represents an axis of rotation, and w represents cos(theta / 2), where theta is the angle the view is rotated about the given axis. For example, the quaternion 0.707106 0.0 0.0 0.707106 represents the orientation achieved by the `press right` button, since this orientation can be obtained from the "top" orientation by rotating 90 degrees about the positive x-axis.

Viewset sets the current viewing parameters. Any of the parameter types returned by viewget can be set with viewset. For example,

`mged> viewset ypr 35 25 0`

sets the yaw, pitch, and roll to 35 25 0. More than one view parameter may be specified at one time. If two view parameters conflict with each other, then one of the parameters will be ignored. For example, if `ypr` and `aet` are set in the same command, one of the two is ignored. If neither `center` or `eye` is specified, then the center point will remain fixed while the eye point changes to accomadate a change in orientation or viewsize.

If no orientation or viewsize parameter is set, then the orientation and viewsize are normally unchanged. The exception occurs when `center` and `eye` are both specified in the same viewset command. In that case, the viewsize and orientation are calculated from the relationship between the center point and eye point. Fixing the center and eye point still leaves an extra degree of freedom; this ambiguity is resolved by selecting a "right-side up" orientation (in terms of aet, an orientation with no twist).

# EXAMPLES

The following command could be executed in an MGED interaction window to obtain a typical top view:

    mged> viewset center 0 0 0 size 2000 quat 0 0 0 1
    mged> viewget ypr
    Warning: roll arbitrarily set to 0.0; yaw set to 1.570796 radians.
    90 -90 0

The warning message always occurs in relation to ypr and aet when the pitch or elevation is an odd multiple of 90 degrees. In that case, the yaw and roll become indistinguishable, and the arbitrary decision is made to set the roll or twist to 0.0.

In order to change the view orientation without moving the eye point, the following commands could be used:

    mged> viewget eye
    0 0 1000
    mged> viewset eye 0 0 1000 ypr 0 0 0
    mged> viewget center
    1000 0 1000
    mged> viewget eye
    0 0 1000