CMS 3D CMS Logo

Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions

FWSimpleProxyBuilder Class Reference

#include <Fireworks/Core/interface/FWSimpleProxyBuilder.h>

Inheritance diagram for FWSimpleProxyBuilder:
FWProxyBuilderBase FWSimpleProxyBuilderTemplate< T > FWSimpleProxyBuilderTemplate< BeamSpotOnline > FWSimpleProxyBuilderTemplate< CSCRecHit2D > FWSimpleProxyBuilderTemplate< CSCSegment > FWSimpleProxyBuilderTemplate< DTRecHit1DPair > FWSimpleProxyBuilderTemplate< DTRecSegment4D > FWSimpleProxyBuilderTemplate< l1extra::L1EmParticle > FWSimpleProxyBuilderTemplate< l1extra::L1EtMissParticle > FWSimpleProxyBuilderTemplate< l1extra::L1JetParticle > FWSimpleProxyBuilderTemplate< l1extra::L1MuonParticle > FWSimpleProxyBuilderTemplate< pat::Jet > FWSimpleProxyBuilderTemplate< PSimHit > FWSimpleProxyBuilderTemplate< reco::BeamSpot > FWSimpleProxyBuilderTemplate< reco::CaloCluster > FWSimpleProxyBuilderTemplate< reco::Candidate > FWSimpleProxyBuilderTemplate< reco::Conversion > FWSimpleProxyBuilderTemplate< reco::GenParticle > FWSimpleProxyBuilderTemplate< reco::GsfElectron > FWSimpleProxyBuilderTemplate< reco::Jet > FWSimpleProxyBuilderTemplate< reco::MET > FWSimpleProxyBuilderTemplate< reco::Muon > FWSimpleProxyBuilderTemplate< reco::PFBlock > FWSimpleProxyBuilderTemplate< reco::PFCandidate > FWSimpleProxyBuilderTemplate< reco::PFCluster > FWSimpleProxyBuilderTemplate< reco::PFJet > FWSimpleProxyBuilderTemplate< reco::Photon > FWSimpleProxyBuilderTemplate< reco::SecondaryVertexTagInfo > FWSimpleProxyBuilderTemplate< reco::Track > FWSimpleProxyBuilderTemplate< reco::Vertex > FWSimpleProxyBuilderTemplate< RPCRecHit > FWSimpleProxyBuilderTemplate< SimVertex > FWSimpleProxyBuilderTemplate< TrackingParticle > FWSimpleProxyBuilderTemplate< TrackingVertex >

List of all members.

Public Member Functions

 FWSimpleProxyBuilder (const std::type_info &iType)
virtual ~FWSimpleProxyBuilder ()

Static Public Member Functions

static std::string typeOfBuilder ()
 Used by the plugin system to determine how the proxy uses the data from FWEventItem.

Protected Member Functions

virtual void build (const FWEventItem *iItem, TEveElementList *product, const FWViewContext *)
virtual void buildViewType (const FWEventItem *iItem, TEveElementList *product, FWViewType::EType viewType, const FWViewContext *)
virtual void clean ()

Protected Attributes

FWSimpleProxyHelper m_helper

Private Member Functions

virtual void build (const void *, unsigned int iIndex, TEveElement &iItemHolder, const FWViewContext *)=0
virtual void buildViewType (const void *, unsigned int iIndex, TEveElement &iItemHolder, FWViewType::EType, const FWViewContext *)=0
 FWSimpleProxyBuilder (const FWSimpleProxyBuilder &)
virtual void itemChangedImp (const FWEventItem *)
const FWSimpleProxyBuilderoperator= (const FWSimpleProxyBuilder &)
virtual bool visibilityModelChanges (const FWModelId &, TEveElement *, FWViewType::EType, const FWViewContext *)

Detailed Description

Description: <one line="" class="" summary>="">

Usage:s <usage>

Definition at line 31 of file FWSimpleProxyBuilder.h.


Constructor & Destructor Documentation

FWSimpleProxyBuilder::FWSimpleProxyBuilder ( const std::type_info &  iType)

Definition at line 33 of file FWSimpleProxyBuilder.cc.

                                                                    :
   m_helper(iType)
{
}
FWSimpleProxyBuilder::~FWSimpleProxyBuilder ( ) [virtual]

Definition at line 43 of file FWSimpleProxyBuilder.cc.

{
}
FWSimpleProxyBuilder::FWSimpleProxyBuilder ( const FWSimpleProxyBuilder ) [private]

Member Function Documentation

void FWSimpleProxyBuilder::build ( const FWEventItem iItem,
TEveElementList *  product,
const FWViewContext vc 
) [protected, virtual]

Reimplemented from FWProxyBuilderBase.

Definition at line 89 of file FWSimpleProxyBuilder.cc.

References FWProxyBuilderBase::build(), FWProxyBuilderBase::createCompound(), getHLTprescales::index, m_helper, FWEventItem::modelData(), FWEventItem::modelInfo(), FWSimpleProxyHelper::offsetObject(), findQualityFiles::size, and FWEventItem::size().

