

                                 ViewPoint
                           Perspective Design Tool

                        Experimental Version 03oct92



                           Basic Principles

      ViewPoint lets you edit perspective drawings directly, without the
      need to create a three-dimensional representation of the scene
      (though it will be possible to import 3D CAD data in the future).
      The internal data representation is strictly two-dimensional, with
      the intention to create a three-dimensional impression only to the
      human eye.

      There are three primary parameters in each ViewPoint job:
      - "Angle"
         Determines the horizontal orientation of objects. It defaults to
         30 degrees when a new window is opened, and may be changed via
         the "ViewPoint" menu.
      - "Tilt"
         Determines the angle with which the scene is viewed by the observer.
         Negative values mean that the observer is looking "down".
         It defaults to -35 degrees when a new window is opened, and may be
         changed with the "Perspective"-dialog in the "ViewPoint" menu.
      - "Focal Length"
         Controls the perspective distortion of drawing. A smaller value
         results in stronger distortion (similar to a wide angle lens).
         It defaults to a value of 1000 when a new window is opened, and may
         be changed with the "Perspective"-dialog in the "ViewPoint" menu.

      Normally, the Focal Length is decided before drawing, and will not
      change during the edit session. The Tilt parameter, on the other
      hand, can be changed on certain occasions, typically when drawing
      objects which are not horizontal in 3D-space.
      The Angle parameter is probably changed quite often, depending on
      the orientation of individual objects.

      From these three parameters three Vanishing Points are calculated
      as secondary parameters:
      - The "First Vanishing Point" lies in the direction of the "Angle"
        orientation in space.
      - The "Second Vanishing Point" lies in the direction perpendicular to
        the first vanishing point.
      - The "Vertical Vanishing Point" determines the direction of "vertical"
        lines.
:p


      At any time during editing, there is always one of three planes in
      3D-space active, selected by the small "V.P." palette in the top-left
      corner of the screen:
         - "Plane"      The horizontal plane (X-Y)
         - "Elevation"  The vertical plane extending towards the first
                        vanishing point (X-Z)
         - "Side"       The vertical plane extending towards the second
                        vanishing point (Y-Z)
      It is the responsibility of the user to select the correct plane
      before editing objects, because only he knows the "3D-meaning" of
      the 2D-objects on the screen.



                              Editing

      The "Tools" palette (just below the "V.P." palette) determines the
      edit mode.

      It is set to "Select" normally, letting you select objects in the
      standard ways:
      - Clicking on a line selects the corresponding object, de-selecting
        any previously selected object(s).
      - Pressing the shift key during selections selects or de-selects
        additional objects.
      Pressing the command key and dragging with the mouse will let you
      scroll the window contents.

      "Line" draws a line with two mouse clicks in the window. After
      selecting the tool, a small dot can be seen following the mouse
      cursor. It indicates the actual location selected for the line's
      first point.
      - The arrow keys allow more precise navigation of the mouse cursor.
      - Hitting the Return or Enter key has the same effect as pressing the
        mouse button.
      - Clicking in the "V.P." palette lets you change the current edit plane.
      - Any other click outside the window or hitting the ESC key aborts the
        operation.
      The following modifier keys are supported:
      -  Pressing the shift key will point the line into the direction of
        one of the active vanishing points ("Stiff").
      - Pressing the control key will set to the nearest point of existing
        objects ("Snap").
      - Pressing the shift and control keys simultaneously combines these
        two effects: The line is drawn into the direction of a vanishing
        point, but adjusted in length in such a way that its end point is
        perpendicular to another existing point (i.e. the intersection of
        the line with a line determined by that other point and the other
        active vanishing point). That's easier to use than to explain
        ("Stiff-Snap").
      - Pressing the command key and dragging with the mouse will let you
        scroll the window contents.

      The "Poly" tool is very similar to "Line", generating multiple
      connected lines. In addition to the above features supported for
      "Line", pressing the option key while clicking lets you "backstep"
      the input lines.
      In addition to ESC, the input may also be terminated by a double-click.
:p


      The "Rect" tool allows the immediate construction of the perspective
      view of a rectangle. Currently, only the control ("Snap") and
      command ("Scroll") modifiers are supported. In the future the shift
      modifier will force perspective "square" rectangles.

      The "Ellipse" tools generates the perspective view of an ellipse or
      circle (exact circles will be possible later using the shift key).

      In addition to these tools, additional tools are planned, e.g. direct
      bezier input and cutting (scissors). Also, relative 3D-coordinates
      will be displayed in the small window in the top right corner of the
      screen during mouse input (as opposed to the 2D-coordinates currently
      displayed).

      The "Modify" menu currently only supports movement of objects within
      their edit plane. Typically, an object is grabbed at one of its
      points with the Snap function (control key) and then snapped into
      another position. While moving the object around, its size and
      orientation changes correctly according to its perspective position.

      The "Mirror" and "Invert" commands support only 2D operations currently.
      This is not very useful and will be changed to pseudo-3D operations.


      For selected objects, the standard Macintosh edit commands are
      supported: Cut, Copy, Paste, Clear, Duplicate and Select All.
      Paste places cut or copied objects into the picture in a slightly
      displaced position (Duplicate is identical to Copy-Paste). This
      displacement goes conform with movements in the current edit plane,
      as described above.

      As for all BUG Europe applications, unlimited Undo and Redo is
      supported.
:p


                              Auto Demo

      On the floppy disk you should find three files:

         "ViewPoint"  Application
         "string.d"   Runtime string resources
         "Demo 1"     Auto Demo 1
         "Demo 2"     Auto Demo 2


      To get a first impression, double-click on "ViewPoint", then select
      "Demo .." from the "File" menu.

      "Demo 1" first shows the construction of a cube with circles on
      each of its sides:
      - A rectangle is created in the horizontal plane, then an ellipse
        is snapped to its diagonal points.
      - After selecting the elevation plane, another rectangle and ellispe
        is snapped into place. Same with the side plane.
      - The side rectangle and ellipse is selected together, then duplicated
        and moved to snap in the neighbour position. Same with the horizontal
        rectangle and plane.
      Now we have created two identical cubes just besides each other.

      "Demo 2" creates the vertical lines of the "building" with the Poly
      tool:
      - The first vertical line is input with "Stiff", the following
        horizontal line with "Stiff-Snap" and the upward line with "Snap"
      - The pattern on the front line is also created with the help of
        "Stiff" and "Stiff-Snap", thus assuring that the vertical line
        segments are aligned correctly.


                                 BUGS

      For some calculations, there may be some imprecisions due to rounding
      errors. This will be improved in the future.
