19#include "TGLIncludes.h" 
   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);
 
  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);
 
  145   prev = i; i = next; ++next;
 
  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.";
 
  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.0f, 1.0f);
 
  354      glEnable(GL_LINE_SMOOTH);
 
Option_t Option_t TPoint TPoint angle
TRObject operator()(const T1 &t1) const
Exception class thrown by TEve classes and macros.
OpenGL renderer class for TEveJetCone.
virtual void DLCacheClear()
Clear DL cache and reset internal point array.
virtual void CalculatePoints() const
Calculate points for drawing.
virtual void DirectDraw(TGLRnrCtx &rnrCtx) const
Render with OpenGL.
std::vector< TEveVector > fP
TEveJetConeGL()
Constructor.
virtual void SetBBox()
Set bounding box.
virtual void Draw(TGLRnrCtx &rnrCtx) const
Draw the cone.
virtual Bool_t SetModel(TObject *obj, const Option_t *opt=nullptr)
Set model object.
OpenGL renderer class for TEveJetConeProjected.
void RenderOutline() const
Draw jet outline.
virtual void DirectDraw(TGLRnrCtx &rnrCtx) const
Render with OpenGL.
virtual void Draw(TGLRnrCtx &rnrCtx) const
Draw the cone.
void RenderPolygon() const
Draw jet surface.
TEveJetConeProjected * fM
virtual void SetBBox()
Set bounding box.
virtual Bool_t SetModel(TObject *obj, const Option_t *opt=nullptr)
Set model object.
virtual void CalculatePoints() const
Calculate points for drawing.
TEveJetConeProjectedGL()
Constructor.
Projection of TEveJetCone.
Draws a jet cone with leading particle is specified in (eta,phi) and cone radius is given.
TEveVector CalcBaseVec(Float_t eta, Float_t phi) const
Returns point on the base of the cone with given eta and phi.
TEveProjectionManager * GetManager() const
TEveProjectable * GetProjectable() const
TEveProjection * GetProjection()
Base-class for non-linear projections.
void ProjectVector(TEveVector &v, Float_t d)
Project TEveVector.
virtual void Draw(TGLRnrCtx &rnrCtx) const
Draw the GL drawable, using draw flags.
TObject * fExternalObj
first replica
virtual void DLCacheClear()
Clear all entries for all LODs for this drawable from the display list cache but keeping the reserved...
Base-class for direct OpenGL renderers.
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.
The TGLRnrCtx class aggregates data for a given redering context as needed by various parts of the RO...
Bool_t IsDrawPassOutlineLine() const
static void Color(const TGLColor &color)
Set color from TGLColor.
static Float_t LineWidth()
Get the line-width, taking the global scaling into account.
Mother of all ROOT objects.
constexpr Double_t PiOver2()
T * Cross(const T v1[3], const T v2[3], T out[3])
Calculates the Cross Product of two vectors: out = [v1 x v2].
constexpr Double_t TwoPi()