ROOT logo
ROOT » GRAF3D » GVIZ3D » TStructViewer

class TStructViewer: public TObject



 TStructViewer viewer represents class, struct or other type as an object in 3D space.
 At the top of the scene we can see objects which is our pointer. Under it we see
 pointers and collection elements. Collection must inherit from TCollection
 or be STL collecion.

 We can change the number of visible levels or objects on the scene with the  GUI or
 methods. The size of geometry objects is proportional to the memory taken by this object
 or to the number of members inside this object.

 An easy way to find some class in the viewer is to change the color of the type.
 We can connect for example a TF2 class with red color or connect all classes
 inheriting from TF2 by adding plus to name. For example typename "TF2+" tells us
 that all classes inheriting from TF2 will be red.

 Navigation in viewer is very simple like in usual GLViewer. When you put the mouse over
 some object you can see some information about it (e.g. name, size, actual level).
 When you double click this object, it becames top object on scene.
 Undo and redo operation are supported.


In this picture we can see TStructViewer with pointer to TList which contains other collections and objects of various classes



Other screenshot presents opened TStructNodeEditor




Function Members (Methods)

public:
TStructViewer(void* ptr = NULL, const char* clname = NULL)
virtual~TStructViewer()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidDraw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
TCanvas*GetCanvas()
TColorGetColor(const char* typeName)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
TGMainFrame*GetFrame()
virtual const char*TObject::GetIconName() const
TExMapGetLevelMembersCount() const
TExMapGetLevelSize() const
Bool_tGetLinksVisibility() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
void*GetPointer() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TObject&TObject::operator=(const TObject& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetColor(TString name, Int_t color)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetLinksVisibility(Bool_t val)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPointer(void* ptr, const char* clname = NULL)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
voidAddNode(TStructNode* node, ULong_t size)
voidCountMembers(TClass* cl, TStructNode* parent, void* pointer)
voidPrepare()
voidReset()

Data Members

private:
TListfColorsList with properties used to color nodes
TStructViewerGUI*fGUIPointer to GUI class
TObjArrayfLevelArrayArray with pointers to nodes on each level
TExMapfLevelMembersCountContains number of objects on each level
TExMapfLevelSizeContains total size in bytes of a level
void*fPointerMain pointer to represented object
TClass*fPointerClassTClass of a main pointer
TExMapfPointersMap of pointer to avoid circulation
TStructNode*fTopNodeMaster node for fPointer

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TStructViewer(void* ptr = NULL, const char* clname = NULL)
 Default constructor. An argument "ptr" is a main pointer of type "clname", which should be shown in the viewer
~TStructViewer()
 Destructor. Clean all object after closing the viewer
void AddNode(TStructNode* node, ULong_t size)
 Find list with nodes on specified level and add node to this list and increment list of sizes and list of members
void CountMembers(TClass* cl, TStructNode* parent, void* pointer)
 Count allocated memory, increase member counters, find child nodes
void Draw(Option_t* option = "")
 Draw object if there is valid pointer
TCanvas* GetCanvas()
 Returns canvas used to keep TGeoVolumes
TGMainFrame* GetFrame()
 Returns pointer to main window
void* GetPointer() const
 Return main pointer
TExMap GetLevelMembersCount() const
 Returns TExMap with pairs <level number, number of objects>
TExMap GetLevelSize() const
 Returns TExMap with pairs <level number, size of level in bytes>
Bool_t GetLinksVisibility() const
 Get visibility of links between objects
void Prepare()
 Create top node and find all member nodes
void Reset()
 Deleting nodes, maps and array
void SetColor(TString name, Int_t color)
 Sets color for the class "name" to color "color"
void SetLinksVisibility(Bool_t val)
 ISets links visibility
void SetPointer(void* ptr, const char* clname = NULL)
 Set main pointer of class "clname"
TColor GetColor(const char* typeName)
 Returns color associated with type "typeName"