Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 09:46:41

0001 #ifndef ROOT_TEveEllipsoidGL
0002 #define ROOT_TEveEllipsoidGL
0003 
0004 #include "TGLObject.h"
0005 #include "TEveVector.h"
0006 
0007 class TGLViewer;
0008 class TGLScene;
0009 
0010 class TEveEllipsoid;
0011 class TEveEllipsoidProjected;
0012 
0013 //------------------------------------------------------------------------------
0014 // TEveEllipsoid
0015 //------------------------------------------------------------------------------
0016 
0017 class TEveEllipsoidGL : public TGLObject {
0018 private:
0019   TEveEllipsoidGL(const TEveEllipsoidGL&);             // Not implemented
0020   TEveEllipsoidGL& operator=(const TEveEllipsoidGL&);  // Not implemented
0021 
0022 protected:
0023   TEveEllipsoid* fE;  // Model object.
0024 
0025 public:
0026   TEveEllipsoidGL();
0027   ~TEveEllipsoidGL() override {}
0028 
0029   Bool_t SetModel(TObject* obj, const Option_t* opt = nullptr) override;
0030   void SetBBox() override;
0031 
0032   void DirectDraw(TGLRnrCtx& rnrCtx) const override;
0033   Bool_t IgnoreSizeForOfInterest() const override { return kTRUE; }
0034 
0035   ClassDefOverride(TEveEllipsoidGL, 0);  // GL renderer class for TEveEllipsoid.
0036 };
0037 
0038 //------------------------------------------------------------------------------
0039 // TEveEllipsoidProjectedGL
0040 //------------------------------------------------------------------------------
0041 
0042 class TEveEllipsoidProjectedGL : public TEveEllipsoidGL {
0043 private:
0044   TEveEllipsoidProjectedGL(const TEveEllipsoidProjectedGL&);             // Not implemented
0045   TEveEllipsoidProjectedGL& operator=(const TEveEllipsoidProjectedGL&);  // Not implemented
0046 
0047   void DrawRhoPhi() const;
0048   void DrawRhoZ() const;
0049   //  void DrawYZ() const;
0050   void drawArch(float pStart, float pEnd, float phiStep, TEveVector& v0, TEveVector& v1, TEveVector& v2) const;
0051   void drawRhoZAxis(TEveVector& v, TEveVector&) const;
0052 
0053 protected:
0054   TEveEllipsoidProjected* fM;  // Model object.
0055 
0056 public:
0057   TEveEllipsoidProjectedGL();
0058   ~TEveEllipsoidProjectedGL() override {}
0059 
0060   Bool_t SetModel(TObject* obj, const Option_t* opt = nullptr) override;
0061   void SetBBox() override;
0062 
0063   void DirectDraw(TGLRnrCtx& rnrCtx) const override;
0064   ClassDefOverride(TEveEllipsoidProjectedGL, 0);  // GL renderer class for TEveEllipsoid.
0065 };
0066 
0067 #endif