16 ClassImp(TStructNode);
31 EScalingType TStructNode::fgScalBy = kMembers;
37 TStructNode::TStructNode(TString name, TString typeName,
void* pointer, TStructNode* parent, ULong_t size, ENodeType type)
41 fTotalSize = fSize = size;
42 fMembers =
new TList();
43 fMembersCount = fAllMembersCount = 1;
45 fX = fY = fWidth = fHeight = 0;
48 fLevel = parent->GetLevel()+1;
49 parent->fMembers->Add(
this);
63 TStructNode::~TStructNode()
71 Int_t TStructNode::Compare(
const TObject* obj)
const
73 TStructNode* node = (TStructNode*)obj;
75 if (GetVolume() < node->GetVolume()) {
78 if(GetVolume() > node->GetVolume()) {
95 ULong_t TStructNode::GetAllMembersCount()
const
97 return fAllMembersCount;
103 Float_t TStructNode::GetCenter()
const
105 return (fX + fWidth /2);
111 Float_t TStructNode::GetHeight()
const
119 UInt_t TStructNode::GetLevel()
const
127 const char* TStructNode::GetName()
const
135 ENodeType TStructNode::GetNodeType()
const
143 UInt_t TStructNode::GetMaxLevel()
const
151 UInt_t TStructNode::GetMaxObjects()
const
159 TList* TStructNode::GetMembers()
const
167 ULong_t TStructNode::GetMembersCount()
const
169 return fMembersCount;
175 Float_t TStructNode::GetMiddle()
const
177 return (fY + fHeight/2);
183 TStructNode* TStructNode::GetParent()
const
191 void* TStructNode::GetPointer()
const
200 ULong_t TStructNode::GetRelativeMembersCount()
const
203 return fAllMembersCount;
205 return fMembersCount;
212 ULong_t TStructNode::GetRelativeSize()
const
226 ULong_t TStructNode::GetRelativeVolume()
const
228 if (fgScalBy == kMembers) {
230 return GetAllMembersCount();
232 return GetMembersCount();
234 }
else if (fgScalBy == kSize) {
236 return GetTotalSize();
248 Float_t TStructNode::GetRelativeVolumeRatio()
250 return ((Float_t)(GetRelativeVolume())/(fWidth*fHeight));
256 ULong_t TStructNode::GetSize()
const
264 ULong_t TStructNode::GetTotalSize()
const
272 TString TStructNode::GetTypeName()
const
281 ULong_t TStructNode::GetVolume()
const
283 if (fgScalBy == kMembers) {
284 return GetAllMembersCount();
285 }
else if (fgScalBy == kSize) {
286 return GetTotalSize();
296 Float_t TStructNode::GetVolumeRatio()
298 return ((Float_t)(GetVolume())/(fWidth*fHeight));
304 Float_t TStructNode::GetWidth()
const
312 Float_t TStructNode::GetX()
const
320 Float_t TStructNode::GetY()
const
328 Bool_t TStructNode::IsCollapsed()
const
336 Bool_t TStructNode::IsSortable()
const
344 bool TStructNode::IsVisible()
const
352 void TStructNode::SetAllMembersCount(ULong_t number)
354 fAllMembersCount = number;
360 void TStructNode::SetCollapsed(Bool_t collapse)
362 fCollapsed = collapse;
368 void TStructNode::SetHeight(Float_t val)
376 void TStructNode::SetMaxLevel(UInt_t level)
384 void TStructNode::SetMaxObjects(UInt_t max)
392 void TStructNode::SetMembers(TList* list)
400 void TStructNode::SetMembersCount(ULong_t number)
402 fMembersCount = number;
408 void TStructNode::SetNodeType(ENodeType type)
416 void TStructNode::SetPointer(
void* pointer)
424 void TStructNode::SetScaleBy(EScalingType type)
432 void TStructNode::SetSize(ULong_t size)
440 void TStructNode::SetTotalSize(ULong_t size)
448 void TStructNode::SetVisible(
bool visible)
456 void TStructNode::SetWidth(Float_t w)
464 void TStructNode::SetX(Float_t x)
472 void TStructNode::SetY(Float_t y)