Description:

    The Mandelbrot part handler is a Mandelbrot set viewer.  It is based
    on the xmandel program which is included in the "contrib" portion of
    the X Window System distribution.  It was originally provided in the 
    OpenDoc for AIX Early Experience Package as an example of a port of
    an existing application to a (non-container) OpenDoc part handler.
    

Files:

    readme.txt    --  This file.
    iodmandl.idl  --  SOM IDL definitions for SOM class Mandelbrot and
                      meta class M_Mandelbrot.
    iodmandl.cpp  --  Class member functions
    iodmandl.h    --  Header file
    iodmandl.def  --  Library definitions
    makefile      --  NMAKE file (To build part run: nmake -f makefile.win)


Mandelbrot Set Theory:

    Let z0 be a number in the complex plane (x + yi).  Choose a complex
    constant C.  Calculate z1 = z0**2 + C.  Repeat this recursively so
    that z2 = z1**2 + C, z3 = z2**2 + C, and so on.  z[n] will either
    tend to infinity or zero depending on its initial value and the 
    constant C.  Specifically, if the absolute value of z[n], expressed 
    as |z| = sqrt(x**2 + y**2), is greater than 2 then the recursive 
    formula will diverge.

    To calculate the Mandelbrot set take each point near (0, 0i) and use
    the formula z = z**2 + C recursively, using for C the initial value
    of the point itself (C = z0).  The Mandelbrot set is the set of points
    for which z = z**2 + C would iterate indefinitely.  Pixels, which 
    represent points in the complex plane, are set to the number of 
    iterations before |z| exceeds 2.  This then becomes an index into the 
    colormap and each color then represents the number of iterations before
    divergence is detected.


Usage:

    The Mandel part handler initially displays the region around the
    entire set.  By activating the part and choosing the Zoom In item
    of the Mandelbrot menu the user can begin a selection of an area
    to magnify.  The selection is started by pressing the left mouse
    button and dragging.  Releasing the mouse button begins the recalcu-
    lation of the set data for the new area.  Choosing the Zoom Out menu 
    item will cause the part to recalculate using the previous coordinates.
    Choosing the Reset menu item will cause a return to the original 
    coordinates.

    The iteration limit is initially set to 128.  This is a resonable value
    until the magnification level is increased on an area near the edge of
    the Mandelbrot set.  The iteration limit can be increased by choosing
    the Increase Iterations menu item.  This will increase the iteration 
    limit by 128 each time the item is chosen.  The limit can be set back
    to the initial value by choosing the Reset Iterations menu item.

    The current coordinates and iteration limit are available in a dialog
    box which is invoked when the "Info..." menu item is selected.


Limitations and Known Bugs:

    This version of the Mandel part handler is limited to working properly
    on 8-bit displays (256 colors).

    This version of the Mandel part handler does not support printing.

    There is no feedback given while dragging out the zoom area during a
    zoom-in operation.

