1  overview
=TITLE Overview 

MapSketch is a prototype illustration software.

For information about using MapSketch, 
double click on an item from the list of
additional topics.

* Using Help

For information about using help,
choose Help from the Help menu above.

To use a shortcut to traverse the help tree,
use Search/History or Go Back button.

* DECwindows

To know more about DECwindows,
see Using Help/DECwindows Basic.


2  mapsketch_overview
=TITLE MapSketch Overview

This software is the property of Digital Equipment
Corporation (1990).  Version 1.0, June 1990

MapSketch provides all the functions usually
available in an "object-oriented" graphics editor,
such as the ability to create and edit lines,
curves, and closed shapes. The additional power of
MapSketch lies in two areas: first, the ease and
speed with which these graphics objects can be
combined to form new entities, and second, the
fact that these new entities can themselves be
handled as objects.

The fundamental graphic object in MapSketch is a
planar map. That is, a multicontour and multicolor
shape, with holes, iteratively contructed by the
user. Map sketching is the basic drawing paradigm:
graphic primitives drawn by the user are
incrementally added to the planar map comprising
the drawing. Two additional operations are allowed
on a map: edge erasing and region coloring.

2  more
=TITLE MapSketch Specific

The following entries are available for more
informations about the use of menus, the toolbox,
keyboard and mouse.

3  menus
=TITLE Menus

-  File
-  Edit
-  Position
-  View
-  Customize
-  Debug
-  Help

4  file_menu
=TITLE File

* New

Create a new (untitled) sketch.

Each time a new sketch is created, it is
distinguished from all other new (untitled)
sketches by an instance number in the title.

* Open...

Open an existing sketch. The name is prompted by a
file-selection dialog, where the default file
extension is ".msk".

Each time a sketch is opened, it is distinguished
from all other open sketches of the same name by
an instance number in the title.

* Save

Save the designated sketch to disk, if modified.

For an untitled sketch, the "Save As..." dialog
will prompt for a file name.

* Save As...

Save the designated sketch to disk, under a name
prompted by a file-selection dialog.

* Close

Close the designated sketch. If modified, a dialog
will query about saving cges.

* Print Paper...

Generate a PostScript file describing the
designated sketch with the current paper format. A
file-selection dialog will prompt for a name, with
default extension ".ps".

* Print View...

Generate a PostScript file describing the
designated sketch. A file-selection dialog will
prompt for a name as above.

* Print View (.eps)...

Same as previous, but generates an encapsulated
PostScript file (no showpage).

* Quit MapSketch

Terminates the MapSketch program. All modified
sketches will prompt for saving changes.

4  edit_menu
=TITLE Edit

* Select All

Select all layers within the designated sketch.

* Cut

Move all selected layers from the designated
sketch into the clipboard. This operation can be
followed by a Paste operation (see below).

* Copy

Copy all selected layers from the designated
sketch into the clipboard. This operation can be
followed by a Paste operation (see below).

* Paste

Copy the clipboard into the designated sketch. The
new layers are selected, all other existing layers
become unselected.

* Merge

Merges all selected map layers within the
designated sketch into a single map layer.

* Delete

Deletes all selected layers within the designated
sketch.

This operation cannot be followed by a Paste
operation, i.e. deleted layers are not placed in
the clipboard as with "Cut".

4  position_menu
=TITLE Position

* To Front

Moves all selected layers within the designated
sketch in front of (i.e. on top of) all unselected
layers. The order of the selected layers is
unchanged.

* To Back

Moves all selected layers within the designated
sketch behind (i.e. below) all unselected layers.
The order of the selected layers is unchanged.

* Forward

Moves a selected layer within the designated
sketch forward by one layer (not valid for the top
layer).

* Backward

Moves a selected layer within the designated
sketch backward by one layer (not valid for the
bottom layer).

4  view_menu
=TITLE View

* New 

Opens a new view into the designated sketch. As
both views share the same instance of the same
sketch, modifications in one are reflected in the
other, and vice-versa.

* Close

