MBFAST version 0.92

What is it?
  MBFAST is a 3D model editor written in FreeBASIC which runs on DOS or
  32-bit Windows (has not been compiled/tested in Linux).

What are the system requirements?
  Minimum: 486DX, EGA, ~4MB RAM, mouse is needed for some functions
  Recommended: 686 class CPU, SVGA, 128MB RAM (should be adequate for
                models with 1,000,000 triangles)

What is MBFAST.INI?
  This is a text file which contains screen mode settings. If it is not
  found in the path containing the executable, it will be created with
  default settings.

  supported modes:
    standard 16-color and 256-color EGA/VGA modes
    320x240 ModeX mode
    VESA modes (4/8/15/16/24/32 bits per pixel)

  non-standard screen sizes are possible when running in a window (Win32)

  low detail mode - renders at half horizontal resolution for improved speed
  high detail mode - renders at double horizontal resolution for reduced
    aliasing (only available in 32-bit color depth)

  4-bit screen modes always use low detail (dithering is applied to increase
    the number of represented colors)

What file formats are supported?
  MB - native format
  STL binary (not ASCII), with optional 15-bit RGB color in the attribute
  word. Importing STL files with a large number of triangles can be very
  slow because of the brute-force removal of redundant vertex data. A
  separate utility (STL2MB) can be used for faster processing.

How does the UI work?
  Most of the functionality is contained in menus which can be accessed
  by clicking the menu bar at top (file, edit, view, camera) or pressing
  the ALT key. Use the left mouse button to select a menu item, or click
  and hold the right button to drag a menu across the screen. Menu items
  have various functions including opening a submenu, performing some
  action, or merely displaying information. Keyboard controls can also
  be used to navigate menus. Pressing F1 displays a summary of available
  keyboard shortcuts. In addition, most menu items contain a capital
  letter which indicates the shortcut key that can be used when that
  menu is in focus. Exceptions are coordinate groups (press number 1),
  "close" (press '-'), and "confirm" (press '.').

  For menu items which allow entering a value, prefixing a number with
  the letter 'd' specifies a value in degrees which will then be
  converted to radians automatically. Also, when entering a value use
  the TAB key to move on to the next box (if any).

  File - this menu contains functions for loading/saving files and shows
  the total number of verteces, triangles, and lines contained in the
  model.

  Edit - contains various submenus for adding, removing, or modifying
  parts of the model.

  View - contains a series of checkboxes which control what is rendered.
  (note that rendering only verts is much faster than rendering triangles)
  The drawdepth value can be used to hide distant parts of the model.

  Camera - shows the current rendering angle and position of the model and
  allows changing to a different viewpoint.

What is the "tool" displayed at the upper left?
  The mouse has different functions depending on which tool is selected:

  mouselook - the default tool. Click and hold the left button to rotate
  the model. Click and hold the right button to adjust the model's scale
  and distance. Click and hold both buttons to move the image.

  mouse plot - When the mouse plot checkbox is active, clicking on a set
  of coordinates menu items allows those coordinates to be specified by
  the mouse pointer position on the model or grid. When the left button is
  clicked, the associated action is carried out.

  selection - Click and drag to define a rectangular area containing parts
  to be added or removed from the current selection. While dragging, click
  the right button to cancel.

  autotriangle - highlights the nearest three verteces to the mouse pointer
  position. Left-click to create a triangle at these coordinates.

  manual triangle - highlights a single vertex nearest to the mouse pointer
  position. Left-click to select one. After selecting three verts, a
  triangle is created.

  FPS - not really a tool... In benchmark mode, the framerate is displayed.

  vertex edit - highlights a single vertex nearest to the mouse pointer and
  shows its position in X1/Y1/Z1. After clicking to select a vert, it can
  be moved or deleted from the vert edit menu. Right-clicking reverts to
  the mouselook tool.

  manual fan - similar to "manual triangle" except after the third point is
  selected, the last point replaces the second and the first point is
  retained. Further triangles that share an edge can be created with one
  click.

  stereo view - renders two scenes side-by-side from slightly different
  perspectives. This provides an effect of depth perception when the left
  image is viewed by the right eye and right image by left eye.

