#ifndef GTS_GTSIsoMaker_H
#define GTS_GTSIsoMaker_H
#include <Glasses/ZGlass.h>
#include <Glasses/GTSurf.h>
class GTSIsoMakerFunctor;
class GTSIsoMaker : public ZGlass
{
MAC_RNR_FRIENDS(GTSIsoMaker);
public:
enum Algo_e { A_Cartesian, A_Tetra, A_TetraBounded, A_TetraBCL };
private:
void _init();
protected:
ZLink<GTSurf> mTarget;
ZLink<ZGlass> mFunctor;
TString mFormula;
Algo_e mAlgo;
Double_t mValue;
Double_t mXmin;
Double_t mXmax;
Int_t mXdiv;
Double_t mYmin;
Double_t mYmax;
Int_t mYdiv;
Double_t mZmin;
Double_t mZmax;
Int_t mZdiv;
Bool_t bInvertCartesian;
Bool_t bInvertTetra;
Double_t mFixPointEpsilon;
Int_t mFixPointMaxIter;
public:
GTSIsoMaker(const Text_t* n="GTSIsoMaker", const Text_t* t=0) : ZGlass(n,t)
{ _init(); }
void MakeSurface();
void MakeIsoDistanceHisto(const TString& canvas_name = "IsoDelta",
const TString& canvas_title = "Surface iso-value delta");
void MovePointsOntoIsoSurface();
void SetXAxis(Double_t min, Double_t max, Int_t div);
void SetYAxis(Double_t min, Double_t max, Int_t div);
void SetZAxis(Double_t min, Double_t max, Int_t div);
#include "GTSIsoMaker.h7"
ClassDef(GTSIsoMaker, 1);
};
#endif