ROOT logo
// $Id: GTSIsoMaker.h 2437 2010-08-15 11:06:50Z matevz $

// Copyright (C) 1999-2008, Matevz Tadel. All rights reserved.
// This file is part of GLED, released under GNU General Public License version 2.
// For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/.

#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;  // X{GS} L{}
  ZLink<ZGlass>         mFunctor; // X{GS} L{a}

  TString		mFormula; // X{GS} 7 Textor(-width=>24)
  Algo_e		mAlgo;    // X{GS} 7 PhonyEnum(-join=>1)
  Double_t		mValue;   // X{GS} 7 Value(-range=>[-1000,1000,1,1000])

  Double_t		mXmin;    // X{GS} 7 Value(-range=>[-100,100,1,1000], -join=>1)
  Double_t		mXmax;    // X{GS} 7 Value(-range=>[-100,100,1,1000], -join=>1)
  Int_t			mXdiv;    // X{GS} 7 Value(-range=>[2, 10000,1])

  Double_t		mYmin;    // X{GS} 7 Value(-range=>[-100,100,1,1000], -join=>1)
  Double_t		mYmax;    // X{GS} 7 Value(-range=>[-100,100,1,1000], -join=>1)
  Int_t			mYdiv;    // X{GS} 7 Value(-range=>[2, 10000,1])

  Double_t		mZmin;    // X{GS} 7 Value(-range=>[-100,100,1,1000], -join=>1)
  Double_t		mZmax;    // X{GS} 7 Value(-range=>[-100,100,1,1000], -join=>1)
  Int_t			mZdiv;    // X{GS} 7 Value(-range=>[2, 10000,1])

  Bool_t                bInvertCartesian; // X{GS} 7 Bool()
  Bool_t                bInvertTetra;     // X{GS} 7 Bool()

  Double_t              mFixPointEpsilon; // X{GS} 7 Value()
  Int_t                 mFixPointMaxIter; // X{GS} 7 Value()

public:
  GTSIsoMaker(const Text_t* n="GTSIsoMaker", const Text_t* t=0) : ZGlass(n,t)
  { _init(); }

  void MakeSurface();   // X{ED} 7 MButt()

  void MakeIsoDistanceHisto(const TString& canvas_name  = "IsoDelta",
			    const TString& canvas_title = "Surface iso-value delta"); // X{ED} 7 MCWButt()
  void MovePointsOntoIsoSurface(); // X{ED} 7 MButt()

  void SetXAxis(Double_t min, Double_t max, Int_t div); // X{E}
  void SetYAxis(Double_t min, Double_t max, Int_t div); // X{E}
  void SetZAxis(Double_t min, Double_t max, Int_t div); // X{E}

#include "GTSIsoMaker.h7"
  ClassDef(GTSIsoMaker, 1);
}; // endclass GTSIsoMaker


#endif
 GTSIsoMaker.h:1
 GTSIsoMaker.h:2
 GTSIsoMaker.h:3
 GTSIsoMaker.h:4
 GTSIsoMaker.h:5
 GTSIsoMaker.h:6
 GTSIsoMaker.h:7
 GTSIsoMaker.h:8
 GTSIsoMaker.h:9
 GTSIsoMaker.h:10
 GTSIsoMaker.h:11
 GTSIsoMaker.h:12
 GTSIsoMaker.h:13
 GTSIsoMaker.h:14
 GTSIsoMaker.h:15
 GTSIsoMaker.h:16
 GTSIsoMaker.h:17
 GTSIsoMaker.h:18
 GTSIsoMaker.h:19
 GTSIsoMaker.h:20
 GTSIsoMaker.h:21
 GTSIsoMaker.h:22
 GTSIsoMaker.h:23
 GTSIsoMaker.h:24
 GTSIsoMaker.h:25
 GTSIsoMaker.h:26
 GTSIsoMaker.h:27
 GTSIsoMaker.h:28
 GTSIsoMaker.h:29
 GTSIsoMaker.h:30
 GTSIsoMaker.h:31
 GTSIsoMaker.h:32
 GTSIsoMaker.h:33
 GTSIsoMaker.h:34
 GTSIsoMaker.h:35
 GTSIsoMaker.h:36
 GTSIsoMaker.h:37
 GTSIsoMaker.h:38
 GTSIsoMaker.h:39
 GTSIsoMaker.h:40
 GTSIsoMaker.h:41
 GTSIsoMaker.h:42
 GTSIsoMaker.h:43
 GTSIsoMaker.h:44
 GTSIsoMaker.h:45
 GTSIsoMaker.h:46
 GTSIsoMaker.h:47
 GTSIsoMaker.h:48
 GTSIsoMaker.h:49
 GTSIsoMaker.h:50
 GTSIsoMaker.h:51
 GTSIsoMaker.h:52
 GTSIsoMaker.h:53
 GTSIsoMaker.h:54
 GTSIsoMaker.h:55
 GTSIsoMaker.h:56
 GTSIsoMaker.h:57
 GTSIsoMaker.h:58
 GTSIsoMaker.h:59
 GTSIsoMaker.h:60
 GTSIsoMaker.h:61
 GTSIsoMaker.h:62
 GTSIsoMaker.h:63
 GTSIsoMaker.h:64
 GTSIsoMaker.h:65
 GTSIsoMaker.h:66
 GTSIsoMaker.h:67
 GTSIsoMaker.h:68
 GTSIsoMaker.h:69
 GTSIsoMaker.h:70
 GTSIsoMaker.h:71