#ifndef _H1D_H_
 
#define _H1D_H_
 
 
 
#ifdef _CVI_ 
 
#include <cvidef.h>
 
#include <ivi.h>
 
#include <userint.h>
 
#else
 
#define _VI_FUNC
 
#endif
 
 
 
#include <stdio.h>
 
 
 
 
 
/* 2d histogramming */
 
#define H1DMAX 500
 
#define H1D_ID 0x11
 
#pragma pack(4)
 
typedef struct {
 
  unsigned int id,len;
 
  unsigned int nx;
 
  int nentries;
 
  unsigned int size;
 
  double min;
 
  double max;
 
  double minx;
 
  double stepx;
 
 
 
  char name[20];
 
  char title[100];
 
  char titlex[40];
 
  char titley[40];
 
  char x[4]; // correct alignment on the 64 bit windows
 
  double *data;
 
} H1D;
 
#pragma pack()
 
 
 
 
 
double  _VI_FUNC  H1D_GetXBinCenter(int h2d,int xbin);
 
 
 
int  _VI_FUNC  H1D_Clear(int h2d);
 
int  _VI_FUNC H1D_Print(int h2d);
 
int  _VI_FUNC H1D_Exist(int h2d);
 
int  _VI_FUNC H1D_GetBin(int h2d, double value);
 
int  _VI_FUNC H1D_Fill(int h2d,double x, double val);
 
int  _VI_FUNC H1D_FillBin(int h2d,int x, double val);
 
int  _VI_FUNC H1D_SetBinContent(int h2d,int x, double val);
 
double  _VI_FUNC H1D_GetBinContent(int h2d,int atx);
 
int  _VI_FUNC H1D_Init(int h2d,char *name, char *title,int nx, double minx, double maxx);
 
int  _VI_FUNC H1D_Write(int h2d,const char *fname,const char*opt);
 
int  _VI_FUNC H1D_Write2File(int h2d,FILE *fp);
 
int  _VI_FUNC H1D_SetTitle(int h2d,char *title);
 
int  _VI_FUNC H1D_SetTitleX(int h2d,char *title);
 
int  _VI_FUNC H1D_SetTitleY(int h2d,char *title);
 
int  _VI_FUNC H1D_SetName(int h2d,char *title);
 
 
 
char *  _VI_FUNC H1D_GetTitleX(int h1d);
 
 
 
char *  _VI_FUNC H1D_GetTitleY(int h1d);
 
 
 
char *  _VI_FUNC H1D_GetTitle(int h1d);
 
 
 
 
 
 
 
int  _VI_FUNC H1D_GetNbinsX(int h);
 
 
 
double  _VI_FUNC H1D_GetMinX(int h);
 
double  _VI_FUNC H1D_GetMaxX(int h); 
 
 
 
double  _VI_FUNC H1D_GetStepX(int h);
 
double  _VI_FUNC H1D_GetMin(int h);
 
double  _VI_FUNC H1D_GetMax(int h);
 
double *  _VI_FUNC H1D_GetData(int h);
 
int  _VI_FUNC  H1D_Draw(int histogram,int panel, int control, int *plothandle) ;
 
 
 
#endif /* _H1D_H_ */