Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:11:32

0001 #ifndef Fireworks_Core_FWViewGeometryList_h
0002 #define Fireworks_Core_FWViewGeometryList_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Core
0006 // Class  :     FWViewGeometryList
0007 //
0008 /**\class FWViewGeometryList FWViewGeometryList.h Fireworks/Core/interface/FWViewGeometryList.h
0009 
0010  Description: [one line class summary]
0011 
0012  Usage:
0013     <usage>
0014 
0015 */
0016 //
0017 // Original Author:  Alja Mrak-Tadel
0018 //         Created:  Tue Sep 14 13:28:39 CEST 2010
0019 //
0020 
0021 #include "sigc++/connection.h"
0022 
0023 #include "TEveElement.h"
0024 #include "Fireworks/Core/interface/FWColorManager.h"
0025 
0026 class TGeoMatrix;
0027 class TEveCompound;
0028 class FWGeometry;
0029 
0030 namespace fireworks {
0031   class Context;
0032 }
0033 
0034 class FWViewGeometryList : public TEveElementList {
0035 public:
0036   FWViewGeometryList(const fireworks::Context& context, bool projected = true);
0037   ~FWViewGeometryList() override;
0038 
0039   void updateColors();
0040   void updateTransparency(bool projectedType);
0041 
0042 protected:
0043   const fireworks::Context& m_context;
0044   const FWGeometry* m_geom;  // cached
0045 
0046   TEveCompound* m_colorComp[kFWGeomColorSize];
0047 
0048   void addToCompound(TEveElement* el, FWGeomColorIndex idx, bool applyTransp = true) const;
0049 
0050 public:
0051   FWViewGeometryList(const FWViewGeometryList&) = delete;  // stop default
0052 
0053   const FWViewGeometryList& operator=(const FWViewGeometryList&) = delete;  // stop default
0054 
0055 private:
0056   // ---------- member data --------------------------------
0057   sigc::connection m_transpConnection;
0058   sigc::connection m_colorConnection;
0059   bool m_projected;  // needed for transparency
0060 };
0061 
0062 #endif