Navigator Window version 1.0

This page in progress: Sun Jan 13 21:28:12 GMT 2019 @936 /Internet Time.

Body Frame and Orbital Trajectory System

png

In the above diagram, I have deliberately avoided the use of the word “Pan” and substituted the word “Track” instead. Traditionally speaking, “panning” a camera means turning the camera left or right upon the tripod head, id est the camera location does not change. Tracking on the other hand, infers a movement of the camera body along imaginary tracks. In this case, the tracks are the body frame vectors DUR. Panning is achieved by Yawing the camera body left or right around its U vector.

Navigator Window

Bring up the Navigator window by checking the menu item ‘Navigator’ in the ‘Windows’ menu. This has undergone some extensive modification and expansion for version 1.0.

png

Orbit Widget

gif anim

Whilst the trackball is now attached to the gimble node, you can also make precise orbital trajectories using a new Orbit Widget, which allows rotation about the camera’s individual DUR vectors. Simply right-click on an arrow and drag the mouse in either direction. The further you drag the mouse, the faster the orbit.

Transformation is applied to the gimble’s Local rotation matrix so that the camera pivots about the origin. The piviot axes are the camera’s World DUR vectors. Here is a code snip for an orbital pitch operation:

png

One problem of upgrading to Wild Magic 4.10, was that Wm4Camera is derived from Object, not Spatial. This required a rewrite so that my navigation classes use Camera Nodes. This was not a bad thing however, as it afforded an opportunity to fix a long standing issue concerning the Orbit camera. In previous versions, the ‘Orbit’ camera did not actually orbit the scene, but simply viewed the local transformations applied to the scene node by the trackball (as in the Wild Magic sample applications). This has been fixed. The Orbit Camera Node is now attached to a ‘Gimble Node’, whereas the fixed cameras, Right, Left, Top, Bottom, Front and Back are attached to the Scene Node. The trackball now transforms the Gimble Node rather than the scene. This ensures the Orbit camera lives up to its name. The scenegraph for this arrangement is as follows:

png

Body

Orientation

The Body Orientation widget is a frame of three orthogonal vectors: Up (red), Right (green) and Direction (blue). The frame uses the standard navigational terms of Yaw, Pitch and Roll…

png

Yaw

png

Rotates the Body around its Up vector. When the Orientation WORLD toggle is ON, rotates the Body around the camera node’s World Up vector (which might have been changed by the Orbit widget or mouse trackball).

Right-click on the Up vector and it highlights yellow. Drag the mouse left or right. The further the mouse moves from its orginal down position, the faster the transformation.

Pitch

png

Rotates the Body around its Right vector. When the Orientation WORLD toggle is ON, rotates the Body around the camera node’s World Right vector (which might have been changed by the Orbit widget or mouse trackball).

Right-click on the Right vector and it highlights yellow. Drag the mouse left or right. The further the mouse moves from its orginal down position, the faster the transformation.

Roll

png

Rotates the Body around its Direction vector. When the Orientation WORLD toggle is ON, rotates the Body around the camera node’s World Direction vector (which might have been changed by the Orbit widget or mouse trackball).

Right-click on the Direction vector and it highlights yellow. Drag the mouse left or right. The further the mouse moves from its orginal down position, the faster the transformation.

NOTE: to reset the body to its default orientation, click the small white sphere at the frame origin.

Tracking

The Tracking widget has four vectors for Up, Down, Left and Right. These operate in the same way as the Orientation widget, moving the Body along the clicked vector. When the Tracking WORLD toggle is ON, the Body moves along the camera node’s corresponding World vector, (which might have been changed by the Orbit widget or mouse trackball).

Right-click on an arrow and it highlights yellow. Drag the mouse back and forth in the direction shown. The further the mouse moves from its orginal down position, the faster the transformation.

png png png png png

NOTE: to reset the Body to its default tracking, click the small white sphere at the frame origin.

Distance (Track Forward and Track Back)

The Distance widget moves the Body along its Direction vector, in or out of the scene. When the Distance WORLD toggle is ON, the body moves along the camera node’s corresponding World Direction vector (which might have been changed by the Orbit widget or mouse trackball).

Right-click on the widget and it highlights yellow. Drag the mouse back and forth along the diagonal. The further the mouse moves from its orginal down position, the faster the transformation.

png png png png

The Distance widget is disabled when you create or select a Fixed camera and click in the view. However, you can simulate a “zoom” for a Fixed camera by changing the field of view in the frustum panel. (To create and delete Fixed or Obital camera’s, select ‘Manage Cameras...’ from the View menu).

NOTE: to reset the body to its default distance, click the small white sphere at the frame origin.

Orientation Tabs

Body YPR

png

Body Yaw, Pitch and Roll. Works in conjunction with the Orientation frame widget. Displays YPR values for the camera node’s Local rotation matrix. When the tab’s WORLD toggle is ON, displays YPR values for the camera node’s World rotation matrix.

Orbit ΦΘR

png

Orbit spherical coordinates Phi, Theta and Radius. Works in conjunction with the Orbit widget and the Tracking widgets. Displays ΦΘR values for the camera node’s Local position. When the tab’s WORLD toggle is ON, displays ΦΘR values for the camera node’s World position. The spherical coordinates follow conventions explained on this page. The important thing to remember is that Theta is measured from the zenith; so the equatorial plane has a Theta value of 90°.

Changes made when dragging on the Orbit widget are only reflected in the fields when the tab’s WORLD toggle is ON.

Orbit EUL

png

Orbit Euler angles for XYZ. Works in conjunction with the Orbit widget and the Tracking widgets. Displays the Euler angles for the gimble node’s Local rotation matrix. The fields are locked by default. If you unlock them, it is presumed you wish to set specific Euler angles obtained from another application – in which case the following warning is given: “It is not recommended to edit the Euler angles directly. The prefered method of changing Orbit is to use the Orbit widget or edit the spherical coordinates of the Orbit location.” The following WM4 enumerations are reported:

Body DUR

png

Body Direction, Up and Right vectors, displayed as columns of the camera node’s Local rotation matrix. When the Orientation’s WORLD toggle is ON, displays DUR values for the camera node’s World rotation matrix. These values cannot be edited. This tab was initially implemented for debugging purposes but might prove useful for as yet unknown requirements.

Orbit DUR

png

Orbit Direction, Up and Right vectors, displayed as columns of the gimble node’s Local rotation matrix. (The World rotation matrix is the same in this instance). These values cannot be edited. Again, this tab was initially implemented for debugging purposes but might prove useful for as yet unknown requirements.

Location Tabs

Body XYZ

png

Body Cartesian coordinates. Displays XYZ values for the camera node’s Local position. When the tabs’s WORLD toggle is ON, displays XYZ values for the camera node’s World position.

Body ΦΘR

png

The Body’s spherical coordinates will be the same as the Orbit’s spherical coordinates when their corresponding WORLD toggles are in the same state (id est, both ON, or both OFF). The reason for this duplicate tab is so that you can view both Local and World spherical coordinates for the Body by changing the corresponding WORLD toggle, (id est, one OFF, the other ON).