Funplot.h

Funplot - 2D data plotting environment, version 1.0


C++ Header File as Programming Interface:

/*******************************************************************************

  Funplot

  Comfortable 2D display library for screen graphics with Windows.

  Friend of the class 'Fun' this facade class provides a fast way to display
  2-dimensional graphics online (during simulation) or for post-processing
  on screen. Multiple graphs (lines) within one window are foreseen, multiple
  instantiations of windows are the big advantage.

  $Name: Funplot_v10 $
  $Revision: 1.6 $
  $Date: 2006/03/23 11:05:26 $

  Copyright © 1998-2006 Domenico Reggio, Software-Engineering

*******************************************************************************/


#ifndef FUNPLOT_H
#define FUNPLOT_H


#include <windows.h>
#include "FunplotDef.h"

class Funplot
{
  friend class Fun;
  Fun *fun;

public:

  // Constructors, Destructor, Assign Operator
  Funplot(char *funTitle="Funplot");
  Funplot(Funplot&);
  Funplot& operator=(Funplot&);
  ~Funplot(void);

  // Initialisation and Set Functions for
  // ... Plot Window
  void   SetWindowPos(short xWinPos, short yWinPos);
  void   SetAutoWindow(short numRows, short numCols, short element);
  void   SetWindowSize(short xWinSize, short yWinSize);
  void   SetWindowTitle(char *windowTitle);
  void   SetFullScreen(void);
  void   SetZoomMode(short zoomMode);
  void   SetColorScheme(short colorScheme);
  void   SetUserFile(short userFile);
  void   SetFocus(void);
  void   Rise(void);

  // ... Axes System
  void   SetRange(double xMin, double xMax, double yMin, double yMax,
                  bool storeLast=true);
  void   SetTicks(double xTick, double yTick);
  void   SetTicks(double xTick, double yTick, double xSubTick, double ySubTick);
  void   SetXTicks(double xTick);
  void   SetXTicks(double xTick, double xSubTick);
  void   SetYTicks(double yTick);
  void   SetYTicks(double yTick, double ySubTick);
  void   SetLables(char* xLable, char* yLable, char* axesTitle="");
  void   SetUserInterface(short userInterface);
  void   ShowCoorSystem(short showCoorSystem);
  void   ShowLegend(short showLegend);
  void   ShowGrid(short showGrid);
  void   SetAspectRatio(short aspectRatio);
  void   SetOriginalRange(void);
  void   SetColorSet(short colorPalette, short numColors=16);

  // ... Graphs
  void   SetGraphsReadMode(short readMode);
  void   SetGraphLinesDrawRate(short linesDrawRate, short graphNum=0);
  void   SetGraphPointsDrawRate(short pointsDrawRate, short graphNum=0);
  void   SetGraphMarkerDrawRate(short markerDrawRate, short graphNum=0);
  void   SetGraphFixDrawRate(bool fixDrawRate, short graphNum=0);
  void   SetGraphLineWidth(short lineWidth, short graphNum=0);
  void   SetGraphColorNum(short colorNum, short graphNum=0);
  void   SetGraphMarkerType(short markerType, short graphNum=0);
  void   SetGraphType(short type, short graphNum=0);
  void   SetGraphLable(char* lable, short graphNum=0);
  void   SetGraphPointsSize(short pointsSize, short graphNum=0);
  void   SetGraphMarkerSize(short markerSize, short graphNum=0);
  void   ShowGraphLines(short showLines, short graphNum=0);
  void   ShowGraphPoints(short showPoints, short graphNum=0);
  void   ShowGraphMarker(short showMarker, short graphNum=0);

  // Graphs Output
  void   LineTo(double x, double y, short graphNum=1);
  void   LineOut(double x1, double y1, double x2, double y2,
                 short graphNum=1);
  void   PixelOut(double x, double y, short graphNum=1);
  void   CircleOut(double x, double y, double r, short numPoints,
                   short graphNum=1);
  void   RectangleOut(double x, double y, double dx, double dy,
                      short graphNum=1);
  void   PolylineOut(double *x, double *y, long numPoints,
                     double factorX, double factorY, short graphNum=1);
  void   ClosedPolylineOut(double *x, double *y, long numPoints,
                           double factorX, double factorY, short graphNum=1);
  void   AddLineTo(double x, double y, short graphNum=1);
  void   AddPixel(double x, double y, short graphNum=1);
  void   NewLine(short graphNum=1);

  // Graph Handling
  void   SetNumGraphs(short numGraphs);
  short  GetNumGraphs(void);
  long   GetGraphNumPoints(short graphNum=1);
  void   GetGraphData(double* x, double* y, long pointNum, short graphNum=1);
  void   GetGraphDataAtt(short* att, long pointNum, short graphNum=1);
  short  NewGraph(void);
  void   DeleteGraph(short graphNum);
  void   DeleteAllGraphs(void);

  // Autorange features
  void   AutoRange(void);
  void   AutoRangeX(void);
  void   AutoRangeY(void);
  void   AutoTicks(void);
  void   AutoXTicks(void);
  void   AutoYTicks(void);

  // Copy, Print or Save Figure
  void   CopyToClipboard(short colorMode, short resolution=0);
  void   SaveFigure(short colorMode, short resolution, char* fileName);
  void   Print(short colorMode, double printFactor=1);
  void   PrintSession(short colorMode, double printFactor=1);

  // File Opening, Adding and Save
  bool   FileOpen(short openInfo);
  void   FileAutoOpen(char* fileName, short openInfo);
  bool   FileOpenDirect(char* fileName, short openInfo);
  bool   FileSave(short saveInfo);
  bool   FileSaveDirect(char* fileName, short saveInfo);
  bool   FileOpenDialogBox(char* filePathAndName, char* boxTitle="Open",
                           char* filterDisplay="", char* filterPattern="");
  bool   FileSaveDialogBox(char* filePathAndName, char* boxTitle="Save",
                           char* filterDisplay="", char* filterPattern="");
  short  CheckUserFileRequest(void);

  // Uncategorised
  void   Update(void);
  void   MessageBoxExclamation(char *messageText);
  void   MessageBoxInformation(char *messageText);

  // Class Register
  static void ClassRegister(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                            int nCmdShow);

  // Messages Control
  static void  MessageCheck(void);
  static int   MessageLoop(void);
  static short CheckUserBreak(void);

  // Instances Control
  static void  CloseAllWindows(void);
  static void  MinimizeAllWindows(void);
  static void  MaximizeAllWindows(void);
  static void  ShowNormalAllWindows(void);
  void ShowWindow(void);
  void HideWindow(void);

  // Default Settings for Session
  static void SetDefValue(char* paramStr, double value);
};


#endif


Funplot is not free software! Please read carefully the License Agreement!

e-mail:   support@VanillaWare.de
www:   http://www.VanillaWare.de

Copyright © 1998-2006 Domenico Reggio, Software-Engineering.