Closes the designated view.

* Close Siblings

Close all sibling views of the designated view.

* Show Page 

Displays the full paper format in the designated
view.

* Show Selection

Shows only the selected layers of the designated
sketch (as opposed to "Show All" below).

* Show All

Shows all layers of the designated sketch (as
opposed to "Show Selection" above).

* Enable/Disable Grid

Enables/Disables a constraining grid, with the
current parameters, in the designated view.

* Set Grid...

Brings up a dialog allowing you to change the
current grid parameters in the designated view.

4  customize_menu
=TITLE Customize

* Sheet Size

Lets you specify the page size and orientation in
the designated view.

4  debug_menu
=TITLE Debug

[The Record Off, Replay and Replay Step options
are normally for the use of MapSketch developers
only.]

3  toolbox
=TITLE Toolbox

The Toolbox contains a menu, a set of icons
representing tools for working in views, a
push-button that shows both the current color and
brings up the ColorEdit dialog, and the "Undo"
push-button.

The menu contains the entries "File" and "Style".
File contains the entries "New" and "Open..." as
described above, and is included in the ToolBox in
case the user has closed all the views. Style
contains entries that bring up various style
dialogs.

One tool is always selected at any given time; the
icon for this tool is highlighted. The cursor icon
varies according to the selected tool, and the
color changes while a mouse button is down (while
dragging).

When the current color is transparent, the
push-button shows a drawing that vaguely suggests
transparency, otherwise it is a solid color.

4  select_tool
=TITLE Select

To select a layer, move the cursor onto an edge or
into a region of a map layer, or in the
bounding-box of a text layer, and press the mouse
button.

To un-select all layers, move the cursor away from
all layers and click the mouse button.

* Key modifiers available:

  shift   add/remove to/from the current
          selection.

  s       access the select tool temporarily while
          using any other tool.

Selected layers are shown normally, while
unselected layers are shown with a half-tone
(stipple) pattern.

In single-select mode, each newly-selected layer
unselects all the others. In multi-select mode,
only the selection state of the designated layer
is toggled; selected / unselected becomes
unselected / selected.

The select tool also serves as a translation tool.
While still holding down the mouse button on a
selected layer, you can translate all selected
layers by moving the mouse and letting up in the
desired place.

* Drawing modes

The drawing tools are divided into two columns:
the left one lets you insert a primitive in the
current layer (Map Mode), the right one lets you
insert a primitive in a new layer (Layer Mode).

* Map Mode

Each primitive or symbol is inserted into the
current layer.  By default, the current layer is
the topmost selected layer.

* Layer Mode

Each primitive or symbol is inserted into a
newly-created layer, which is added in front of
the top-most selected layer.

* Key modifiers available:

  m   lets you insert into a new layer (Layer Mode)
      while using a Map Mode tool.

As you draw with a layer-mode tool, each new
entity becomes selected. If the multi-select key
is not held down, then all other layers become
unselected.

* Inserting primitives

To draw a primitive, press the mouse button at
some point, then drag the pointer to another point
(while holding the mouse button), then let up at
the second point. Some graphical approximation of
the primitive will be "rubber-banded" between the
two points while dragging.

While defining a primitive, points can be snapped
to other vertices or grid points.

* Key modifiers available:

  v   snap to vertex;
  g   transiently defeat the grid.

4  draw_line_tool
=TITLE Draw Line

* Key modifiers available:

  -   draw horizontally from 1st point;
  \   draw vertically from 1st point;
  =   draw diagonally (45 degrees) from 1st point,
      in any quadrant.
  o   draw using 1st point as center (can be
      combined with others).

4  draw_rectangle_square_tool
=TITLE Draw Rectangle/Square

Rectangles are dragged, then filled with the
current color.

* Key modifiers available:

  =   draw a square from 1st point;
  o   draw using 1st point as center
      (can be combined with others).

4  draw_oval/circle_tool
=TITLE Draw Oval/circle

Ovals are dragged, then filled with the current
color.

