CMS 3D CMS Logo

FWEveView.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: Core
4 // Class : FWEveView
5 //
6 // Implementation:
7 // [Notes on implementation]
8 //
9 // Original Author: Alja Mrak-Tadel
10 // Created: Thu Mar 16 14:11:32 CET 2010
11 //
12 
13 
14 
15 #include <RVersion.h>
16 #include <boost/bind.hpp>
17 #include <stdexcept>
18 #include <string>
19 
20 // user include files
21 
22 #include "TGLOrthoCamera.h"
23 #include "TGLPerspectiveCamera.h"
24 #include "TGLCameraGuide.h"
25 
26 #include "TGLEmbeddedViewer.h"
27 #include "TGLScenePad.h"
28 #include "TEveManager.h"
29 #include "TEveElement.h"
30 #include "TEveWindow.h"
31 #include "TEveScene.h"
32 #include "TEveCalo.h"
33 #include "TGLOverlay.h"
34 
37 
53 
54 namespace fireworks
55 {
56 class Context;
57 }
58 
59 /* This class is temporary workaround for missing in TGLAnnotation functionality */
60 class ScaleAnnotation : public TGLAnnotation
61 {
62 public:
63  ScaleAnnotation(TGLViewerBase* parent, const char* text, Float_t posx, Float_t posy):
64  TGLAnnotation(parent, text, posx, posy) {}
65  ~ScaleAnnotation() override {}
66 
67  void setText(const char* txt)
68  {
69  fText = txt;
70  }
71 };
72 
73 //
74 // constructors and destructor
75 //
76 
77 FWEveView::FWEveView(TEveWindowSlot* iParent, FWViewType::EType type, unsigned int version) :
78  FWViewBase(type, version),
79  m_context(nullptr),
80  m_viewer(nullptr),
81  m_eventScene(nullptr),
82  m_ownedProducts(nullptr),
83  m_geoScene(nullptr),
84  m_overlayEventInfo(nullptr),
85  m_overlayLogo(nullptr),
86  m_energyMaxValAnnotation(nullptr),
87  m_cameraGuide(nullptr),
88  // style
89 #if ROOT_VERSION_CODE >= ROOT_VERSION(5,26,0)
90  m_imageScale(this, "Image Scale", 1.0, 1.0, 6.0),
91 #endif
92  m_eventInfoLevel(this, "Overlay Event Info", 0l, 0l, 2l),
93  m_drawCMSLogo(this,"Show Logo",false),
94  m_pointSmooth(this, "Smooth points", false),
95  m_pointSize(this, "Point size", 1.0, 1.0, 10.0),
96  m_lineSmooth(this, "Smooth lines", false),
97  m_lineWidth(this,"Line width",1.0,1.0,10.0),
98  m_lineOutlineScale(this, "Outline width scale", 1.0, 0.01, 10.0),
99  m_lineWireframeScale(this, "Wireframe width scale", 1.0, 0.01, 10.0),
100  m_showCameraGuide(this,"Show Camera Guide",false),
101  m_useGlobalEnergyScale(this, "UseGlobalEnergyScale", true),
102  m_viewContext( new FWViewContext()),
103  m_localEnergyScale( new FWViewEnergyScale(FWViewType::idToName(type), version)),
104  m_viewEnergyScaleEditor(nullptr)
105 {
106  m_viewer = new FWTEveViewer(typeName().c_str());
107 
108  FWTGLViewer *embeddedViewer = m_viewer->SpawnFWTGLViewer();
109  iParent->ReplaceWindow(m_viewer);
110  gEve->GetViewers()->AddElement(m_viewer);
111 
112  m_eventScene = gEve->SpawnNewScene(Form("EventScene %s", typeName().c_str()));
113  m_ownedProducts = new TEveElementList("ViewSpecificProducts");
114  m_eventScene->AddElement(m_ownedProducts);
115 
116  m_viewer->AddScene(m_eventScene);
117 
118  // spawn geo scene
119  m_geoScene = gEve->SpawnNewScene(Form("GeoScene %s", typeName().c_str()));
120  m_geoScene->GetGLScene()->SetSelectable(kFALSE);
121  m_viewer->AddScene(m_geoScene);
122 
123  FWGLEventHandler* eh = new FWGLEventHandler((TGWindow*)embeddedViewer->GetGLWidget(), (TObject*)embeddedViewer);
124  embeddedViewer->SetEventHandler(eh);
125  eh->setViewer(this);
127  eh->SetDoInternalSelection(kFALSE);
129  // ctxHand->setPickCameraCenter(true);
130  m_viewContextMenu.reset(ctxHand);
131 
132  m_energyMaxValAnnotation = new ScaleAnnotation(viewerGL(), "empty", 0.1, 0.9);
133  m_energyMaxValAnnotation->SetRole(TGLOverlayElement::kViewer);
134  m_energyMaxValAnnotation->SetState(TGLOverlayElement::kInvisible);
135  m_energyMaxValAnnotation->SetUseColorSet(false);
136  m_energyMaxValAnnotation->SetTextSize(0.05);
137  m_energyMaxValAnnotation->SetTextColor(kMagenta);
138 
139  // style params
140 
141  m_overlayEventInfo = new FWEventAnnotation(embeddedViewer);
143 
144  m_eventInfoLevel.addEntry(0, "Nothing");
145  m_eventInfoLevel.addEntry(1, "Run / event");
146  m_eventInfoLevel.addEntry(2, "Run / event / lumi");
147  m_eventInfoLevel.addEntry(3, "Full");
149 
150  m_overlayLogo = new CmsAnnotation(embeddedViewer, 0.02, 0.98);
151  m_overlayLogo->setVisible(false);
153 
154  m_cameraGuide = new TGLCameraGuide(0.9, 0.1, 0.08);
155  m_cameraGuide->SetState(TGLOverlayElement::kInvisible);
156  embeddedViewer->AddOverlayElement(m_cameraGuide);
157  m_showCameraGuide.changed_.connect(boost::bind(&FWEveView::cameraGuideChanged,this));
158 
159  m_pointSmooth.changed_.connect(boost::bind(&FWEveView::pointLineScalesChanged,this));
160  m_pointSize.changed_.connect(boost::bind(&FWEveView::pointLineScalesChanged,this));
161  m_lineSmooth.changed_.connect(boost::bind(&FWEveView::pointLineScalesChanged,this));
162  m_lineWidth.changed_.connect(boost::bind(&FWEveView::pointLineScalesChanged,this));
165 
166 
167  // create scale for view ..
168  m_viewContext->setEnergyScale(m_localEnergyScale.get());
170  m_localEnergyScale->parameterChanged_.connect(boost::bind(&FWEveView::setupEnergyScale, this));
171 }
172 
174 {
175  m_geoScene->RemoveElements();
176  m_eventScene->RemoveElements();
177  m_viewer->DestroyWindowAndSlot();
178 }
179 
180 //______________________________________________________________________________
181 // const member functions
182 
183 
186  return dynamic_cast<FWViewContextMenuHandlerBase*> (m_viewContextMenu.get());
187 }
188 
189 TGLViewer*
191 {
192  return m_viewer->GetGLViewer();
193 }
194 
195 TEveViewer*
197 {
198  return m_viewer;
199 }
200 
201 FWTGLViewer*
203 {
204  return m_viewer->fwGlViewer();
205 }
206 
207 void
209 {
210  bool succeeded = false;
211 #if ROOT_VERSION_CODE >= ROOT_VERSION(5,26,0)
212  succeeded = viewerGL()->SavePictureScale(iName, m_imageScale.value());
213 #else
214  succeeded = viewerGL()->SavePicture(iName.c_str());
215 #endif
216 
217  if(!succeeded) {
218  throw std::runtime_error("Unable to save picture");
219  }
220  fwLog(fwlog::kInfo) << "Saved image " << iName << std::endl;
221 }
222 
223 //-------------------------------------------------------------------------------
224 void
226 {
227  viewerGL()->SetSmoothPoints(m_pointSmooth.value());
228  viewerGL()->SetPointScale (m_pointSize.value());
229  viewerGL()->SetSmoothLines (m_lineSmooth.value());
230  viewerGL()->SetLineScale (m_lineWidth.value());
231  viewerGL()->SetOLLineW (m_lineOutlineScale.value());
232  viewerGL()->SetWFLineW (m_lineWireframeScale.value());
233  viewerGL()->Changed();
234  gEve->Redraw3D();
235 }
236 
237 void
239 {
240  m_cameraGuide->SetBinaryState(m_showCameraGuide.value());
241  viewerGL()->Changed();
242  gEve->Redraw3D();
243 }
244 
245 void
247 {
248 }
249 
250 void
252 {
255 }
256 
257 void
259 {
261 }
262 
263 void
265 {
266  viewerGL()->ResetCurrentCamera();
267 }
268 
269 //______________________________________________________________________________
270 void
272 {
273  m_context = &x ;
274 
275  // in constructor view context has local scale
277  m_viewContext->setEnergyScale(context().commonPrefs()->getEnergyScale());
278 }
279 
280 bool
282 {
283  return m_useGlobalEnergyScale.value();
284 }
285 
286 void
288 {
292 }
293 
294 void
296 {
297  TEveCaloViz* calo = getEveCalo();
298  if (calo)
299  context().voteMaxEtAndEnergy(calo->GetData()->GetMaxVal(true), calo->GetData()->GetMaxVal(false));
300 }
301 
302 void
304 {
305  // Called at end of event OR if scale parameters changed.
306 
307  FWViewEnergyScale* energyScale = viewContext()->getEnergyScale();
308  // printf("setupEnergyScale %s >> scale name %s\n", typeName().c_str(), energyScale->name().c_str());
309  voteCaloMaxVal();
310 
311  // set cache for energy to lenght conversion
312  float maxVal = context().getMaxEnergyInEvent(energyScale->getPlotEt());
313  energyScale->updateScaleFactors(maxVal);
314  // printf("max event val %f \n", maxVal);
315  // printf("scales lego %f \n", energyScale->getScaleFactorLego());
316 
317  // configure TEveCaloViz
318  TEveCaloViz* calo = getEveCalo();
319  if (calo)
320  {
321  calo->SetPlotEt(energyScale->getPlotEt());
322  if (FWViewType::isLego(typeId()))
323  {
324  float f = energyScale->getScaleFactorLego();
325  calo->SetMaxValAbs(TMath::Pi()/f);
326  }
327  else
328  {
329  float f = energyScale->getScaleFactor3D();
330  calo->SetMaxValAbs(100/f);
331  }
332  calo->ElementChanged();
333  }
334 
335  // emit signal to proxy builders
337  gEve->Redraw3D();
338 }
339 
340 void
342 {
343  // piggyback on scales signal connections to redraw jets
344  // can add new signal in future if necessary
346  gEve->Redraw3D();
347 }
348 
349 //-------------------------------------------------------------------------------
350 void
352 {
353  // take care of parameters
355 
356  {
357  assert ( m_overlayEventInfo );
359  }
360  {
361  assert ( m_overlayLogo );
362  m_overlayLogo->addTo(iTo);
363  }
364 
365  m_viewContext->getEnergyScale()->addTo(iTo);
366 }
367 
368 void
370 {
371  // Make sure you change the version ranges here
372  // whenever you update the logic.
373  // The rationale should be:
374  // (version range supported by the next block) && (version range in the configuration file)
375  //
376  // This is not "forward" compatible, but I don't think
377  // we care.
378  if (version() >= 2 && iFrom.version() >= 1)
379  {
380  for(const_iterator it =begin(), itEnd = end();
381  it != itEnd;
382  ++it) {
383  (*it)->setFrom(iFrom);
384  }
385  }
386  if (iFrom.version() > 1)
387  {
388  assert( m_overlayEventInfo);
389  m_overlayEventInfo->setFrom(iFrom);
390  }
391  {
392  assert( m_overlayLogo);
393  m_overlayLogo->setFrom(iFrom);
394  }
395 
396  if (iFrom.version() > 4)
397  {
398  m_localEnergyScale->setFrom(iFrom);
399  }
400 
401 
402  // selection clors
403  {
404  const TGLColorSet& lcs = context().commonPrefs()->getLightColorSet();
405  const TGLColorSet& dcs = context().commonPrefs()->getDarkColorSet();
406  const UChar_t* ca = nullptr;
407 
408  ca = lcs.Selection(1).CArr();
409  viewerGL()->RefLightColorSet().Selection(1).SetColor(ca[0], ca[1], ca[2]);
410  ca = lcs.Selection(3).CArr();
411  viewerGL()->RefLightColorSet().Selection(3).SetColor(ca[0], ca[1], ca[2]);
412  ca = dcs.Selection(1).CArr();
413  viewerGL()->RefDarkColorSet().Selection(1).SetColor(ca[0], ca[1], ca[2]);
414  ca = dcs.Selection(3).CArr();
415  viewerGL()->RefDarkColorSet().Selection(3).SetColor(ca[0], ca[1], ca[2]);
416  }
417 }
418 
419 
420 //______________________________________________________________________________
421 
422 
423 void
424 FWEveView::addToOrthoCamera(TGLOrthoCamera* camera, FWConfiguration& iTo) const
425 {
426  // zoom
427  std::string name("cameraZoom");
428  iTo.addKeyValue(name+typeName(),FWConfiguration(std::to_string(camera->GetZoom())));
429 
430  // transformation matrix
431  std::string matrixName("cameraMatrix");
432  for ( unsigned int i = 0; i < 16; ++i ) {
433  std::ostringstream osIndex;
434  osIndex << i;
435  std::ostringstream osValue;
436  osValue << camera->GetCamTrans()[i];
437  iTo.addKeyValue(matrixName+osIndex.str()+typeName(),FWConfiguration(osValue.str()));
438  }
439 }
440 
441 void
442 FWEveView::setFromOrthoCamera(TGLOrthoCamera* camera, const FWConfiguration& iFrom)
443 {
444  try {
445  // zoom
446  std::string zoomName("cameraZoom"); zoomName += typeName();
447  if (iFrom.valueForKey(zoomName) == nullptr )
448  {
449  throw std::runtime_error("can't restore parameter cameraZoom");
450  }
451  camera->SetZoom(std::stod(iFrom.valueForKey(zoomName)->value()));
452 
453  // transformation matrix
454  std::string matrixName("cameraMatrix");
455  for ( unsigned int i = 0; i < 16; ++i ) {
456  std::ostringstream os;
457  os << i;
458  const FWConfiguration* value = iFrom.valueForKey( matrixName + os.str() + typeName() );
459  if ( value == nullptr )
460  {
461  throw std::runtime_error ("can't restore parameter cameraMatrix.");
462  }
463  std::istringstream s(value->value());
464  s>> (camera->RefCamTrans()[i]);
465  }
466  }
467  catch (const std::runtime_error& iException)
468  {
469  fwLog(fwlog::kInfo) << "Caught exception while restoring camera parameters in view " << typeName() << "\n.";
470  viewerGL()->ResetCamerasAfterNextUpdate();
471 
472  }
473  camera->IncTimeStamp();
474 }
475 
476 void
477 FWEveView::addToPerspectiveCamera(TGLPerspectiveCamera* cam, const std::string& name, FWConfiguration& iTo) const
478 {
479  // transformation matrix
480  std::string matrixName("cameraMatrix");
481  for ( unsigned int i = 0; i < 16; ++i ){
482  std::ostringstream osIndex;
483  osIndex << i;
484  std::ostringstream osValue;
485  osValue << (cam->GetCamTrans())[i];
486  iTo.addKeyValue(matrixName+osIndex.str()+name,FWConfiguration(osValue.str()));
487  }
488 
489  // transformation matrix base
490  matrixName = "cameraMatrixBase";
491  for ( unsigned int i = 0; i < 16; ++i ){
492  std::ostringstream osIndex;
493  osIndex << i;
494  std::ostringstream osValue;
495  osValue << (cam->GetCamBase())[i];
496  iTo.addKeyValue(matrixName+osIndex.str()+name,FWConfiguration(osValue.str()));
497  }
498  {
499  iTo.addKeyValue(name+" FOV",FWConfiguration(std::to_string(cam->GetFOV())));
500  }
501 }
502 
503 void
504 FWEveView::setFromPerspectiveCamera(TGLPerspectiveCamera* cam, const std::string& name, const FWConfiguration& iFrom)
505 {
506  try {
507  std::string matrixName("cameraMatrix");
508  for ( unsigned int i = 0; i < 16; ++i ){
509  std::ostringstream os;
510  os << i;
511  const FWConfiguration* value = iFrom.valueForKey( matrixName + os.str() + name );
512  if ( value == nullptr )
513  {
514  throw std::runtime_error ("can't restore parameter cameraMatrix.");
515  }
516  std::istringstream s(value->value());
517  s>>((cam->RefCamTrans())[i]);
518  }
519 
520  // transformation matrix base
521  matrixName = "cameraMatrixBase";
522  for ( unsigned int i = 0; i < 16; ++i ){
523  std::ostringstream os;
524  os << i;
525  const FWConfiguration* value = iFrom.valueForKey( matrixName + os.str() + name );
526  if ( value == nullptr )
527  {
528  throw std::runtime_error ("can't restore parameter cameraMatrixBase.");
529  }
530 
531  std::istringstream s(value->value());
532  s>>((cam->RefCamBase())[i]);
533  }
534 
535  {
536  const FWConfiguration* value = iFrom.valueForKey( name + " FOV" );
537  if ( value == nullptr )
538  {
539  throw std::runtime_error ("can't restore parameter cameraMatrixBase.");
540  }
541  cam->SetFOV(std::stod(value->value()));
542  }
543 
544  cam->IncTimeStamp();
545  }
546  catch (const std::runtime_error& iException)
547  {
548  fwLog(fwlog::kInfo) << "Caught exception while restoring camera parameters in view " << typeName() << "\n.";
549  viewerGL()->ResetCamerasAfterNextUpdate();
550  fwLog(fwlog::kDebug) << "Reset camera fo view " << typeName() << "\n.";
551  }
552 }
553 
554 
555 void
557 {
558  gui.requestTab("Style").
559  addParam(&m_eventInfoLevel).
560  addParam(&m_drawCMSLogo).
561  addParam(&m_showCameraGuide).
562  separator().
563 #if ROOT_VERSION_CODE >= ROOT_VERSION(5,26,0)
564  addParam(&m_imageScale).
565 #endif
566  addParam(&m_pointSize).
567  addParam(&m_pointSmooth).
568  addParam(&m_lineSmooth).
569  addParam(&m_lineWidth).
570  addParam(&m_lineOutlineScale).
571  addParam(&m_lineWireframeScale);
572 
573 
574  gui.requestTab("Scales").
575  addParam(&m_useGlobalEnergyScale);
576 
580 }
void scaleChanged()
const double Pi
type
Definition: HCALResponse.h:21
float getScaleFactor3D() const
void addTo(FWConfiguration &) const override
void addToOrthoCamera(TGLOrthoCamera *, FWConfiguration &) const
Definition: FWEveView.cc:424
string separator
Definition: mps_merge.py:77
FWEventAnnotation * m_overlayEventInfo
Definition: FWEveView.h:126
FWViewContextMenuHandlerBase * contextMenuHandler() const override
Definition: FWEveView.cc:185
std::vector< FWParameterBase * >::const_iterator const_iterator
virtual TEveCaloViz * getEveCalo() const
Definition: FWEveView.h:103
virtual void useGlobalEnergyScaleChanged()
Definition: FWEveView.cc:287
const_iterator begin() const
std::auto_ptr< FWViewContext > m_viewContext
Definition: FWEveView.h:150
std::shared_ptr< FWViewContextMenuHandlerGL > m_viewContextMenu
Definition: FWEveView.h:149
FWTGLViewer * fwViewerGL() const
Definition: FWEveView.cc:202
virtual void pointLineScalesChanged()
Definition: FWEveView.cc:225
void voteMaxEtAndEnergy(float Et, float energy) const
Definition: Context.cc:183
ScaleAnnotation(TGLViewerBase *parent, const char *text, Float_t posx, Float_t posy)
Definition: FWEveView.cc:63
ViewerParameterGUI & requestTab(const char *)
FWViewEnergyScale * getEnergyScale() const
const std::string & typeName() const
Definition: FWViewBase.cc:120
virtual void setFrom(const FWConfiguration &)
TEveScene * m_geoScene
Definition: FWEveView.h:124
unsigned int version() const
virtual void setupEventCenter()
Definition: FWEveView.cc:341
FWViewEnergyScaleEditor * m_viewEnergyScaleEditor
Definition: FWEveView.h:153
virtual void setupEnergyScale()
Definition: FWEveView.cc:303
void addFrameToContainer(TGCompositeFrame *)
FWDoubleParameter m_pointSize
Definition: FWEveView.h:140
TGLViewer * viewerGL() const
Definition: FWEveView.cc:190
void updateScaleFactors(float iMaxVal)
#define nullptr
sigc::signal< void, T > changed_
const fireworks::Context * m_context
Definition: FWEveView.h:112
TEveElement * m_ownedProducts
Definition: FWEveView.h:123
FWBoolParameter m_lineSmooth
Definition: FWEveView.h:141
virtual void eventEnd()
Definition: FWEveView.cc:251
FWBoolParameter m_showCameraGuide
Definition: FWEveView.h:146
FWBoolParameter m_useGlobalEnergyScale
Definition: FWEveView.h:147
~ScaleAnnotation() override
Definition: FWEveView.cc:65
virtual void cameraGuideChanged()
Definition: FWEveView.cc:238
virtual void voteCaloMaxVal()
Definition: FWEveView.cc:295
virtual void setFrom(const FWConfiguration &)
ScaleAnnotation * m_energyMaxValAnnotation
Definition: FWEveView.h:128
FWTGLViewer * fwGlViewer()
Definition: FWTEveViewer.h:53
void setText(const char *txt)
Definition: FWEveView.cc:67
float getScaleFactorLego() const
FWTEveViewer * m_viewer
Definition: FWEveView.h:121
TEveViewer * viewer()
Definition: FWEveView.cc:196
const_iterator end() const
bool addEntry(Long_t id, const std::string &txt)
const TGLColorSet & getLightColorSet() const
Definition: CmsShowCommon.h:75
double f[11][100]
float getMaxEnergyInEvent(bool isEt) const
Definition: Context.cc:199
Definition: value.py:1
virtual void resetCamera()
Definition: FWEveView.cc:264
virtual void addTo(FWConfiguration &) const
sigc::signal< void, Int_t, Int_t > openSelectedModelContextMenu_
void saveImageTo(const std::string &iName) const override
Definition: FWEveView.cc:208
FWBoolParameter m_drawCMSLogo
Definition: FWEveView.h:137
void setViewer(FWEveView *ev)
FWConfiguration & addKeyValue(const std::string &, const FWConfiguration &)
virtual void eventBegin()
Definition: FWEveView.cc:246
std::auto_ptr< FWViewEnergyScale > m_localEnergyScale
Definition: FWEveView.h:151
const std::string & value(unsigned int iIndex=0) const
const fireworks::Context & context()
Definition: FWEveView.h:67
FWBoolParameter m_pointSmooth
Definition: FWEveView.h:139
FWDoubleParameter m_imageScale
Definition: FWEveView.h:134
void setFrom(const FWConfiguration &) override
Definition: FWEveView.cc:369
void setFromPerspectiveCamera(TGLPerspectiveCamera *, const std::string &, const FWConfiguration &)
Definition: FWEveView.cc:504
#define fwLog(_level_)
Definition: fwLog.h:50
FWViewContext * viewContext()
Definition: FWEveView.h:86
FWViewEnergyScale * getEnergyScale() const
Definition: CmsShowCommon.h:72
virtual void setBackgroundColor(Color_t)
Definition: FWEveView.cc:258
FWEveView(TEveWindowSlot *, FWViewType::EType, unsigned int version=7)
Definition: FWEveView.cc:77
FWDoubleParameter m_lineOutlineScale
Definition: FWEveView.h:143
const TGLColorSet & getDarkColorSet() const
Definition: CmsShowCommon.h:76
CmsShowCommon * commonPrefs() const
Definition: Context.cc:177
TGCompositeFrame * getTabContainer()
TEveScene * m_eventScene
Definition: FWEveView.h:122
void addTo(FWConfiguration &) const override
Definition: FWEveView.cc:351
FWEnumParameter m_eventInfoLevel
Definition: FWEveView.h:136
static bool isLego(int)
Definition: FWViewType.cc:135
if(dp >Float(M_PI)) dp-
static Bool_t setColorSetViewer(TGLViewer *, Color_t)
virtual void addTo(FWConfiguration &) const
const FWConfiguration * valueForKey(const std::string &iKey) const
~FWEveView() override
Definition: FWEveView.cc:173
virtual bool isEnergyScaleGlobal() const
Definition: FWEveView.cc:281
FWDoubleParameter m_lineWidth
Definition: FWEveView.h:142
FWDoubleParameter m_lineWireframeScale
Definition: FWEveView.h:144
void setFromOrthoCamera(TGLOrthoCamera *, const FWConfiguration &)
Definition: FWEveView.cc:442
void setVisible(bool x)
sigc::signal< void, Int_t, Int_t > openSelectedModelContextMenu_
Definition: FWViewBase.h:58
TGLCameraGuide * m_cameraGuide
Definition: FWEveView.h:129
virtual void setContext(const fireworks::Context &x)
Definition: FWEveView.cc:271
FWTGLViewer * SpawnFWTGLViewer()
bool getPlotEt() const
void populateController(ViewerParameterGUI &) const override
Definition: FWEveView.cc:556
CmsAnnotation * m_overlayLogo
Definition: FWEveView.h:127
FWViewType::EType typeId() const
Definition: FWViewBase.h:43
void addToPerspectiveCamera(TGLPerspectiveCamera *, const std::string &, FWConfiguration &) const
Definition: FWEveView.cc:477