29 for (
auto &
compound :
p->m_elements->RefChildren())
40 for (
auto &
compound : product->RefChildren()) {
43 collComp->
fUsed =
false;
45 (spbIt)->second->map.clear();
67 c->CSCImplySelectAllChildren();
72 c->SetMainTransparency(
Collection()->GetMainTransparency());
74 if (propagate_color_to_all_children)
76 c->CSCApplyMainColorToAllChildren();
77 c->CSCApplyMainTransparencyToAllChildren();
81 c->CSCApplyMainColorToMatchingChildren();
82 c->CSCApplyMainTransparencyToMatchingChildren();
104 auto pmIt = spb->
map.find(idx);
105 if (pmIt != spb->
map.end()) {
106 itemHolder = pmIt->second;
110 if (product->NumChildren() > (
int)spb->
map.size()) {
111 for (
auto &cr : product->RefChildren()) {
120 std::cerr <<
"REveDataSimpleProxyBuilder::GetHolder can't reuse product\n";
122 if (testIdx != (
int)spb->
map.size()) {
123 std::cout <<
"REveDataSimpleProxyBuilder::GetHolder number of used products do not match product size\n";
128 if ((
int)spb->
map.size() != product->NumChildren()) {
129 std::cout <<
"REveDataSimpleProxyBuilder::GetHolder total number of products do not match product size\n";
132 product->AddElement(itemHolder);
134 spb->
map.emplace(idx, itemHolder);
135 itemHolder->
fUsed =
true;
169 if (di->GetRnrSelf() && !di->GetFiltered())
183 for (
auto &it:
p->RefChildren())
186 if (
c->GetMainColor() !=
p->GetMainColor())
190 applyColorAttrToChildren(
c);
197 for (
auto itemIdx : iIds) {
203 std::cerr <<
"REveDataSimpleProxyBuilder::ModelChanges product not found!\n";
206 auto spb = sit->second;
208 auto hmit = spb->map.find(itemIdx);
209 if (hmit != spb->map.end())
210 holder = hmit->second;
212 bool createHolder = visible && !holder;
222 applyColorAttrToChildren(holder);
223 p->m_elements->ProjectChild(holder);
228 applyColorAttrToChildren(holder);
239 bool returnValue =
false;
255 for (
auto &s : sec_idcs) {
257 auto it = spb->map.find(s);
258 if (it != spb->map.end()) {
259 it->second->FillImpliedSelectedSet(impSet, sec_idcs);
264 for (
auto it = impSet.begin(); it != impSet.end();) {
265 if ((*it)->GetElementId()) {
268 it = impSet.erase(it);
296 static const REveException eh(
"REveCollectionCompound::GetSelectionMaster()");
304 std::size_t found =
fName.find_last_of(
' ');
305 if (found == std::string::npos)
309 std::string idss =
fName.substr(found + 1);
310 int idx = stoi(idss);
313 }
catch (std::exception&
e) {
314 R__LOG_ERROR(
REveLog()) <<
"REveCollectionCompound::GetSelectionMaster " <<
e.what() << std::endl;
#define R__LOG_ERROR(...)
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
REveDataCollection * fCollection
~REveCollectionCompound() override
REveCollectionCompound(REveDataCollection *c)
REveElement * GetSelectionMaster() override
Returns the master element - that is:
void SetMainColor(Color_t color) override
SetMainColor for the compound.
REveDataItemList * GetItemList()
void * GetDataPtr(Int_t i) const
const REveDataItem * GetDataItem(Int_t i) const
Bool_t GetRnrSelf() const
Color_t GetMainColor() const
Bool_t GetVisible() const
Bool_t GetFiltered() const
std::vector< Product * > m_products
virtual void LocalModelChanges(int idx, REveElement *el, const REveViewContext *ctx)
virtual REveElement * CreateProduct(const std::string &viewType, const REveViewContext *)
virtual void CleanLocal()
REveDataCollection * Collection() const
virtual bool HaveSingleProduct() const
REveElement * CreateProduct(const std::string &viewType, const REveViewContext *) override
virtual void BuildItem(const void *data, int index, REveElement *iCollectionHolder, const REveViewContext *)=0
void FillImpliedSelected(REveElement::Set_t &impSet, const std::set< int > &sec_idcs, Product *p) override
~REveDataSimpleProxyBuilder() override
REveCompound * GetHolder(REveElement *product, int idx)
void BuildProduct(const REveDataCollection *iCollection, REveElement *product, const REveViewContext *) override
bool VisibilityModelChanges(int idx, REveElement *, const std::string &viewType, const REveViewContext *) override
std::map< REveElement *, SPBProduct * > fProductMap
REveDataSimpleProxyBuilder()
virtual void BuildItemViewType(const void *data, int index, REveElement *iCollectionHolder, const std::string &viewType, const REveViewContext *)=0
void ModelChanges(const REveDataCollection::Ids_t &iIds, Product *p) override
REveCollectionCompound * CreateCompound(bool set_color=true, bool propagate_color_to_all_children=false)
void BuildProductViewType(const REveDataCollection *iCollection, REveElement *product, const std::string &viewType, const REveViewContext *) override
virtual Bool_t GetRnrSelf() const
virtual Bool_t SetRnrChildren(Bool_t rnr)
Set render state of this element's children, i.e.
virtual void DestroyElements()
Destroy all children of this element.
virtual Bool_t SetRnrSelf(Bool_t rnr)
Set render state of this element, i.e.
void SetSelectionMaster(REveElement *el)
std::set< REveElement * > Set_t
virtual void SetMainColor(Color_t color)
Set main color of the element.
void SetName(const std::string &name)
Set name of an element.
REveException Exception-type thrown by Eve classes.
Bool_t IsAcceptingChanges() const
SelectionSet_t & RefSelectedSet()
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
RLogChannel & REveLog()
Log channel for Eve diagnostics.
std::map< int, REveCollectionCompound * > map