ROOT logo
// $Id: PSTriangle.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_PSTriangle_H
#define Var1_PSTriangle_H

#include <Glasses/ParaSurf.h>

class PSTriangle : public ParaSurf
{
  MAC_RNR_FRIENDS(PSTriangle);

private:
  void _init();

protected:
  Float_t  mX0; // X{GS} 7 Value(-join=>1)
  Float_t  mY0; // X{GS} 7 Value()
  Float_t  mX1; // X{GS} 7 Value(-join=>1)
  Float_t  mY1; // X{GS} 7 Value()
  Float_t  mX2; // X{GS} 7 Value(-join=>1)
  Float_t  mY2; // X{GS} 7 Value()

  Opcode::Plane*   mEdgePlanes; //!

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

  void Scale(Float_t s);

  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 3; }
  virtual Opcode::Plane* edge_planes()   { return mEdgePlanes; }

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


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