#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;
Float_t mY0;
Float_t mX1;
Float_t mY1;
Float_t mX2;
Float_t mY2;
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);
};
#endif