ROOT logo
// $Id: PSRectangle.h 2118 2009-01-11 21:31:58Z 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_PSRectangle_H
#define Var1_PSRectangle_H

#include <Glasses/ParaSurf.h>

class PSRectangle : public ParaSurf
{
  MAC_RNR_FRIENDS(PSRectangle);

private:
  void _init();

protected:
  Float_t          mMinX; // X{GS} 7 Value(-join=>1)
  Float_t          mMaxX; // X{GS} 7 Value()
  Float_t          mMinY; // X{GS} 7 Value(-join=>1)
  Float_t          mMaxY; // X{GS} 7 Value()

  Opcode::Plane*   mEdgePlanes; //!

public:
  PSRectangle(const Text_t* n="PSRectangle", const Text_t* t=0);
  virtual ~PSRectangle();

  virtual void SetupEdgePlanes();

  virtual Float_t Surface();

  virtual void origin_fgh(Float_t* g);
  virtual void origin_pos(Float_t* x);

  virtual void pos2fgh(const Float_t* x, Float_t* f);
  virtual void fgh2pos(const Float_t* f, Float_t* x);

  virtual void fgh2fdir(const Float_t* f, Float_t* d);
  virtual void fgh2gdir(const Float_t* f, Float_t* d);
  virtual void fgh2hdir(const Float_t* f, Float_t* d);

  virtual void    pos2hdir(const Float_t* x, Float_t* d);
  virtual Float_t pos2hray(const Float_t* x, Opcode::Ray& r);

  virtual void    pos2grav(const Float_t* x, GravData& gd);

  virtual void random_fgh(TRandom& rnd, Float_t* f);
  virtual void random_pos(TRandom& rnd, Float_t* x);

  virtual Int_t          n_edge_planes() { return 4; }
  virtual Opcode::Plane* edge_planes()   { return mEdgePlanes; }

  virtual Bool_t  support_wrap()  { return true; }
  virtual void    wrap(Float_t* x, Int_t plane, Float_t dist);

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


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