CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/Fireworks/Vertices/interface/TEveEllipsoidGL.h

Go to the documentation of this file.
00001 #ifndef ROOT_TEveEllipsoidGL
00002 #define ROOT_TEveEllipsoidGL
00003 
00004 #include "TGLObject.h"
00005 #include "TEveVector.h"
00006 
00007 class TGLViewer;
00008 class TGLScene;
00009 
00010 class TEveEllipsoid;
00011 class TEveEllipsoidProjected;
00012 
00013 //------------------------------------------------------------------------------
00014 // TEveEllipsoid
00015 //------------------------------------------------------------------------------
00016 
00017 class TEveEllipsoidGL : public TGLObject
00018 {
00019 private:
00020    TEveEllipsoidGL(const TEveEllipsoidGL&);            // Not implemented
00021    TEveEllipsoidGL& operator=(const TEveEllipsoidGL&); // Not implemented
00022  
00023    
00024 protected:
00025    TEveEllipsoid                   *fE;  // Model object.
00026 
00027 public:
00028    TEveEllipsoidGL();
00029    virtual ~TEveEllipsoidGL() {}
00030 
00031    virtual Bool_t SetModel(TObject* obj, const Option_t* opt=0);
00032    virtual void   SetBBox();
00033 
00034    virtual void   DirectDraw(TGLRnrCtx & rnrCtx) const;
00035 virtual Bool_t IgnoreSizeForOfInterest() const { return kTRUE; }
00036 
00037   ClassDef(TEveEllipsoidGL, 0); // GL renderer class for TEveEllipsoid.
00038 };
00039 
00040 
00041 //------------------------------------------------------------------------------
00042 // TEveEllipsoidProjectedGL
00043 //------------------------------------------------------------------------------
00044 
00045 class TEveEllipsoidProjectedGL : public TEveEllipsoidGL
00046 {
00047 private:
00048    TEveEllipsoidProjectedGL(const TEveEllipsoidProjectedGL&);            // Not implemented
00049    TEveEllipsoidProjectedGL& operator=(const TEveEllipsoidProjectedGL&); // Not implemented
00050    
00051    void DrawRhoPhi() const;
00052    void DrawRhoZ() const;
00053    //  void DrawYZ() const;
00054    void   drawArch(float pStart, float pEnd, float phiStep, TEveVector& v0,  TEveVector& v1, TEveVector& v2) const;
00055    void drawRhoZAxis(TEveVector& v, TEveVector&) const;
00056 protected:
00057    TEveEllipsoidProjected  *fM;  // Model object.
00058 
00059 public:
00060    TEveEllipsoidProjectedGL();
00061    virtual ~TEveEllipsoidProjectedGL() {}
00062 
00063    virtual Bool_t SetModel(TObject* obj, const Option_t* opt=0);
00064    virtual void   SetBBox();
00065 
00066    virtual void   DirectDraw(TGLRnrCtx & rnrCtx) const;
00067    ClassDef(TEveEllipsoidProjectedGL, 0); // GL renderer class for TEveEllipsoid.
00068 };
00069 
00070 #endif