Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TEveProjectionManager.h
Go to the documentation of this file.
1// @(#)root/eve:$Id$
2// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 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#ifndef ROOT_TEveProjectionManager
13#define ROOT_TEveProjectionManager
14
15#include "TEveElement.h"
16#include "TAttBBox.h"
17#include "TEveProjections.h"
18
19
21 public TAttBBox
22{
23private:
24 TEveProjectionManager(const TEveProjectionManager&); // Not implemented
26
27protected:
29
30 TEveProjection* fProjection; // current projection
31 TEveVector fCenter; // center of distortion
32 Float_t fCurrentDepth; // z depth of object being projected
33
34 List_t fDependentEls; // elements that depend on manager and need to be destroyed with it
35
36 Bool_t fImportEmpty; // import sub-trees with no projectable elements
37
38 virtual Bool_t ShouldImport(TEveElement* el);
39 virtual void UpdateDependentElsAndScenes(TEveElement* root);
40
41public:
43 ~TEveProjectionManager() override;
44
45 void AddDependent(TEveElement* el);
47
50
51 virtual void UpdateName();
52
55
58
61
63
65 TEveElement* parent);
67 TEveElement* ext_list = nullptr);
68
69 virtual TEveElement* SubImportElements(TEveElement* el, TEveElement* proj_parent);
70 virtual Int_t SubImportChildren(TEveElement* el, TEveElement* proj_parent);
71
72 virtual void ProjectChildren();
73 virtual void ProjectChildrenRecurse(TEveElement* el);
74
75 void ComputeBBox() override;
76
77 ClassDefOverride(TEveProjectionManager, 0); // Manager class for steering of projections and managing projected objects.
78};
79
80#endif
#define d(i)
Definition RSha256.hxx:102
bool Bool_t
Definition RtypesCore.h:63
int Int_t
Definition RtypesCore.h:45
float Float_t
Definition RtypesCore.h:57
#define ClassDefOverride(name, id)
Definition Rtypes.h:346
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 Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Helper for management of bounding-box information.
Definition TAttBBox.h:18
A list of TEveElements.
Base class for TEveUtil visualization elements, providing hierarchy management, rendering control and...
Definition TEveElement.h:36
std::list< TEveElement * > List_t
Definition TEveElement.h:71
Manager class for steering of projections and managing projected objects.
virtual TEveElement * ImportElements(TEveElement *el, TEveElement *ext_list=nullptr)
Recursively import elements and apply projection to the newly imported objects.
void RemoveDependent(TEveElement *el)
Remove el as dependent element.
virtual void ProjectChildrenRecurse(TEveElement *el)
Project el (via TEveProjected::UpdateProjection()) and recurse through el's children.
void AddDependent(TEveElement *el)
Add el as dependent element.
TEveProjection * fProjections[TEveProjection::kPT_End]
virtual TEveElement * ImportElementsRecurse(TEveElement *el, TEveElement *parent)
If el is TEveProjectable add projected instance else add plain TEveElementList to parent.
Bool_t HandleElementPaste(TEveElement *el) override
React to element being pasted or dnd-ed.
void SetCenter(Float_t x, Float_t y, Float_t z)
Set projection center and rebuild projected scene.
void ComputeBBox() override
Virtual from TAttBBox; fill bounding-box information.
virtual void UpdateName()
Updates name to have consistent information with projection.
TEveProjectionManager(const TEveProjectionManager &)
virtual Int_t SubImportChildren(TEveElement *el, TEveElement *proj_parent)
Recursively import children elements of el and apply projection to the newly imported objects.
virtual void UpdateDependentElsAndScenes(TEveElement *root)
Update dependent elements' bounding box and mark scenes containing element root or its children as re...
~TEveProjectionManager() override
Destructor.
void SetProjection(TEveProjection::EPType_e type)
Set projection type and distortion.
virtual TEveElement * SubImportElements(TEveElement *el, TEveElement *proj_parent)
Recursively import elements and apply projection to the newly imported objects.
virtual Bool_t ShouldImport(TEveElement *el)
Returns true if element el should be imported.
virtual void ProjectChildren()
Project all children recursively, update bounding-box and notify TEveManger about the scenes that hav...
TEveProjectionManager & operator=(const TEveProjectionManager &)
TEveProjection * GetProjection()
Base-class for non-linear projections.
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17