Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TEveArrowGL.cxx
Go to the documentation of this file.
1// @(#)root/eve:$Id$
2// Author: Matevz Tadel 2007
3
4/*************************************************************************
5 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#include "TEveArrowGL.h"
13#include "TEveArrow.h"
14
15#include "TGLRnrCtx.h"
16#include "TGLIncludes.h"
17#include "TGLUtil.h"
18#include "TGLQuadric.h"
19
20/** \class TEveArrowGL
21\ingroup TEve
22OpenGL renderer class for TEveArrow.
23*/
24
25
26////////////////////////////////////////////////////////////////////////////////
27/// Constructor.
28
30 TGLObject(), fM(nullptr)
31{
32}
33
34/******************************************************************************/
35
36////////////////////////////////////////////////////////////////////////////////
37/// Set model object.
38
40{
42 return kTRUE;
43}
44
45////////////////////////////////////////////////////////////////////////////////
46/// Set bounding box.
47
49{
50 // !! This ok if master sub-classed from TAttBBox
51 SetAxisAlignedBBox(((TEveArrow*)fExternalObj)->AssertBBox());
52}
53
54/******************************************************************************/
55
56////////////////////////////////////////////////////////////////////////////////
57/// Render with OpenGL.
58
59void TEveArrowGL::DirectDraw(TGLRnrCtx& /*rnrCtx*/) const
60{
61 static TGLQuadric quad;
62
64
68 glMultMatrixd(local.CArr());
70
71 // Line (tube) component
74 gluCylinder(quad.Get(), r, r, size - h, fM->fDrawQuality, 1);
76 gluDisk(quad.Get(), 0.0, r, fM->fDrawQuality, 1);
77
78 // Arrow cone
79 r = size*fM->fConeR;
80 glTranslated(0.0, 0.0, size - h);
81 gluDisk(quad.Get(), 0.0, r, fM->fDrawQuality, 1);
83 gluCylinder(quad.Get(), r, 0., h , fM->fDrawQuality, 1);
84
86}
#define h(i)
Definition RSha256.hxx:106
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
float Float_t
Float 4 bytes (float)
Definition RtypesCore.h:71
constexpr Bool_t kTRUE
Definition RtypesCore.h:107
const char Option_t
Option string (const char)
Definition RtypesCore.h:80
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
void DirectDraw(TGLRnrCtx &rnrCtx) const override
Render with OpenGL.
Bool_t SetModel(TObject *obj, const Option_t *opt=nullptr) override
Set model object.
void SetBBox() override
Set bounding box.
TEveArrow * fM
Definition TEveArrowGL.h:28
TEveArrowGL()
Constructor.
Class used for display of a thick arrow.
Definition TEveArrow.h:25
Float_t fConeR
Definition TEveArrow.h:37
TEveVector fOrigin
Definition TEveArrow.h:40
Float_t fTubeR
Definition TEveArrow.h:36
TEveVector fVector
Definition TEveArrow.h:41
Float_t fConeL
Definition TEveArrow.h:38
Int_t fDrawQuality
Definition TEveArrow.h:43
TT Mag() const
Definition TEveVector.h:99
TObject * fExternalObj
first replica
16 component (4x4) transform matrix - column MAJOR as per GL.
Definition TGLUtil.h:598
Base-class for direct OpenGL renderers.
Definition TGLObject.h:22
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.
Definition TGLObject.cxx:85
Wrapper class for GLU quadric shape drawing object.
Definition TGLQuadric.h:28
The TGLRnrCtx class aggregates data for a given redering context as needed by various parts of the RO...
Definition TGLRnrCtx.h:41
3 component (x/y/z) vector class.
Definition TGLUtil.h:248
3 component (x/y/z) vertex class.
Definition TGLUtil.h:84
Mother of all ROOT objects.
Definition TObject.h:41