25 ClassImp(TEveTrackGL);
30 TEveTrackGL::TEveTrackGL() : TEveLineGL()
38 Bool_t TEveTrackGL::SetModel(TObject* obj,
const Option_t* )
40 TEveLineGL::SetModel(obj);
41 fTrack = DynCast<TEveTrack>(obj);
50 void TEveTrackGL::ProcessSelection(TGLRnrCtx & , TGLSelectRecord & rec)
54 printf(
"TEveTrackGL::ProcessSelection %d names on the stack (z1=%g, z2=%g).\n",
55 rec.GetN(), rec.GetMinZ(), rec.GetMaxZ());
57 for (Int_t j=0; j<rec.GetN(); ++j) printf (
"%d ", rec.GetItem(j));
61 fTrack->SecSelected(fTrack);
68 void TEveTrackGL::DirectDraw(TGLRnrCtx & rnrCtx)
const
70 TEveLineGL::DirectDraw(rnrCtx);
72 RenderPathMarksAndFirstVertex(rnrCtx);
78 void TEveTrackGL::RenderPathMarksAndFirstVertex(TGLRnrCtx& rnrCtx)
const
80 TEveTrackPropagator &rTP = *fTrack->GetPropagator();
81 const TEveTrack::vPathMark_t &pms = fTrack->RefPathMarks();
84 Float_t *pnts =
new Float_t[3*pms.size()];
87 for (Int_t i = 0; i < fTrack->fLastPMIdx; ++i)
89 const TEvePathMarkD &pm = pms[i];
90 if ((pm.fType == TEvePathMarkD::kDaughter && rTP.GetRnrDaughters()) ||
91 (pm.fType == TEvePathMarkD::kReference && rTP.GetRnrReferences()) ||
92 (pm.fType == TEvePathMarkD::kDecay && rTP.GetRnrDecay()) ||
93 (pm.fType == TEvePathMarkD::kCluster2D && rTP.GetRnrCluster2Ds()))
102 TGLUtil::RenderPolyMarkers(rTP.RefPMAtt(), 0, pnts, cnt,
103 rnrCtx.GetPickRadius(),
109 if (rTP.GetRnrFV() && fTrack->GetLastPoint())
110 TGLUtil::RenderPolyMarkers(rTP.RefFVAtt(), 0, fTrack->GetP(), 1,
111 rnrCtx.GetPickRadius(),