From 65bb0ca942096fa7a8d3dce9a70297d4564ccbf3 Mon Sep 17 00:00:00 2001 From: alja <amraktadel@ucsd.edu> Date: Mon, 1 Jul 2019 14:02:35 -0700 Subject: [PATCH] Pass item index in proxy builder Build() methods. --- .../eve7/inc/ROOT/REveDataSimpleProxyBuilder.hxx | 4 ++-- .../ROOT/REveDataSimpleProxyBuilderTemplate.hxx | 16 ++++++++-------- graf3d/eve7/src/REveDataClasses.cxx | 2 +- graf3d/eve7/src/REveDataSimpleProxyBuilder.cxx | 6 +++--- tutorials/eve7/collection_proxies.C | 7 ++----- 5 files changed, 16 insertions(+), 19 deletions(-) diff --git a/graf3d/eve7/inc/ROOT/REveDataSimpleProxyBuilder.hxx b/graf3d/eve7/inc/ROOT/REveDataSimpleProxyBuilder.hxx index 213192b8675..d6426b95cdd 100644 --- a/graf3d/eve7/inc/ROOT/REveDataSimpleProxyBuilder.hxx +++ b/graf3d/eve7/inc/ROOT/REveDataSimpleProxyBuilder.hxx @@ -33,8 +33,8 @@ protected: //called once for each collection in collection, the void* points to the // object properly offset in memory - virtual void Build(const void* data, REveElement* iCollectionHolder, const REveViewContext*) = 0; - virtual void BuildViewType(const void* data, REveElement* iCollectionHolder, std::string viewType, const REveViewContext*) = 0; + virtual void Build(const void* data, unsigned int index, REveElement* iCollectionHolder, const REveViewContext*) = 0; + virtual void BuildViewType(const void* data, unsigned int index, REveElement* iCollectionHolder, std::string viewType, const REveViewContext*) = 0; virtual void Clean(); diff --git a/graf3d/eve7/inc/ROOT/REveDataSimpleProxyBuilderTemplate.hxx b/graf3d/eve7/inc/ROOT/REveDataSimpleProxyBuilderTemplate.hxx index 43eeb9b0037..4355967bb12 100644 --- a/graf3d/eve7/inc/ROOT/REveDataSimpleProxyBuilderTemplate.hxx +++ b/graf3d/eve7/inc/ROOT/REveDataSimpleProxyBuilderTemplate.hxx @@ -18,29 +18,29 @@ public: protected: using REveDataSimpleProxyBuilder::Build; - virtual void Build(const void *iData, REveElement *itemHolder, const REveViewContext *context) + virtual void Build(const void *iData, unsigned int index, REveElement *itemHolder, const REveViewContext *context) { if(iData) { - Build(*reinterpret_cast<const T*> (iData), itemHolder, context); + Build(*reinterpret_cast<const T*> (iData), index, itemHolder, context); } } using REveDataSimpleProxyBuilder::BuildViewType; - virtual void BuildViewType(const void *iData, REveElement *itemHolder, std::string viewType, const REveViewContext *context) + virtual void BuildViewType(const void *iData, unsigned int index, REveElement *itemHolder, std::string viewType, const REveViewContext *context) { if(iData) { - BuildViewType(*reinterpret_cast<const T*> (iData), itemHolder, viewType, context); + BuildViewType(*reinterpret_cast<const T*> (iData), index, itemHolder, viewType, context); } } - virtual void Build(const T &/*iData*/, REveElement */*itemHolder*/, const REveViewContext */*context*/) + virtual void Build(const T &/*iData*/, unsigned int index, REveElement */*itemHolder*/, const REveViewContext */*context*/) { - throw std::runtime_error("virtual Build(const T&, unsigned int, TEveElement&, const FWViewContext*) not implemented by inherited class."); + throw std::runtime_error("virtual Build(const T&, unsigned int, REveElement&, const REveViewContext*) not implemented by inherited class."); } - virtual void BuildViewType(const T &/*iData*/, REveElement */*itemHolder*/, std::string /*viewType*/, const REveViewContext */*context*/) + virtual void BuildViewType(const T &/*iData*/, unsigned int index, REveElement */*itemHolder*/, std::string /*viewType*/, const REveViewContext */*context*/) { - throw std::runtime_error("virtual BuildViewType(const T&, unsigned int, TEveElement&, const FWViewContext*) not implemented by inherited class."); + throw std::runtime_error("virtual BuildViewType(const T&, unsigned int, REveElement&, const REveViewContext*) not implemented by inherited class."); } private: diff --git a/graf3d/eve7/src/REveDataClasses.cxx b/graf3d/eve7/src/REveDataClasses.cxx index a08f33a7776..998f45bba33 100644 --- a/graf3d/eve7/src/REveDataClasses.cxx +++ b/graf3d/eve7/src/REveDataClasses.cxx @@ -313,7 +313,7 @@ void REveDataColumn::SetExpressionAndType(const std::string& expr, FieldType_e t << ") = [](" << icls->GetName() << "* p){" << icls->GetName() << " &i=*p; return (" << fExpression.Data() << "); }"; - // printf("%s\n", s.Data()); + printf("%s\n", s.str().c_str()); try { gROOT->ProcessLine(s.str().c_str()); } diff --git a/graf3d/eve7/src/REveDataSimpleProxyBuilder.cxx b/graf3d/eve7/src/REveDataSimpleProxyBuilder.cxx index ccb59283ba6..c9bd5eb7cad 100644 --- a/graf3d/eve7/src/REveDataSimpleProxyBuilder.cxx +++ b/graf3d/eve7/src/REveDataSimpleProxyBuilder.cxx @@ -60,7 +60,7 @@ REveDataSimpleProxyBuilder::Build(const REveDataCollection *collection, auto di = Collection()->GetDataItem(index); if (di->GetRnrSelf() && !di->GetFiltered()) { - Build(collection->GetDataPtr(index), itemHolder, vc); + Build(collection->GetDataPtr(index), index, itemHolder, vc); } } } @@ -91,7 +91,7 @@ REveDataSimpleProxyBuilder::BuildViewType(const REveDataCollection* collection, auto di = Collection()->GetDataItem(index); if (di->GetRnrSelf() && !di->GetFiltered()) { - BuildViewType(collection->GetDataPtr(index), itemHolder, viewType, vc); + BuildViewType(collection->GetDataPtr(index), index, itemHolder, viewType, vc); } } } @@ -106,7 +106,7 @@ REveDataSimpleProxyBuilder::VisibilityModelChanges(int idx, REveElement* iCompou if (item->GetRnrSelf() && iCompound->NumChildren()==0) { printf("REveDataSimpleProxyBuilder::VisibilityModelChanges BUILD %d \n", idx); - Build(Collection()->GetDataPtr(idx), iCompound, vc); + Build(Collection()->GetDataPtr(idx), idx, iCompound, vc); returnValue=true; } return returnValue; diff --git a/tutorials/eve7/collection_proxies.C b/tutorials/eve7/collection_proxies.C index 90bb75f1efb..3b46da4c019 100644 --- a/tutorials/eve7/collection_proxies.C +++ b/tutorials/eve7/collection_proxies.C @@ -148,7 +148,7 @@ class XYJetProxyBuilder: public REX::REveDataSimpleProxyBuilderTemplate<XYJet> virtual bool HaveSingleProduct() const { return false; } using REveDataSimpleProxyBuilderTemplate<XYJet>::BuildViewType; - virtual void BuildViewType(const XYJet& dj, REX::REveElement* iItemHolder, std::string viewType, const REX::REveViewContext* context) + virtual void BuildViewType(const XYJet& dj, unsigned int /*idx*/, REX::REveElement* iItemHolder, std::string viewType, const REX::REveViewContext* context) { auto jet = new REX::REveJetCone(); jet->SetCylinder(context->GetMaxR(), context->GetMaxZ()); @@ -206,7 +206,7 @@ class XYJetProxyBuilder: public REX::REveDataSimpleProxyBuilderTemplate<XYJet> class TrackProxyBuilder : public REX::REveDataSimpleProxyBuilderTemplate<TParticle> { using REveDataSimpleProxyBuilderTemplate<TParticle>::Build; - virtual void Build(const TParticle& p, REX::REveElement* iItemHolder, const REX::REveViewContext* context) + virtual void Build(const TParticle& p, unsigned int /*idx*/, REX::REveElement* iItemHolder, const REX::REveViewContext* context) { const TParticle *x = &p; // printf("============== BUILD track %s (pt=%f, eta=%f) \n", iItemHolder->GetCName(), p.Pt(), p.Eta()); @@ -466,7 +466,6 @@ public: } }; -//______________________________________________________________________________ void collection_proxies(bool proj=true) @@ -475,8 +474,6 @@ void collection_proxies(bool proj=true) auto event = new Event(); event->Create(); - event->N_tracks = 10; - event->N_jets = 4; gRhoZView = true; -- GitLab