What are part groups?
  Each triangle in the model can be assigned to a part group. This makes
  it easier to select and modify different parts of the model or exchange
  them between models by importing/exporting from/to a separate file.
  Note that only triangles belong to a part group. Lines do not belong to
  a part group and verteces may belong to multiple part groups.

What does each item in the various editing menus do?
  Edit menu:
    create primitive - brings up a menu with basic shapes that can be
    added to the model. Clicking any of the shape menu items brings up
    another window where dimensions and coordinates can be specified.

    part names - allows the user to type a name for each part group

    selection - contains options for selecting/unselecting triangles and
    shows the number of triangles currently selected. Also has a link to
    the Actions menu.

    misc tools - includes functions which delete the most recently created
    vert/triangle/line, vertex edit function, tools for creating triangles
    from existing verts, benchmark function, and more...
      guillotine - slices the model in two, on either the x/y, y/z, or
      x/z plane. It automatically breaks sliced triangles into multiple
      smaller triangles to leave a clean edge. After slicing, one half of
      the model will be selected, while the other half is unselected.

      drill - makes a hole in the model. The shape of the hole is circular
      but approximated by a polygon. (drill function is currently not
      finished and is limited to flat parts at z=0.) Slice size determines
      how many points are used to approximate the circle (given in radians)

    default color - defines the color that will applied to any newly
    created primitives

    part group - defines the part group that will be assigned to any newly
    created primitives

    load part from - can load a model from a separate file and incorporate
    it into the current model.

  Actions menu:
    move selection - allows moving every triangle (and associated verteces)
    in the current selection via a relative displacement, or to an absolute
    position (if the box is checked). When using absolute coordinates, they
    will apply to the center of the smallest box that can contain the
    selection, or to the bottom center if the bottom is at z=0.

    duplicate - similar to move selection, but the selection also continues
    to exist at the original position. "Connect edges" can be used when
    duplicating a 2D shape to connect the two shapes together, producing
    a 3D object. The algorithm adds two triangles (a rectangle) connecting
    every free edge on the original selection to the corresponding edge on
    the duplicate. "Unselect dupe" causes any newly created triangles
    (including connecting triangles) to be unselected, while the original
    selection remains.

    rotate selection - rotates every vertex in the selection around a
    specified point. Clicking "selection center" sets the origin to the
    center of the smallest box that can contain the selection.

    scale selection - similar to "rotate" but scales instead...

    delete selection - deletes triangles in a selection, with the option
    to also delete verteces which are unique to the selection

    flip x/y/z - flips the selection around its center

    save to file - creates a new model in a separate file containing the
    selection

    reverse faces - changes the order of verteces in each triangle so the
    surface normal reverses direction

    change color - allows assigning a new color to each triangle in the
    selection. Also contains "rainbow" option which is not particularly
    useful but looks nice.

    reassign to - assigns triangles in the selection to a part group

What has changed since the last release?
  new in version 0.92:
    -new options:
      stereo view
      manual fan
      ring primitive
      hide selection
      load backdrop (use a BMP file in place of plain black background)
      plot chain (copies second coordinate to first coordinate)
    -hold shift to snap in mouseplot mode
    -file list for opening a file
    -misc tweaks and bug fixes:
      mouse handler
      stl import
      zooming
      vert selectr
      vertcleanup
      converting degrees to rads
      drill press (still buggy and incomplete though)
      duplicate/connect edges
      selection "only visible"

Tutorial:
  Launch MBFAST.
    Click File->new
    Click Edit->create primitive->new disc->create
    Click Edit->selection->sl. entire model
    Click Actions->duplicate->connect edges
    Click Z1, type 60 followed by the ENTER key
    Click confirm
  The result should be a 3D column.


