Programmers Documentation for Stream Mode Digitizing Extension for ArcView

OVERVIEW
This extension contains a Form that allows the user to digitize graphics or
shapes on-screen using a 'Stream' mode rather than a 'Click' mode. Stream mode
means that coordinates are recorded based on the location of the mouse without
having to specify vertices by clicking on the mouse. Just move the mouse on the
View document and the coordinates are recorded.

Stream mode digitizing is for PolyLines and Polygons only. There is no reason
to support Stream capture of Point features.

Using the tools on this form you can:

1) Capture Lines
2) Capture Polygons
3) Split Polygons or Lines
4) Append to Existing Polygons

HOW TO USE THE TOOLS.

When you load the extension you will see a new button added to the View Document 
Interface with a squiggly line as the icon. This button opens the Stream Mode Digitizing
Form. This form has a couple of inputs and 4 tools. Each tool is used to add or modify
shapes on a view document. To digitize simply press the tool of interest, move the mouse over
the View document and press the left mouse button once to start the digitizing process.
As you move the mouse around the view, the line or polygon you are capturing is displayed.
To stop digitizing simply double-click the left mouse button. At this point the line will be
smoothed and Generalized if the options are checked, and then added to the View.

If a theme is editable the shape will be added to that theme. If no themes are editable
then the shape will be added as a graphic to the View.

AUTOPAN Feature

The AutoPanning feature provides the functionality to Automatically pan once the mouse is
within 5% of the edge of the View Window. When this option is checked you see a gray
dashed line that represents where that extent is. When the mouse is move into that area the screen
will be panned so that point is in the middle of the View. Stream Digitizing is temporarily suspended
and to continue the line just click on the mouse where you want the line to re-start. Once you
get the hang of it, it's pretty easy to use.

SUSPENDING STREAM-DIGITIZING IN MID-STREAM

Pressing and holding the ALT key will temporarily suspend the stream-digitizing process. This is usefull
when you run into a situation where there are straight-line segments that are better digitized as two
points rather than a string of points. It's also usefull when you have to situate the mouse or to stretch
your arm or some other action in which you don't want ArcView to collect points. To restart the line just
release the ALT key and press the mouse once to re-start.

TOLERANCES

There are two tolerances that you need to be aware of when using this extension:

Smoothing Level - This option causes lines added by the user to be smoothed using an Iterative
Bezier Curve algorithm. Use the Slider bar to define the amount of smoothing you want to occurr. 
More smoothing causing corners loose their definition, less smoothing causes the line to be more
like the original but smoother. The smoothed lines use the Distance Tolerance as a step distance in
an attempt to keep the distance between vertices as close to this value as possible.

Distance Tolerance - This tolerance is used when actually capturing points. Any 
new point that is closer to the previous point than this tolerance is not captured.
This tolerance is used to prevent a horribly dense line.

The default value is calculated as 1/10,000 of the View extent. You can change the
tolerance by typing in a value or by interactively defining a circle on the view using
the Interactive Distance Tolerance tool.

HOW IT ALL WORKS.

As you add a line or polygon the coordinates of the current mouse location are recorded 
every 0.1 seconds. Each point is compared with the previous point to see if it outside the
distance tolerance. If it is then it is added as a line segment. Once you release the mouse,
if the Smooth Lines option is selected, the line will then be smoothed. During
this process, vertices will be added to the line to facilitate the smoothing at approximately.
the distance tolerance.
Then, if the Weed option is selected, the new line will be weeded using the distance tolerance value
value, ensuring that no two vertices in the line are closer than this distance.
value. 

SNAPPING
There are no snapping options in this tool-set. All snapping defined by the Theme's properties
are applied. Consult the ArcView documentation on snapping to learn more....

NOTE:
This is a beta release of the product. If you find any problems with it please contact
Tim Loesch at tim.loesch@dnr.state.mn.us or via phone at (651) 296-0654.