{
   size_t size = iItem->size();
   TEveElement::List_i pIdx = product->BeginChildren();
   for (int index = 0; index < static_cast<int>(size); ++index)
   {
      TEveElement* itemHolder = 0;
      if (index <  product->NumChildren())
      {
         itemHolder = *pIdx;
         itemHolder->SetRnrSelfChildren(true, true);
         ++pIdx;
      }
      else
      {
         itemHolder = createCompound();
         product->AddElement(itemHolder);
      }
      if (iItem->modelInfo(index).displayProperties().isVisible())
      {
         const void* modelData = iItem->modelData(index);
         build(m_helper.offsetObject(modelData),index, *itemHolder, vc);
      }
   }
}
virtual void FWSimpleProxyBuilder::build ( const void *  ,
unsigned int  iIndex,
TEveElement &  iItemHolder,
const FWViewContext  
) [private, pure virtual]

Implemented in FWSimpleProxyBuilderTemplate< T >, FWSimpleProxyBuilderTemplate< DTRecHit1DPair >, FWSimpleProxyBuilderTemplate< reco::PFBlock >, FWSimpleProxyBuilderTemplate< pat::Jet >, FWSimpleProxyBuilderTemplate< reco::Jet >, FWSimpleProxyBuilderTemplate< PSimHit >, FWSimpleProxyBuilderTemplate< TrackingVertex >, FWSimpleProxyBuilderTemplate< CSCSegment >, FWSimpleProxyBuilderTemplate< CSCRecHit2D >, FWSimpleProxyBuilderTemplate< reco::PFCluster >, FWSimpleProxyBuilderTemplate< reco::PFCandidate >, FWSimpleProxyBuilderTemplate< reco::GenParticle >, FWSimpleProxyBuilderTemplate< SimVertex >, FWSimpleProxyBuilderTemplate< reco::Track >, FWSimpleProxyBuilderTemplate< l1extra::L1EmParticle >, FWSimpleProxyBuilderTemplate< l1extra::L1EtMissParticle >, FWSimpleProxyBuilderTemplate< l1extra::L1MuonParticle >, FWSimpleProxyBuilderTemplate< BeamSpotOnline >, FWSimpleProxyBuilderTemplate< TrackingParticle >, FWSimpleProxyBuilderTemplate< reco::MET >, FWSimpleProxyBuilderTemplate< reco::Photon >, FWSimpleProxyBuilderTemplate< reco::Vertex >, FWSimpleProxyBuilderTemplate< reco::Candidate >, FWSimpleProxyBuilderTemplate< DTRecSegment4D >, FWSimpleProxyBuilderTemplate< reco::SecondaryVertexTagInfo >, FWSimpleProxyBuilderTemplate< reco::Conversion >, FWSimpleProxyBuilderTemplate< reco::BeamSpot >, FWSimpleProxyBuilderTemplate< reco::GsfElectron >, FWSimpleProxyBuilderTemplate< RPCRecHit >, FWSimpleProxyBuilderTemplate< reco::CaloCluster >, FWSimpleProxyBuilderTemplate< reco::PFJet >, FWSimpleProxyBuilderTemplate< reco::Muon >, and FWSimpleProxyBuilderTemplate< l1extra::L1JetParticle >.

virtual void FWSimpleProxyBuilder::buildViewType ( const void *  ,
unsigned int  iIndex,
TEveElement &  iItemHolder,
FWViewType::EType  ,
const FWViewContext  
) [private, pure virtual]

Implemented in FWSimpleProxyBuilderTemplate< T >, FWSimpleProxyBuilderTemplate< DTRecHit1DPair >, FWSimpleProxyBuilderTemplate< reco::PFBlock >, FWSimpleProxyBuilderTemplate< pat::Jet >, FWSimpleProxyBuilderTemplate< reco::Jet >, FWSimpleProxyBuilderTemplate< PSimHit >, FWSimpleProxyBuilderTemplate< TrackingVertex >, FWSimpleProxyBuilderTemplate< CSCSegment >, FWSimpleProxyBuilderTemplate< CSCRecHit2D >, FWSimpleProxyBuilderTemplate< reco::PFCluster >, FWSimpleProxyBuilderTemplate< reco::PFCandidate >, FWSimpleProxyBuilderTemplate< reco::GenParticle >, FWSimpleProxyBuilderTemplate< SimVertex >, FWSimpleProxyBuilderTemplate< reco::Track >, FWSimpleProxyBuilderTemplate< l1extra::L1EmParticle >, FWSimpleProxyBuilderTemplate< l1extra::L1EtMissParticle >, FWSimpleProxyBuilderTemplate< l1extra::L1MuonParticle >, FWSimpleProxyBuilderTemplate< BeamSpotOnline >, FWSimpleProxyBuilderTemplate< TrackingParticle >, FWSimpleProxyBuilderTemplate< reco::MET >, FWSimpleProxyBuilderTemplate< reco::Photon >, FWSimpleProxyBuilderTemplate< reco::Vertex >, FWSimpleProxyBuilderTemplate< reco::Candidate >, FWSimpleProxyBuilderTemplate< DTRecSegment4D >, FWSimpleProxyBuilderTemplate< reco::SecondaryVertexTagInfo >, FWSimpleProxyBuilderTemplate< reco::Conversion >, FWSimpleProxyBuilderTemplate< reco::BeamSpot >, FWSimpleProxyBuilderTemplate< reco::GsfElectron >, FWSimpleProxyBuilderTemplate< RPCRecHit >, FWSimpleProxyBuilderTemplate< reco::CaloCluster >, FWSimpleProxyBuilderTemplate< reco::PFJet >, FWSimpleProxyBuilderTemplate< reco::Muon >, and FWSimpleProxyBuilderTemplate< l1extra::L1JetParticle >.

