#ifndef ROOT_TEveStraightLineSet
#define ROOT_TEveStraightLineSet
#include "TEveUtil.h"
#include <Gtypes.h>
#include "TNamed.h"
#include "TQObject.h"
#include "TAtt3D.h"
#include "TAttMarker.h"
#include "TAttLine.h"
#include "TAttBBox.h"
#include "TEveUtil.h"
#include "TEveElement.h"
#include "TEveProjectionBases.h"
#include "TEveChunkManager.h"
#include "TEveTrans.h"
class TRandom;
class TEveStraightLineSet : public TEveElement,
                            public TEveProjectable,
                            public TNamed,
                            public TQObject,
                            public TAtt3D,
                            public TAttLine,
                            public TAttMarker,
                            public TAttBBox
{
private:
   TEveStraightLineSet(const TEveStraightLineSet&);            
   TEveStraightLineSet& operator=(const TEveStraightLineSet&); 
public:
   struct Line_t
   {
      Float_t        fV1[3];
      Float_t        fV2[3];
      TRef           fRef;
      Line_t(Float_t x1, Float_t y1, Float_t z1,Float_t x2, Float_t y2, Float_t z2)
      {
         fV1[0] = x1, fV1[1] = y1, fV1[2] = z1;
         fV2[0] = x2, fV2[1] = y2, fV2[2] = z2;
      }
   };
   struct Marker_t
   {
      Int_t        fLineID;
      Float_t      fPos;
      TRef         fRef;
      Marker_t(Int_t lineID, Float_t pos) : fLineID(lineID), fPos(pos) {};
   };
protected:
   TEveChunkManager  fLinePlex;
   TEveChunkManager  fMarkerPlex;
   Bool_t            fOwnLinesIds;       
   Bool_t            fOwnMarkersIds;     
   Bool_t            fRnrMarkers;
   Bool_t            fRnrLines;
   Line_t*           fLastLine; 
   Bool_t            fTrans;
   TEveTrans         fHMTrans;
public:
   TEveStraightLineSet(const Text_t* n="StraightLine", const Text_t* t="");
   virtual ~TEveStraightLineSet() {}
   virtual Bool_t  CanEditMainHMTrans() { return  kTRUE; }
   virtual TEveTrans* PtrMainHMTrans()  { return &fHMTrans; }
   TEveTrans& RefHMTrans() { return fHMTrans; }
   void SetTransMatrix(Double_t* carr)        { fHMTrans.SetFrom(carr); }
   void SetTransMatrix(const TGeoMatrix& mat) { fHMTrans.SetFrom(mat);  }
   virtual void SetLineColor(Color_t col) { SetMainColor(col); }
   void AddLine(Float_t x1, Float_t y1, Float_t z1, Float_t x2, Float_t y2, Float_t z2);
   void AddMarker(Int_t lineID, Float_t pos);
   TEveChunkManager& GetLinePlex()   { return fLinePlex;   }
   TEveChunkManager& GetMarkerPlex() { return fMarkerPlex; }
   virtual void ComputeBBox();
   virtual void Paint(Option_t* option="");
   virtual Bool_t GetRnrMarkers() { return fRnrMarkers; }
   virtual Bool_t GetRnrLines()   { return fRnrLines;   }
   virtual void SetRnrMarkers(Bool_t x) { fRnrMarkers = x; }
   virtual void SetRnrLines(Bool_t x)   { fRnrLines   = x; }
   virtual TClass* ProjectedClass() const;
   ClassDef(TEveStraightLineSet, 1); 
};
class TEveStraightLineSetProjected : public TEveStraightLineSet,
                                     public TEveProjected
{
private:
   TEveStraightLineSetProjected(const TEveStraightLineSetProjected&);            
   TEveStraightLineSetProjected& operator=(const TEveStraightLineSetProjected&); 
public:
   TEveStraightLineSetProjected();
   virtual ~TEveStraightLineSetProjected() {}
   virtual Bool_t  CanEditMainHMTrans() { return  kFALSE; }
   virtual void SetProjection(TEveProjectionManager* proj, TEveProjectable* model);
   virtual void UpdateProjection();
   ClassDef(TEveStraightLineSetProjected, 1); 
};
#endif
Last update: Thu Jan 17 08:49:22 2008
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.