ROOT logo
// $Id: GravPlotter.h 2120 2009-01-12 22:48:32Z 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 Var1_GravPlotter_H
#define Var1_GravPlotter_H

#include <TNamed.h>

#include "GravData.h"

class ParaSurf;
class TriMesh;

class TF2;
class TCanvas;

class GravPlotter : public TNamed
{
private:
  void _init();

protected:
  ParaSurf* fPS;
  GravData  fGD;

  Float_t   fXm, fXM, fZm, fZM;
  Int_t     fNDiv;

  void fill_gd(Double_t *x);

  typedef Double_t (GravPlotter::*tf2_foo)(Double_t*, Double_t*);

  TF2* make_tf2(const Text_t* n, const Text_t* t, tf2_foo foo);
  void draw_tf2(TF2* f);

public:
  TF2* fMag;
  TF2* fH;
  TF2* fAngle;
  TF2* fXDir;
  TF2* fZDir;
  TF2* fGrad;

  TString fDrawOpt;

  Double_t grav_mag  (Double_t *x, Double_t *params);
  Double_t grav_h    (Double_t *x, Double_t *params);
  Double_t grav_angle(Double_t *x, Double_t *params);
  Double_t grav_xdir (Double_t *x, Double_t *params);
  Double_t grav_zdir (Double_t *x, Double_t *params);
  Double_t grav_grad (Double_t *x, Double_t *params);

public:
  GravPlotter(const Text_t* n="GravPlotter", const Text_t* t=0);
  GravPlotter(ParaSurf* ps, Float_t fac=2, Int_t n_div=512);

  virtual ~GravPlotter();

  TCanvas* StandardCanvas();

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

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