* Key modifiers available:

  =   draw a circle from 1st point;
  o   draw using 1st point as center
      (can be combined with others).

4  draw_polycurve_tool
=TITLE Draw Polycurve

The polycurve tool lets you draw a connected
sequence of cubic, Bezier curves. The first curve
requires that you place the 1st point, then three
following points. Each point of an "unfinished"
curve in the sequence is connected to the next
point by a dotted line segment, showing the
"hull", as well as the curve itself.

After the last point finishes a curve, the first
point of the next curve is automatically placed,
along the line connecting the last with the next-
to-last points of the previous curve, with the
same distance, thus ensuring C1 continuity. If
desired, this point can be re-positioned with key
modifiers.

* Key modifiers available:

  -   draw horizontally from previous point;
  \   draw vertically from previous point;
  =   draw diagonally (45 degrees) from previous
      point, in any quadrant.
  o   draw using 1st point as center
      (can be combined with others).
  ,   "relax" for G1 continuity - re-position 1st
      point of connected curve, along the line between
      last and next-to-last points of previous curve.
  .   "corner" for C0 continuity - re-position 1st
      point of connected curve, without constraint.
  /   Draw a simple, connected line segment, not a
      Bezier segment.

The piece-wise connected curve can be "finished"
as a whole in 1 of 3 ways:

 - choose another tool. Any "unfinished" segments
   are removed.

 - double-click on an end point. Whether
   "unfinished" segments are removed or become
   completed curves depends on how each of the two
   clicks are inter- preted before they become a
   double click. Which renders this method somewhat
   dangerous.

 - close it, by placing the last point "close
   enough" to the first. The point of closure has C1
   continuity.

The author of the polycurve interaction would like
to stress that he, too, finds the interaction less
than satisfactory, and has not done better for
lack of time.

4  draw_fit_tool
=TITLE Draw Free-Hand Curves

This tool allows you to draw a free-hand curve.
Each point traced while the mouse button is held
down is traced as a point. After the button is let
up, the best, continuous curve is fitted to these
points.

