home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / files / misc / math / fastplot / source / plotlibrary.def < prev    next >
Encoding:
Modula Definition  |  1995-03-27  |  4.4 KB  |  157 lines

  1. (*********************************************************************)
  2. (*                                                                   *)
  3. (* Module PlotLibrary Copyright © 1994 by Computer Inspirations      *)
  4. (*                                                                   *)
  5. (*********************************************************************)
  6.  
  7. DEFINITION MODULE PlotLibrary;
  8.  
  9.  
  10. TYPE
  11.   PlotType;  (* Opaque type -- holds plot characteristics *)
  12.  
  13.   PlotFunction = PROCEDURE(REAL) : REAL;
  14.   LabelProc    = PROCEDURE(INTEGER, VAR ARRAY OF CHAR);
  15.  
  16.   PlotKindType = (Normal, Line, Bar, LogX, LogY, Log);
  17.  
  18.   LineType     = ARRAY [0..80] OF CHAR;
  19.   PositionType = (UpperLeft, UpperMiddle, UpperRight,
  20.                   LowerLeft, LowerMiddle, LowerRight);
  21.  
  22. (*-------------------------------------------------------
  23.  
  24.   Plot creation and maintenance routines
  25.  
  26.   ------------------------------------------------------*)
  27.  
  28. PROCEDURE InitPlot(VAR Plot               : PlotType;
  29.                    MainTitle              : ARRAY OF CHAR;
  30.                    PlotKind               : PlotKindType;
  31.                    xMin, xMax, yMin, yMax : REAL;
  32.                    width, height          : INTEGER;
  33.                    xDiv, yDiv             : CARDINAL;
  34.                    xSubDiv, ySubDiv       : CARDINAL;
  35.                    xDec, yDec             : CARDINAL;
  36.                    NumberOfColours        : CARDINAL)
  37.                    : BOOLEAN;
  38.  
  39.  
  40. PROCEDURE InitOffsetPlot
  41.                   (VAR Plot               : PlotType;
  42.                    PlotKind               : PlotKindType;
  43.                    xMin, xMax, yMin, yMax : REAL;
  44.                    width, height          : INTEGER;
  45.                    xDiv, yDiv             : CARDINAL;
  46.                    xSubDiv, ySubDiv       : CARDINAL;
  47.                    xDec, yDec             : CARDINAL;
  48.                    xOffset, yOffset       : INTEGER;
  49.                    OldPlot                : PlotType)
  50.                    : BOOLEAN;
  51.  
  52.  
  53. PROCEDURE DonePlot(VAR Plot : PlotType);
  54.  
  55.  
  56. PROCEDURE PlotFx(Plot : PlotType; Fx : PlotFunction);
  57.  
  58.  
  59. PROCEDURE Empty() : PlotType;
  60.  
  61.  
  62. (*-------------------------------------------------------
  63.  
  64.   Plot modification routines for more functionality
  65.  
  66.   ------------------------------------------------------*)
  67.  
  68. PROCEDURE ClearPlot(Plot : PlotType);
  69.  
  70.  
  71. PROCEDURE InformationBox(Plot          : PlotType;
  72.                          Position      : PositionType;
  73.                          Lines         : ARRAY OF LineType;
  74.                          FillColour    : CARDINAL;
  75.                          OutlineColour : CARDINAL);
  76.  
  77.  
  78. PROCEDURE PlotLine(Plot           : PlotType;
  79.                    Colour         : CARDINAL;
  80.                    x1, y1, x2, y2 : REAL);
  81.  
  82.  
  83. PROCEDURE SetColourMap(Plot             : PlotType;
  84.                        ColourIndex      : CARDINAL;
  85.                        Red, Green, Blue : CARDINAL);
  86.  
  87.  
  88. PROCEDURE SetPlotColour(Plot   : PlotType;
  89.                         Colour : CARDINAL);
  90.  
  91.  
  92. PROCEDURE SetPlotLimits(Plot                   : PlotType;
  93.                         xMin, xMax, yMin, yMax : REAL);
  94.  
  95.  
  96. PROCEDURE SetPlotScale (Plot           : PlotType;
  97.                         xscale, yscale : REAL);
  98.  
  99.  
  100. PROCEDURE SetPlotOffset(Plot       : PlotType;
  101.                         xoff, yoff : INTEGER);
  102.  
  103.  
  104. PROCEDURE SetTextColour(Plot   : PlotType;
  105.                         Colour : CARDINAL);
  106.  
  107.  
  108. PROCEDURE SetGridColour(Plot   : PlotType;
  109.                         Colour : CARDINAL);
  110.  
  111.  
  112. PROCEDURE SetZeroLine  (Plot   : PlotType;
  113.                         On     : BOOLEAN);
  114.  
  115.  
  116. PROCEDURE SetScatterPlot(Plot  : PlotType);
  117.  
  118.  
  119. PROCEDURE SetScatterChar(Plot  : PlotType;
  120.                          Ch    : CHAR);
  121.  
  122.  
  123. (*-------------------------------------------------------
  124.  
  125.   Plot labelling routines
  126.  
  127.   ------------------------------------------------------*)
  128.  
  129. PROCEDURE CenterLabelX(Plot  : PlotType;
  130.                        Label : ARRAY OF CHAR;
  131.                        y     : INTEGER);
  132.  
  133.  
  134. PROCEDURE CenterLabelY(Plot  : PlotType;
  135.                        Label : ARRAY OF CHAR;
  136.                        x     : INTEGER);
  137.  
  138.  
  139. PROCEDURE LabelX(Plot  : PlotType;
  140.                  Label : ARRAY OF CHAR;
  141.                  x, y  : INTEGER);
  142.  
  143.  
  144. PROCEDURE LabelY(Plot  : PlotType;
  145.                  Label : ARRAY OF CHAR;
  146.                  x, y  : INTEGER);
  147.  
  148.  
  149. PROCEDURE LabelMinMax(Plot : PlotType;
  150.                       Fx   : PlotFunction);
  151.  
  152.  
  153. PROCEDURE SetLabelRoutine(Plot         : PlotType;
  154.                           LabelRoutine : LabelProc);
  155.  
  156.  
  157. END PlotLibrary.