42 fC = SetModelDynCast<TEveJetCone>(
obj);
75 for (
Int_t i = 0; i < NP; ++i, angle += angle_step)
91 glPushAttrib(GL_ENABLE_BIT);
92 glDisable(GL_LIGHTING);
101 glBegin(GL_LINE_LOOP);
102 for (
Int_t i = 0; i < NP; ++i)
129 glPushAttrib(GL_ENABLE_BIT | GL_POLYGON_BIT | GL_LIGHTING_BIT);
131 glDisable(GL_CULL_FACE);
132 glEnable(GL_NORMALIZE);
134 glLightModeliv(GL_LIGHT_MODEL_TWO_SIDE, &lmts);
147 glBegin(GL_TRIANGLES);
152 glNormal3fv(prev_normal);
153 glVertex3fv(
fP[prev]);
155 glNormal3fv(prev_normal + curr_normal);
158 glNormal3fv(curr_normal);
161 prev_normal = curr_normal;
165 ++
next;
if (next >= NP) next = 0;
193 fM = SetModelDynCast<TEveJetConeProjected>(
obj);
208 struct less_eve_vec_phi_t
211 {
return a.
Phi() < b.
Phi(); }
220 static const TEveException kEH(
"TEveJetConeProjectedGL::CalculatePoints ");
234 for (
Int_t i = 0; i < 3; ++i)
249 if (tM >
fC->
fThetaC && tm < fC->fThetaC)
251 fP.reserve(
fP.size() + 1);
258 fP.reserve(
fP.size() + 1);
264 for (
Int_t i = 0; i < NP; ++i)
267 std::sort(
fP.begin() + 1,
fP.end(), less_eve_vec_phi_t());
273 throw kEH +
"Unsupported projection type.";
284 glBegin(GL_LINE_LOOP);
285 for (
Int_t i = 0; i < NP; ++i)
287 glVertex3fv(
fP[i].Arr());
299 for (
Int_t i = 0; i < NP; ++i)
301 glVertex3fv(
fP[i].Arr());
341 glPushAttrib(GL_ENABLE_BIT);
342 glDisable(GL_LIGHTING);
346 glEnable(GL_POLYGON_OFFSET_FILL);
347 glPolygonOffset(1.0
f, 1.0
f);
354 glEnable(GL_LINE_SMOOTH);
The TGLRnrCtx class aggregates data for a given redering context as needed by various parts of the RO...
TEveJetConeProjectedGL()
Constructor.
static void Color(const TGLColor &color)
Set color from TGLColor.
ClassImp(TSeqCollection) Int_t TSeqCollection TIter next(this)
Return index of object in collection.
Draws a jet cone with leading particle is specified in (eta,phi) and cone radius is given...
void SetAxisAlignedBBox(Float_t xmin, Float_t xmax, Float_t ymin, Float_t ymax, Float_t zmin, Float_t zmax)
Set axis-aligned bounding-box.
TEveProjectable * GetProjectable() const
virtual void DirectDraw(TGLRnrCtx &rnrCtx) const
Render with OpenGL.
OpenGL renderer class for TEveJetConeProjected.
virtual void DLCacheClear()
Clear DL cache and reset internal point array.
virtual Bool_t SetModel(TObject *obj, const Option_t *opt=0)
Set model object.
Projection of TEveJetCone.
void RenderOutline() const
Draw jet outline.
Base-class for direct OpenGL renderers.
void ProjectVector(TEveVector &v, Float_t d)
Project TEveVector.
Base-class for non-linear projections.
virtual void CalculatePoints() const
Calculate points for drawing.
TObject * fExternalObj
first replica
TT Eta() const
Calculate eta of the point, pretending it's a momentum vector.
virtual void SetBBox()
Set bounding box.
void RenderPolygon() const
Draw jet surface.
virtual void SetBBox()
Set bounding box.
std::vector< TEveVector > fP
virtual void Draw(TGLRnrCtx &rnrCtx) const
Draw the GL drawable, using draw flags.
Bool_t IsDrawPassOutlineLine() const
T * Cross(const T v1[3], const T v2[3], T out[3])
TEveJetConeProjected * fM
TEveJetConeGL()
Constructor.
virtual Bool_t SetModel(TObject *obj, const Option_t *opt=0)
Set model object.
TEveProjection * GetProjection()
TRObject operator()(const T1 &t1) const
virtual void Draw(TGLRnrCtx &rnrCtx) const
Draw the cone.
Mother of all ROOT objects.
OpenGL renderer class for TEveJetCone.
virtual void DirectDraw(TGLRnrCtx &rnrCtx) const
Render with OpenGL.
virtual void CalculatePoints() const
Calculate points for drawing.
Exception class thrown by TEve classes and macros.
TEveProjectionManager * GetManager() const
static Float_t LineWidth()
Get the line-width, taking the global scaling into account.
virtual void Draw(TGLRnrCtx &rnrCtx) const
Draw the cone.
TEveVector CalcBaseVec(Float_t eta, Float_t phi) const
Returns point on the base of the cone with given eta and phi.
virtual void DLCacheClear()
Clear all entries for all LODs for this drawable from the display list cache but keeping the reserved...