void FWSimpleProxyBuilder::buildViewType ( const FWEventItem iItem,
TEveElementList *  product,
FWViewType::EType  viewType,
const FWViewContext vc 
) [protected, virtual]

Reimplemented from FWProxyBuilderBase.

Definition at line 117 of file FWSimpleProxyBuilder.cc.

References FWProxyBuilderBase::createCompound(), getHLTprescales::index, m_helper, FWEventItem::modelData(), FWEventItem::modelInfo(), FWSimpleProxyHelper::offsetObject(), findQualityFiles::size, and FWEventItem::size().

Referenced by visibilityModelChanges().

{
   size_t size = iItem->size();
   TEveElement::List_i pIdx = product->BeginChildren();
   for (int index = 0; index < static_cast<int>(size); ++index)
   {
      TEveElement* itemHolder = 0;
      if (index < product->NumChildren())
      {
         itemHolder = *pIdx;
         itemHolder->SetRnrSelfChildren(true, true);
         ++pIdx;
      }
      else
      {
         itemHolder = createCompound();
         product->AddElement(itemHolder);
      }
      if (iItem->modelInfo(index).displayProperties().isVisible())
      {
         const void* modelData = iItem->modelData(index);
         buildViewType(m_helper.offsetObject(modelData),index, *itemHolder, viewType, vc);
      }
   }
}
void FWSimpleProxyBuilder::clean ( ) [protected, virtual]

Reimplemented from FWProxyBuilderBase.

Definition at line 64 of file FWSimpleProxyBuilder.cc.

References FWProxyBuilderBase::cleanLocal(), i, and FWProxyBuilderBase::m_products.

{
   for (Product_it i = m_products.begin(); i != m_products.end(); ++i)
   {
      if ((*i)->m_elements)
      {
         TEveElement* elms = (*i)->m_elements;
         for (TEveElement::List_i it = elms->BeginChildren(); it != elms->EndChildren(); ++it)
            (*it)->DestroyElements();
      }
   }

   cleanLocal();
}
void FWSimpleProxyBuilder::itemChangedImp ( const FWEventItem iItem) [private, virtual]

Definition at line 80 of file FWSimpleProxyBuilder.cc.

References FWSimpleProxyHelper::itemChanged(), and m_helper.

{
   if (iItem)
   {
      m_helper.itemChanged(iItem);
   }
}
const FWSimpleProxyBuilder& FWSimpleProxyBuilder::operator= ( const FWSimpleProxyBuilder ) [private]
std::string FWSimpleProxyBuilder::typeOfBuilder ( ) [static]

Used by the plugin system to determine how the proxy uses the data from FWEventItem.

Reimplemented from FWProxyBuilderBase.

Reimplemented in FWPFClusterLegoProxyBuilder.

Definition at line 173 of file FWSimpleProxyBuilder.cc.

{
   return std::string("simple#");
}
bool FWSimpleProxyBuilder::visibilityModelChanges ( const FWModelId iId,
TEveElement *  iCompound,
FWViewType::EType  viewType,
const FWViewContext vc 
) [private, virtual]

Reimplemented from FWProxyBuilderBase.

Definition at line 146 of file FWSimpleProxyBuilder.cc.

References FWProxyBuilderBase::build(), buildViewType(), FWEventItem::ModelInfo::displayProperties(), FWProxyBuilderBase::haveSingleProduct(), FWModelId::index(), info, FWDisplayProperties::isVisible(), FWModelId::item(), m_helper, FWEventItem::modelData(), FWEventItem::modelInfo(), and FWSimpleProxyHelper::offsetObject().

{
   const FWEventItem::ModelInfo& info = iId.item()->modelInfo(iId.index());
   bool returnValue = false;
   if (info.displayProperties().isVisible() && iCompound->NumChildren()==0)
   {
      const void* modelData = iId.item()->modelData(iId.index());
      if (haveSingleProduct())      
         build(m_helper.offsetObject(modelData),iId.index(),*iCompound, vc);
      else
         buildViewType(m_helper.offsetObject(modelData),iId.index(),*iCompound, viewType, vc);
      returnValue=true;
   }
   return returnValue;
}

Member Data Documentation