Improve handling of multi-level track containers for kinematic trees.
authormtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 25 Mar 2007 17:22:15 +0000 (17:22 +0000)
committermtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 25 Mar 2007 17:22:15 +0000 (17:22 +0000)
EVE/Reve/Track.cxx
EVE/Reve/Track.h

index 2cf96d9..66ffb26 100644 (file)
@@ -122,7 +122,7 @@ void Track::Reset(Int_t n_points)
 
  /**************************************************************************/
 
-void Track::MakeTrack( Bool_t recurse)
+void Track::MakeTrack(Bool_t recurse)
 {
   TrackRnrStyle& RS((fRnrStyle != 0) ? *fRnrStyle : TrackRnrStyle::fgDefStyle);
 
@@ -239,20 +239,24 @@ make_polyline:
     SetNextPoint(i->x, i->y, i->z);
 
   if(recurse) {
-    Track* t;
-    for(List_i i=fChildren.begin(); i!=fChildren.end(); ++i) {
-      t = dynamic_cast<Track*>(*i);
-      if(t)t->MakeTrack(recurse); 
+    for(List_i i=fChildren.begin(); i!=fChildren.end(); ++i)
+    {
+      Track* t = dynamic_cast<Track*>(*i);
+      if(t) t->MakeTrack(recurse); 
     }
   }
 }
 
 /**************************************************************************/
+
 namespace {
-struct cmp_pathmark {
+
+struct cmp_pathmark
+{
   bool operator()(PathMark* const & a, PathMark* const & b)
   { return a->time < b->time; }
 };
+
 }
 
 void Track::SortPathMarksByTime()
@@ -260,7 +264,6 @@ void Track::SortPathMarksByTime()
  sort(fPathMarks.begin(), fPathMarks.end(), cmp_pathmark());
 }
 
-
 /**************************************************************************/
 
 void Track::ImportHits()
@@ -478,10 +481,11 @@ void TrackList::AddElement(RenderElement* el)
 
 /**************************************************************************/
 
-void TrackList::MakeTracks()
+void TrackList::MakeTracks(Bool_t recurse)
 {
-  for(List_i i=fChildren.begin(); i!=fChildren.end(); ++i) {
-    ((Track*)(*i))->MakeTrack();
+  for(List_i i=fChildren.begin(); i!=fChildren.end(); ++i)
+  {
+    ((Track*)(*i))->MakeTrack(recurse);
   }
   gReve->Redraw3D();
 }
@@ -607,7 +611,9 @@ void TrackList::SelectByPt(Float_t min_pt, Float_t max_pt)
 
   for(List_i i=fChildren.begin(); i!=fChildren.end(); ++i) {
     ptsq = ((Track*)(*i))->fP.Perp2();
-    (*i)->SetRnrSelf(ptsq >= minptsq && ptsq <= maxptsq);
+    Bool_t on = ptsq >= minptsq && ptsq <= maxptsq;
+    (*i)->SetRnrSelf(on);
+    (*i)->SetRnrChildren(on);
   }
 }
 
index a19e2ae..b684aea 100644 (file)
@@ -50,7 +50,7 @@ public:
   Track(Reve::RecTrack* t, TrackRnrStyle* rs);
   virtual ~Track();
 
-  void MakeTrack(Bool_t recurse = kTRUE);
+  void MakeTrack(Bool_t recurse=kFALSE);
 
   TrackRnrStyle* GetRnrStyle() const  { return fRnrStyle; }
   void SetRnrStyle(TrackRnrStyle* rs) { fRnrStyle = rs; }
@@ -200,7 +200,7 @@ public:
   Bool_t GetRnrMarkers() const { return fRnrMarkers; }
   void   SetRnrMarkers(Bool_t);
 
-  void   MakeTracks();
+  void   MakeTracks(Bool_t recurse=kFALSE);
   void   MakeMarkers();
 
   Width_t GetWidth() const { return fRnrStyle->fWidth; }