#ifdef __cplusplus extern "C" { #endif #pragma once #include "HROOT-histType.h" #include "HROOTHistTH2.h" #include "HROOTHistTH1.h" #include "HROOTCoreTNamed.h" #include "HROOTCoreTAttLine.h" #include "HROOTCoreTAttFill.h" #include "HROOTCoreTAttMarker.h" #include "HROOTCoreTObject.h" #include "STDDeletable.h" #include "HROOT-coreType.h" #define TH2POLY_DECL_VIRT(Type) \ int Type##_AddBin ( Type##_p p, TObject_p poly );\ int Type##_FillS ( Type##_p p, const char* name, double w ); #define TH2POLY_DECL_NONVIRT(Type) \ Type##_p Type##_newTH2Poly ( const char* name, const char* title, double xlow, double xup, double ylow, double yup ); #define TH2POLY_DECL_ACCESSOR(Type) \ #define TH2POLY_DEF_VIRT(Type) \ int Type##_AddBin ( Type##_p p, TObject_p poly ) {\ return ((TYPECASTMETHOD(Type, AddBin, TH2Poly))(p))->AddBin(from_nonconst_to_nonconst(poly));\ }\ \ int Type##_FillS ( Type##_p p, const char* name, double w ) {\ return ((TYPECASTMETHOD(Type, FillS, TH2Poly))(p))->Fill(name, w);\ } #define TH2POLY_DEF_NONVIRT(Type) \ Type##_p Type##_newTH2Poly ( const char* name, const char* title, double xlow, double xup, double ylow, double yup ) {\ Type* newp=new Type(name, title, xlow, xup, ylow, yup);return from_nonconst_to_nonconst(newp);\ } #define TH2POLY_DEF_ACCESSOR(Type) \ TH2_DECL_VIRT(TH2Poly) TH1_DECL_VIRT(TH2Poly) TNAMED_DECL_VIRT(TH2Poly) TATTLINE_DECL_VIRT(TH2Poly) TATTFILL_DECL_VIRT(TH2Poly) TATTMARKER_DECL_VIRT(TH2Poly) TOBJECT_DECL_VIRT(TH2Poly) DELETABLE_DECL_VIRT(TH2Poly) TH2POLY_DECL_VIRT(TH2Poly) TH2POLY_DECL_NONVIRT(TH2Poly) TH2POLY_DECL_ACCESSOR(TH2Poly) #ifdef __cplusplus } #endif