With Jochen: new class for arbitrarily shaped jet-cone. Will go to ROOT for the next...
[u/mrichter/AliRoot.git] / EVE / EveBase / TEveJetCone.h
1 // @(#)root/eve:$Id$
2 // Author: Matevz Tadel 2007
3
4 /*************************************************************************
5  * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
6  * All rights reserved.                                                  *
7  *                                                                       *
8  * For the licensing terms see $ROOTSYS/LICENSE.                         *
9  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
10  *************************************************************************/
11
12 #ifndef ROOT_TEveJetCone
13 #define ROOT_TEveJetCone
14
15 #include "TEveElement.h"
16 #include "TEveVSDStructs.h"
17 #include "TAttBBox.h"
18
19 class TEveJetCone : public TEveElementList,
20                     public TAttBBox
21 {
22    friend class TEveJetConeGL;
23
24 private:
25    TEveJetCone(const TEveJetCone&);            // Not implemented
26    TEveJetCone& operator=(const TEveJetCone&); // Not implemented
27
28 protected:
29    typedef std::vector<TEveVector>        vTEveVector_t;
30    typedef vTEveVector_t::iterator        vTEveVector_i;
31    typedef vTEveVector_t::const_iterator  vTEveVector_ci;
32
33    TEveVector      fApex;
34    vTEveVector_t   fBasePoints;
35
36 public:
37    TEveJetCone(const Text_t* n="TEveJetCone", const Text_t* t="");
38    virtual ~TEveJetCone() {}
39
40    void SetApex(const TEveVector& a)      { fApex = a; }
41    void AddBasePoint(const TEveVector& p) { fBasePoints.push_back(p); }
42
43    // void SetBaseFromEtaPhi(radius, eta, phi, deta, dphi);
44
45    virtual Bool_t  CanEditMainTransparency() const { return kTRUE; }
46
47    // For TAttBBox:
48    virtual void ComputeBBox();
49    // If painting is needed:
50    virtual void Paint(Option_t* option="");
51
52    ClassDef(TEveJetCone, 0); // Short description.
53 };
54
55 #endif