#include "TEveTrackProjectedGL.h"
#include "TEveTrackProjected.h"
#include "TEveTrackPropagator.h"
#include "TEveProjectionManager.h"
#include "TGLIncludes.h"
#include "TGLRnrCtx.h"
ClassImp(TEveTrackProjectedGL);
TEveTrackProjectedGL::TEveTrackProjectedGL() : TEveTrackGL(), fM(0)
{
}
Bool_t TEveTrackProjectedGL::SetModel(TObject* obj, const Option_t* )
{
TEveTrackGL::SetModel(obj);
fM = DynCast<TEveTrackProjected>(obj);
return kTRUE;
}
void TEveTrackProjectedGL::DirectDraw(TGLRnrCtx& rnrCtx) const
{
if (fM->Size() == 0)
return;
if (fM->fRnrLine)
{
TGLCapabilityEnabler sw_smooth(GL_LINE_SMOOTH, fM->fSmooth);
TGLCapabilityEnabler sw_blend(GL_BLEND, fM->fSmooth);
Int_t start = 0;
Float_t* p = fM->GetP();
TGLUtil::LockColor();
for (std::vector<Int_t>::iterator bpi = fM->fBreakPoints.begin();
bpi != fM->fBreakPoints.end(); ++bpi)
{
Int_t size = *bpi - start;
TGLUtil::RenderPolyLine(*fM, fM->GetMainTransparency(), p, size);
p += 3*size;
start += size;
}
TGLUtil::UnlockColor();
}
if (fM->fRnrPoints)
{
TGLUtil::RenderPolyMarkers(*fM, 0,
fM->GetP(), fM->Size(),
rnrCtx.GetPickRadius(),
rnrCtx.Selection());
}
if (fM->fBreakPoints.size() > 1 && fM->fPropagator->GetRnrPTBMarkers())
{
Int_t nbp = fM->fBreakPoints.size() - 1;
Bool_t bmb = fM->fPropagator->GetProjTrackBreaking() == TEveTrackPropagator::kPTB_Break;
Int_t nbptd = bmb ? 2*nbp : nbp;
std::vector<Float_t> pnts(3*nbptd);
Int_t n = 0;
for (Int_t i = 0; i < nbp; ++i, n+=3)
{
fM->GetPoint(fM->fBreakPoints[i] - 1, pnts[n], pnts[n+1], pnts[n+2]);
if (bmb)
{
n += 3;
fM->GetPoint(fM->fBreakPoints[i], pnts[n], pnts[n+1], pnts[n+2]);
}
}
TGLUtil::RenderPolyMarkers(fM->fPropagator->RefPTBAtt(), 0,
&pnts[0], nbptd,
rnrCtx.GetPickRadius(),
rnrCtx.Selection());
}
RenderPathMarksAndFirstVertex(rnrCtx);
}
TEveTrackProjectedGL.cxx:1 TEveTrackProjectedGL.cxx:2 TEveTrackProjectedGL.cxx:3 TEveTrackProjectedGL.cxx:4 TEveTrackProjectedGL.cxx:5 TEveTrackProjectedGL.cxx:6 TEveTrackProjectedGL.cxx:7 TEveTrackProjectedGL.cxx:8 TEveTrackProjectedGL.cxx:9 TEveTrackProjectedGL.cxx:10 TEveTrackProjectedGL.cxx:11 TEveTrackProjectedGL.cxx:12 TEveTrackProjectedGL.cxx:13 TEveTrackProjectedGL.cxx:14 TEveTrackProjectedGL.cxx:15 TEveTrackProjectedGL.cxx:16 TEveTrackProjectedGL.cxx:17 TEveTrackProjectedGL.cxx:18 TEveTrackProjectedGL.cxx:19 TEveTrackProjectedGL.cxx:20 TEveTrackProjectedGL.cxx:21 TEveTrackProjectedGL.cxx:22 TEveTrackProjectedGL.cxx:23 TEveTrackProjectedGL.cxx:24 TEveTrackProjectedGL.cxx:25 TEveTrackProjectedGL.cxx:26 TEveTrackProjectedGL.cxx:27 TEveTrackProjectedGL.cxx:28 TEveTrackProjectedGL.cxx:29 TEveTrackProjectedGL.cxx:30 TEveTrackProjectedGL.cxx:31 TEveTrackProjectedGL.cxx:32 TEveTrackProjectedGL.cxx:33 TEveTrackProjectedGL.cxx:34 TEveTrackProjectedGL.cxx:35 TEveTrackProjectedGL.cxx:36 TEveTrackProjectedGL.cxx:37 TEveTrackProjectedGL.cxx:38 TEveTrackProjectedGL.cxx:39 TEveTrackProjectedGL.cxx:40 TEveTrackProjectedGL.cxx:41 TEveTrackProjectedGL.cxx:42 TEveTrackProjectedGL.cxx:43 TEveTrackProjectedGL.cxx:44 TEveTrackProjectedGL.cxx:45 TEveTrackProjectedGL.cxx:46 TEveTrackProjectedGL.cxx:47 TEveTrackProjectedGL.cxx:48 TEveTrackProjectedGL.cxx:49 TEveTrackProjectedGL.cxx:50 TEveTrackProjectedGL.cxx:51 TEveTrackProjectedGL.cxx:52 TEveTrackProjectedGL.cxx:53 TEveTrackProjectedGL.cxx:54 TEveTrackProjectedGL.cxx:55 TEveTrackProjectedGL.cxx:56 TEveTrackProjectedGL.cxx:57 TEveTrackProjectedGL.cxx:58 TEveTrackProjectedGL.cxx:59 TEveTrackProjectedGL.cxx:60 TEveTrackProjectedGL.cxx:61 TEveTrackProjectedGL.cxx:62 TEveTrackProjectedGL.cxx:63 TEveTrackProjectedGL.cxx:64 TEveTrackProjectedGL.cxx:65 TEveTrackProjectedGL.cxx:66 TEveTrackProjectedGL.cxx:67 TEveTrackProjectedGL.cxx:68 TEveTrackProjectedGL.cxx:69 TEveTrackProjectedGL.cxx:70 TEveTrackProjectedGL.cxx:71 TEveTrackProjectedGL.cxx:72 TEveTrackProjectedGL.cxx:73 TEveTrackProjectedGL.cxx:74 TEveTrackProjectedGL.cxx:75 TEveTrackProjectedGL.cxx:76 TEveTrackProjectedGL.cxx:77 TEveTrackProjectedGL.cxx:78 TEveTrackProjectedGL.cxx:79 TEveTrackProjectedGL.cxx:80 TEveTrackProjectedGL.cxx:81 TEveTrackProjectedGL.cxx:82 TEveTrackProjectedGL.cxx:83 TEveTrackProjectedGL.cxx:84 TEveTrackProjectedGL.cxx:85 TEveTrackProjectedGL.cxx:86 TEveTrackProjectedGL.cxx:87 TEveTrackProjectedGL.cxx:88 TEveTrackProjectedGL.cxx:89 TEveTrackProjectedGL.cxx:90 TEveTrackProjectedGL.cxx:91 TEveTrackProjectedGL.cxx:92 TEveTrackProjectedGL.cxx:93 TEveTrackProjectedGL.cxx:94 TEveTrackProjectedGL.cxx:95 TEveTrackProjectedGL.cxx:96 TEveTrackProjectedGL.cxx:97 TEveTrackProjectedGL.cxx:98 TEveTrackProjectedGL.cxx:99 TEveTrackProjectedGL.cxx:100 TEveTrackProjectedGL.cxx:101 TEveTrackProjectedGL.cxx:102 TEveTrackProjectedGL.cxx:103 TEveTrackProjectedGL.cxx:104 TEveTrackProjectedGL.cxx:105 TEveTrackProjectedGL.cxx:106 TEveTrackProjectedGL.cxx:107 TEveTrackProjectedGL.cxx:108 TEveTrackProjectedGL.cxx:109 TEveTrackProjectedGL.cxx:110 TEveTrackProjectedGL.cxx:111 TEveTrackProjectedGL.cxx:112 TEveTrackProjectedGL.cxx:113 TEveTrackProjectedGL.cxx:114