GraphView

Object Name		:	GraphView
Library			:	libGraphView.a
Declarations		:	GraphView.h

Description
	GraphView is a public domain data display object useful for displaying the results of numerical computation. Arrays of points, single points, or line segments are the three data types that can be registered with the GraphView object.  Since GraphView incorporates an NXStorage object, graphs can be scaled and zoomed or have their representation changed at any time. Many display and format options can be set via text fields, sliders, and buttons connected by through Interface Builder.
	
Availability
	August 1992 from NeXT archives and CD ROM with 6 mini examples and physics demonstrations (Ising Model, Laser, Pendulum, Floquet, Bloch).
	
Example 

- appDidInit:sender
{
[[[thePlotView manualXMin:0.0] manualXMax:100.0] setXMajorTickWidthTo:20.0];
[[[thePlotView manualYMin:-1.0] manualYMax:1.0] setYMajorTickWidthTo:0.2];
[thePlotView setCurrentPenColorToRGBColor:0:0:0];
return self;
}

-plotController:sender
{ 
  NXDPoint aPoint;
  .
  .        
  [thePlotView addThePoint:aPoint];
  .
  .
  return self;
}

Dynamic Storage
	As opposed to a passive view, which simply plots points as they come along and retains no history, GraphView provides the user with dynamic data storage.  The controller of the application, responsible for generating the data need not store the data; GraphView does that automatically.
	The object can receive data as of NXDPoints, a double precision version of NXPoints, defined in GraphView.h.  This data can be retrieved in the form of an array.
	
Drawing Concepts
	The drawing portion uses the model of a pen.  The pen can receive attributes in the form of color, nibsize and stroke style.
	HSB and RGB color models are supported.  The nibsize is not static.  The nibSize is stored as a fraction of the window width and height, in screen coordinates.  The size can be changed through method calls by external senders or by the application's controller.
	The stroke styles supported are CIRCLE, SQUARE, SLINE (Solid Line) and DLINE (Dashed Line).
	
Data Formatting
	The object can rescale each axis individually.  Scales, ticks and titles can be set individually.  All formatting options pertaining to the data can be modified for each axis separately.  The axes can be left fixed at the center, left, right, top or bottom or floating.  In the floating mode, the axes follow the origin as long as the latter is with the guttered view.  The gutterwidth can also be modified.
	Tick labels appear in powers-of-ten format.  The order of the power appears on the axes.  The tick-label frequency is auto-sensed to accomodate long labels and provide uncluttered tick labeling.
	
Color
	Dawing in color can be disabled.  This does NOT discard color information, merely suppresses it during rendering..
	
Mouse Controls
	The mouse can be used in the view to zoom/unzoom and display location of the cursor.  The mouse by itself zooms in with a twenty-level history.  The Shift+Mouse combination allows unzoom and Alt+Mouse allows display of mouse location in a text cell within the view.