#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 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];
double *data;
} H1D;
#pragma pack()
double _VI_FUNC H1D_GetYBinCenter(int h2d,int ybin);
double _VI_FUNC H1D_GetYBinCenter(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_ */