For free-hand curves, only the 1st and last points
are snapped to the grid if active. The usual
horizontal, vertical and diagonal key modifiers
are available, but with limited usefulness (go
ahead and try; you'll see).

4  draw_symbol_tool
=TITLE Draw Symbol

When you choose the symbol tool, the symbol-style
dialog will automatically appear on the right-hand
side of the screen. This dialog allows you to
choose the symbol font, as well as the string to
be drawn with this font. Afterwards when you
choose another tool, the dialog will go away, if
you haven't already dismissed it.

To draw the string, drag its bounding-box. The
string will fit snugly inside. Each character will
be filled with the current color.

* Key modifiers available:

  -   draw horizontally from previous point. This
      defines the string length; the height will be
      automatically calculated using the "natural"
      aspect-ratio of the string with the chosen font.
  \   draw vertically from previous point. This
      defines the string height; the length will
      be automatically calculated using the "natural"
      aspect-ratio of the string with the chosen font.
  =   draw diagonally (45 degrees) from previous
      point, in any quadrant. The string will fit into
      the resulting, square bounding-box.
  o   draw using 1st point as center
      (can be combined with others).

Note: A symbol string is inserted as a single
primitive, regardless of the number of characters.

4  bitmap_text
=TITLE Text

When you choose the text tool, the text-style
dialog will automatically appear on the right-hand
side of the screen. This dialog allows you to
choose the initial Postscript font, size and
color, as well as the string to be drawn with
these attributes. Afterwards when you choose
another tool, the dialog will go away, if you
haven't already dismissed it.

To draw the string, place the lower-left-hand
corner and click. Note that text layers cannot be
inserted or merged into other layers, since they
are not planar maps. If the multi-select key
modifier is not held down while text is inserted,
all other selected layers will become unselected.

* Key modifier available:

  space bar   "steal" the string and style attri-
	      butes of an existing text layer by
	      holding down this key and clicking
	      on the string.

To edit existing text, designate the string to be
modified with the text tool while using the
space-bar key modifier. When you click, the
string and its attributes will appear in the
dialog box. Update the string and attributes
as you wish, then apply them to the layer
with the apply button.

Note: There is a system bug which may render the
carriage return useless within the string
edit-box. Therefore, you can use '\' to the same
effect, which will allow you to insert multi-line
strings.

4  fill_tool
=TITLE Fill

There is always a current color, shown in the
tool-box as the color of the push-button which
brings up the color-edit dialog. This color can be
either opaque or transparent.

You change the color of a region to the current
color by clicking into the region with the fill
tool.

* Key modifiers available:

  t           ignore the first transparent region
	      found, and go to the next.

  space bar   "steal" the color of an existing
	      region by holding down this key
	      and clicking on the region.
	      The current color becomes the
	      color of the designated region.

The region colored is the first found, either
transparent or opaque, while traversing the sketch
layers from top to bottom. If you wish to go
through a transparent region, instead of coloring
it, to color an opaque region below, use the 't'
key modifier.

When there are many layers with many transparent
regions, things can get a bit tricky, since you
may be seeing lower layers by looking through
multiple, transparent regions. In this case, it
may be more useful to change the ordering or
visibility of the layers.

Note that this tool is also bound to MB2.

4  extract_tool
=TITLE Extract

The extract tool allows you to extract a
region/component from an existing map, drag it,
and then form a new, selected map layer with the
translated region / component. (This is somewhat
the dual of the "merge" menu-item documented
elsewhere).

If the multi-select key modifier is not held down,
all other selected layers are unselected.

* Key modifiers available:

  shift   add the resulting map layer to the
	  current selection, i.e. don't unselect
	  other selected layers.
  c       drag and extract the component
          surrounding a designated region,
          instead of a region.


4  eraser_tool
=TITLE Eraser

The eraser allows you to erase an edge between two
vertices, as well as more complex pieces of a map
layer.

* Key modifiers available:

  c   erase a component;
  p   erase a primitive;
  m   erase a map.

In addition, you can control which color on either
side of an edge "flows" into the resulting region:
after pressing the button on the edge, drag in the
desired direction before letting up. Imagine that
you are "breaking" the edge, which is holding back
water-color like a dam.

Note that this tool is also bound to MB3.

4  cleaner_tool
=TITLE Cleaner

The cleaner tool removes all "dangling" edges
attached to a region or other more complex pieces
of a map layer.

* Key modifiers available:

  c   remove dangling edges of a component;
  m   remove dangling edges of a map.

If you designate an edge, the cleaner will erase
attached dangling edges on both sides. If you
designate a region, the cleaner will erase all
dangling edges projecting into the region, but
only the sides within the region.

4   scale_tool
=TITLE Scale

Choosing the scale/rotate tool displays the
"anchor" associated with each view as a small
cross. When using the tool, one always has the
choice of either dragging the anchor to another
position or scaling/rotating with respect to the
anchor.

The current position of the anchor represents the
transformation origin. The initial anchor position
within a given view is in the center. As each view
has it's own anchor, they change position
independently. When another tool is chosen, the
anchor disappears, but saves its position for the
next time. (The only time the anchor is moved by
MapSketch, and not the user, is if the window
becomes so small that it would be hidden.)

The scale tool works with the selected layers
only. (The select-tool accelerator is very handy
in this case.) To scale, simply press the mouse
button some distance away from, and well within
one of the four quadrants around, the anchor. As
you drag this point, the selected layer edges will
deform according to the ratios of the
current-to-initial X/Y distances between anchor
and mouse positions.

Simply stated, as you drag towards the anchor,
things get smaller, and as you drag away, things
get bigger. X and Y are (generally) scaled
independently, and the closer the initial point is
to the anchor, the more sensitive the change in
ratio will be for a given pixel distance. Try it,
you'll see.

* Key modifiers available:

  -   scale only the X dimension;
  \   scale only the Y dimension;
  =   scale uniformly in X and Y;

Crossing quadrants behaves naturally; that is,
inversions are allowed.

4  rotate_tool
=TITLE Rotate

Choosing the scale/rotate tool displays the
"anchor" associated with each view as a small
cross. When using the tool, one always has the
choice of either dragging the anchor to another
position or scaling/rotating with respect to the
anchor.

The current position of the anchor represents the
transformation origin. The initial anchor position
within a given view is in the center. As each view
has it's own anchor, they change position
independently. When another tool is chosen, the
anchor disappears, but saves its position for the
next time. (The only time the anchor is moved by
MapSketch, and not the user, is if the window
becomes so small that it would be hidden.)

The rotate tool works with the selected layers
only. (The select-tool accelerator is very handy
in this case.) To rotate, simply press the mouse
button some distance away from the anchor. As you
drag this point, the selected layer edges will
rotate around the anchor according to the angle
between the lines passing through the anchor and
the initial and current mouse positions.

Simply stated, as you drag around the anchor,
things turn in the same direction. The closer the
initial point is to the anchor, the more sensitive
the change in rotation will be for a given pixel
distance. Try it, you'll see.

4  pan_tool
=TITLE Pan

To pan a view, i.e. to move the view in relation
to the figure within it, hold down the mouse
button, drag the view "frame" to where you would
like it to be, and let up. Remember, you drag the
view, not the contents of the view.

4  zoom_tool
=TITLE Zoom

To zoom in on a figure, drag a bounding-box, as if
drawing a rectangle, around an area of the view
to be zoomed up to fit tightly within the view
boundaries. The minimum factor in the x and y
dimensions will be chosen to preserve the aspect
ratio.

To zoom out by a constant step, click in place,
without dragging.

To go back to no zoom factor, use the "Show Page"
item in the "View" menu.

* Key modifiers available:

  =   drag a square from 1st point;
  o   drag using 1st point as center
      (can be combined with others).

4  graphics_style
=TITLE Frame Style

The Frame style dialog enables you to define
rectangle and oval frame attributes. In the dialog
box provided, you can specify:

 1. frame color (default is transparent);
 2. frame width.

Width units can be points, millimeters or inches.

4  symbol_style
=TITLE Symbol Style

The Symbol style dialog enables you to define
symbol attributes. In the dialog box provided,
you can specify:

 1. symbol character string;
 2. symbol font.

4  text_style
=TITLE Text Style

The Text style dialog enables you to define text
attributes. In the dialog box provided, you can
specify:

 1. text character string;
 2. text font;
 3. font size in points (1/72 inch);
 4. fill style.

The "steal attributes" (space-bar) key modifier
allows you to fill the text dialog with the
string and attributes of a designated text layer.
Afterwards, you can edit, then send them back
to the designated text layer with the "Apply"
button.

4  color_editor
=TITLE Color Editor

The current color is shown on the Color Editor
launcher button. Click on this button to get the
Color Editor. The current color can be toggled
between transparent and opaque by clicking the
transparent/opaque button. To change the opaque
color, HSL (Hue, Saturation, Lightness) sliders
are provided.

If you have an 8-bit frame buffer, the editor will
find the closest available color in the colormap.
For monochrome users, just move the lightness
slider to switch between black and white.

To distinguish "transparent" color from white,
four vaguely cartoonish angled lines are drawn
across the top, left-hand corner.

The "steal attributes" (space-bar) key modifier
allows you to change the current color to that of
a designated region. This is useful if you want
that two regions have the same color.

(Note that mouse button 2 is always bound to the Fill tool.)

4   undo_button
=TITLE Undo

The Undo! option reverses the last action, if possible.

3  mouse_functions
=TITLE Mouse Functions

Mouse buttons 2 and 3 are each bound to a ToolBox
function:

 - MB2: Filler (color regions).
 - MB3: Eraser

In addition, while dragging with a given mouse
button for a given tool, any other button press
serves to abort the operation.

3  key_modifiers
=TITLE Key Modifiers

A table of all key modifiers is available by
choosing the "Key Modifiers..." menu item in the
"Help" pulldown menu.


