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
0015
0016
0017 class TEveEllipsoidGL : public TGLObject {
0018 private:
0019 TEveEllipsoidGL(const TEveEllipsoidGL&);
0020 TEveEllipsoidGL& operator=(const TEveEllipsoidGL&);
0021
0022 protected:
0023 TEveEllipsoid* fE;
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);
0036 };
0037
0038
0039
0040
0041
0042 class TEveEllipsoidProjectedGL : public TEveEllipsoidGL {
0043 private:
0044 TEveEllipsoidProjectedGL(const TEveEllipsoidProjectedGL&);
0045 TEveEllipsoidProjectedGL& operator=(const TEveEllipsoidProjectedGL&);
0046
0047 void DrawRhoPhi() const;
0048 void DrawRhoZ() const;
0049
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;
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);
0065 };
0066
0067 #endif