Hi Fons,
I don't add objects to this array - I am ordering the segments of
3D shapes along NDC z-axis in order to get them (shapes) drawn using
solid faces (like in X3D, only in the TCanvas). So, these z-coordinates of
the segments change each time I rotate the shape, so I need to sort them
again, which I cannot since the array has been already sorted in
previous iteration, and the function 'Changed()' is protected, so I
cannot reset IsSorted() flag.
Courtesy to Pasha Murat, there is a way around:
// first do this (with already filled list):
fSegmentList->Clear()
// Segment is actually a 3-D brick
for (int i=0; i<NSegmens(); i++) {
....
Segment* seg = (Segment*)(*fSegmentList)[i];
...
}
fSegmentList->Sort() // now works all the time due to Clear() call
Just for fun I attached the resulting PCON shape(looks more like a tube
though) drawn with solid surfaces in the Pad.
But generally - is it possible to make Changed() method public?
Dmitri Litvintsev
/----------------------------------------------------------\
| Tel: (630) 840 5005 |
| FAX: (630) 840 2968 |
| office: 169-E CDF Trailers |
| E-mail: litvinse@fnal.gov |
\----------------------------------------------------------/
On Fri, 28 Jul 2000, Fons Rademakers wrote:
> Hi Dmitri,
>
> as soon as you add another object to the array (or remove an object)
> IsSorted() will return false. What is the case the this does not work
> for you?
>
> Cheers, Fons.
>
>
>
> On Thu, Jul 27, 2000 at 01:11:11PM -0500, Dmitri Litvintsev wrote:
> >
> >
> > Hi Rooters,
> >
> > I've run into the following problem.
> >
> > I have a object with an attribute that changes over time.
> > I shove a set of these objects into TClonesArray(). I need
> > to sort them from time to time since they must be ordered
> > with respect to this attribute. I added method Compare.
> > And use Sort() method.
> > I noticed that this method can be called only once. Having sorted
> > an array once, the flag IsSorted() is set and cannot be changed.
> >
> > Could you advise on how to avoid this problem?
> >
> > this is really important for me,
> > Dmitri Litvintsev
> >
> > /----------------------------------------------------------\
> > | Tel: (630) 840 5005 |
> > | FAX: (630) 840 2968 |
> > | office: 169-E CDF Trailers |
> > | E-mail: litvinse@fnal.gov |
> > \----------------------------------------------------------/
> >
> >
> >
>
> --
> Org: CERN, European Laboratory for Particle Physics.
> Mail: 1211 Geneve 23, Switzerland
> E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248
> WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7677910
>
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:30 MET