// @(#)root/star:$Name: $:$Id: TVolumeView.cxx,v 1.3 2002/08/20 10:51:50 rdm Exp $
// Author: Valery Fine(fine@bnl.gov) 25/12/98
#include <assert.h>
#include <stdlib.h>
#include "Riostream.h"
#include "TCanvas.h"
#include "TPad.h"
#include "TCL.h"
#include "TBrowser.h"
#include "TVolumeView.h"
#include "TVolumeViewIter.h"
#include "TVolumePosition.h"
#include "TROOT.h"
#include "TView.h"
#include "TPadView3D.h"
#include "TGeometry.h"
#include "TVirtualPad.h"
#include "TObjArray.h"
//////////////////////////////////////////////////////////////////////////
// //
// TVolumeView //
// //
// TVolumeView class is a special kind of TDataSet with one extra //
// pointer to wrap any TObject onto TDataSet object //
// //
// BE CAREFUL !!! //
// One has to use it carefully no control over that extra object //
// is performed. This means: the object m_Obj data-member points to can//
// be destroyed with no this kbject notifying. //
// There is no tool /protection to check whether m_Obj is till alive. //
// It is one's code responsilitiy //
// //
//////////////////////////////////////////////////////////////////////////
ClassImp(TVolumeView)
//_____________________________________________________________________________
TVolumeView::TVolumeView(TVolumeView *viewNode,TVolumePosition *nodePosition)
: TObjectSet(viewNode->GetName(),(TObject *)nodePosition),fListOfShapes(0)
// ,fListOfAttributes(0)
{
//
// This ctor creates a TVolumeView structure from the "marked" nodes
// of the "viewNode" input structure
// It re-calculates all positions according of the new topology
// All new TVolume became UNMARKED though
//
if (!gGeometry) new TGeometry;
if (viewNode)
{
SetTitle(viewNode->GetTitle());