It seemsto me the feature you are asking about had been implemented with TVolume class. http://root.cern.ch/root/htmldoc/TVolume.html Hope this helps, ----- Dr.Valeri Fine STAR/US Atlas E-mail: fine@bnl.gov Brookhaven National Lab Phone: +1 631 344 7806 Upton, NY 11973-5000 FAX: +1 631 344 4206 USA ----- Original Message ----- From: "Robert Hatcher" <rhatcher@SLAC.stanford.edu> To: <roottalk@pcroot.cern.ch> Sent: Tuesday, August 28, 2001 9:01 PM Subject: [ROOT] TNode::SetParent() > Hi, > Currently in TNode.h there is the declaration & definition for the > method to change a TNode's parent, e.g.: > > virtual void SetParent(TNode *parent) {fParent=parent;} > > But this does only half the work necessary. The parent losing the > custody battle is never informed and continues to think they have > this child. I think the right code is: > > void TNode::SetParent(TNode *parent) > { > // set the pointer to the parent, keep parents informed about who they have > > if (fParent) fParent->GetListOfNodes()->Remove(this); > else gGeometry->GetListOfNodes()->Remove(this); > > fParent = parent; > > if (fParent) { > fParent->BuildListOfNodes(); // new parent might not have list > fParent->GetListOfNodes()->Add(this); > } > else gGeometry->GetListOfNodes()->Add(this); > } > > Could this be the distributed definition? There are times when > building a geometry it's easier to build a "containee" node before > one builds the "container" node and then after the fact make > the right adjustments. > > Thanks, > -robert > > Robert W. Hatcher | rhatcher@slac.stanford.edu > Research Associate | 650.926.3171 [FAX 4001 or 3587] > Stanford University | PO Box 4349, MS #63, Stanford CA 94309 > >
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:58 MET