TVolumeView
class description - source file - inheritance tree
protected:
TVolumeView TVolumeView(TVolumeView& viewNode)
virtual void PaintShape(Option_t* option)
public:
TVolumeView TVolumeView()
TVolumeView TVolumeView(TVolumeView* viewNode, TVolumePosition* nodePosition = 0)
TVolumeView TVolumeView(TVolumeView* viewNode, const Char_t* NodeName1, const Char_t* NodeName2 = 0)
TVolumeView TVolumeView(TVolumeView* viewNode, TVolumeView* topNode)
TVolumeView TVolumeView(TVolumeView* viewNode, const TVolumeView* node1, const TVolumeView* node2)
TVolumeView TVolumeView(TVolume& pattern, Int_t maxDepLevel = 0, const TVolumePosition* nodePosition = 0, EDataSetPass iopt = kMarked, TVolumeView* root = 0)
TVolumeView TVolumeView(Double_t* translate, Double_t* rotate, UInt_t positionId, TVolume* thisNode, const Char_t* thisNodePath, const Char_t* matrixName = 0, const Int_t matrixType = 0)
TVolumeView TVolumeView(TVolume* thisNode, TVolumePosition* nodePosition)
virtual void ~TVolumeView()
virtual void Add(TVolumeView* node)
virtual void Add(TShape* shape, Bool_t IsMaster = kFALSE)
virtual TVolume* AddNode(TVolume* node)
virtual void Browse(TBrowser* b)
static TClass* Class()
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
virtual void Draw(Option_t* depth = 3)
virtual Int_t GetGlobalRange(const TVolumeView* rootNode, Float_t* min, Float_t* max)
virtual TList* GetListOfShapes() const
virtual void GetLocalRange(Float_t* min, Float_t* max)
virtual TVolume* GetNode() const
virtual Text_t* GetObjectInfo(Int_t px, Int_t py) const
virtual TVolumePosition* GetPosition() const
virtual TShape* GetShape() const
virtual Int_t GetVisibility() const
virtual Bool_t Is3D() const
virtual TClass* IsA() const
virtual Bool_t IsMarked() const
virtual TVolumePosition* Local2Master(const TVolumeView* localNode, const TVolumeView* masterNode = 0)
virtual TVolumePosition* Local2Master(const Char_t* localName, const Char_t* masterName = 0)
virtual Float_t* Local2Master(const Float_t* local, Float_t* master, const Char_t* localName, const Char_t* masterName = 0, Int_t nVector = 1)
virtual Float_t* Local2Master(const Float_t* local, Float_t* master, const TVolumeView* localNode, const TVolumeView* masterNode = 0, Int_t nVector = 1)
virtual TList* Nodes()
virtual void Paint(Option_t* option)
virtual TString PathP() const
virtual void SavePrimitive(ofstream& out, Option_t* option)
virtual void SetLineAttributes()
virtual void SetVisibility(Int_t vis = 1)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Sizeof3D() const
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
protected:
TList* fListOfShapes Pointer to the list of the "extra" shape definitions
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 conrol 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
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
TVolumeView(TVolumeView *viewNode,TVolumeView *topNode)
: TObjectSet(viewNode->GetName(),(TObject *)0),fListOfShapes(0)
// ,fListOfAttributes(0)
This ctor creates a TVolumeView structure containing:
- viewNode on the top
- skip ALL node from the original viewNode untill topNode found
- include all "marked" node below "topNode" if any
topNode is always included
It re-calculates all positions according of the new topology
TVolumeView(TVolumeView *viewNode,const Char_t *nodeName1,const Char_t *nodeName2)
: TObjectSet(viewNode->GetName(),(TObject *)0),fListOfShapes(0)
// ,fListOfAttributes(0)
This ctor creates a TVolumeView structure containing:
- viewNode on the top
- skip ALL node from the original viewNode untill topNodeName found
- include all "marked" node below "topNodename" if any
topNodeName is always included
It re-calculates all positions according of the new topology
TVolumeView(TVolumeView *viewNode,const TVolumeView *node1,const TVolumeView *node2)
: TObjectSet(viewNode->GetName(),(TObject *)0),fListOfShapes(0)
// ,fListOfAttributes(0)
This ctor creates a TVolumeView structure containing:
- viewNode on the top
- skip ALL node from the original viewNode untill topNodeName found
- include all "marked" node below "topNodename" if any
topNodeName is always included
It re-calculates all positions according of the new topology
TVolumeView(TVolume &pattern,Int_t maxDepLevel,
const TVolumePosition *nodePosition,EDataSetPass iopt, TVolumeView *rootVolume)
: TObjectSet(pattern.GetName(),(TObject *)nodePosition),fListOfShapes(0)
Creates TVolumeView (view) with a topology similar with TVolume *pattern
Parameters:
-----------
pattern - the pattern dataset
iopt = kStruct - clone only my structural links
kAll - clone all links
kRefs - clone only refs
kMarked - clone marked (not implemented yet) only
All new-created sets become the structural ones anyway.
cout << "ctor for " << GetName() << " - " << GetTitle() << endl;
TVolumeView(TVolumeView &viewNode):
TObjectSet(viewNode.GetName(),(TObject *)viewNode.GetPosition())
,fListOfShapes(viewNode.GetListOfShapes())
TVolumeView(Double_t *translate, Double_t *rotate, UInt_t positionId, TVolume *topNode,
const Char_t *thisNodePath, const Char_t *matrixName, const Int_t matrixType)
// : fListOfAttributes(0)
Special ctor to back TVolumeView::SavePrimitive() method
TVolumeView(TVolume *thisNode,TVolumePosition *nodePosition)
: TObjectSet(thisNode?thisNode->GetName():"",(TObject *)nodePosition),fListOfShapes(0)
~TVolumeView()
default dtor (empty for this class)
TVolume* AddNode(TVolume *node)
Add the TVolume in the Tnode data-structure refered
by this TVolumeView object
Return TVolume * the input TVolume * was attached to
void Add(TShape *shape, Bool_t IsMaster)
void Browse(TBrowser *b)
Int_t DistancetoPrimitive(Int_t px, Int_t py)
*-*-*-*-*-*-*-*-*Compute distance from point px,py to a TVolumeView*-*-*-*-*-*
*-* ===========================================
*-* Compute the closest distance of approach from point px,py to the position of
*-* this node.
*-* The distance is computed in pixels units.
*-*
*-* It is restricted by 2 levels of TVolumes
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
void Draw(Option_t *option)
*-*-*-*-*-*-*-*-*-*-*-*Draw Referenced node with current parameters*-*-*-*
*-* =============================================
TVolume* GetNode() const
Int_t GetGlobalRange(const TVolumeView *rootNode,Float_t *globalMin,Float_t *globalMax)
Calculate the position of the vertrex of the outlined cube in repect
of the given TVolumeView object
void GetLocalRange(Float_t *min, Float_t *max)
GetRange
Calculates the size of 3 box the node occupies.
Return:
two floating point arrays with the bound of box
surroundind all shapes of this TModeView
Text_t* GetObjectInfo(Int_t px, Int_t py) const
TVolumePosition* Local2Master(const Char_t *localName, const Char_t *masterName)
TVolumePosition* Local2Master(const TVolumeView *localNode,const TVolumeView *masterNode)
Float_t* Local2Master(const Float_t *local, Float_t *master,
const Char_t *localName, const Char_t *masterName, Int_t nVector)
calculate transformation master = (M-local->master )*local + (T-local->master )
where
M-local->master - rotation matrix 3 x 3 from the master node to the local node
T-local->master - trasport vector 3 from the master node to the local node
returns a "master" pointer if transformation has been found
otherwise 0;
Float_t* Local2Master(const Float_t *local, Float_t *master,
const TVolumeView *localNode,
const TVolumeView *masterNode, Int_t nVector)
calculate transformation master = (M-local->master )*local + (T-local->master )
where
M-local->master - rotation matrix 3 x 3 from the master node to the local node
T-local->master - trasport vector 3 from the master node to the local node
returns a "master" pointer if transformation has been found
otherwise 0;
void Paint(Option_t *option)
*-*-*-*-*-*-*-*-*-*-*-*Paint Referenced node with current parameters*-*-*-*
*-* ==============================================
*-*
*-* vis = 1 (default) shape is drawn
*-* vis = 0 shape is not drawn but its sons may be not drawn
*-* vis = -1 shape is not drawn. Its sons are not drawn
*-* vis = -2 shape is drawn. Its sons are not drawn
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
It draw the TVolumeView layers from the iFirst one (form the zero) till
iLast one reached.
restrict the levels for "range" option
void PaintShape(Option_t *option)
Paint shape of the node
To be called from the TObject::Paint method only
TString PathP() const
return the full path of this data set
void SavePrimitive(ofstream &out, Option_t *)
void SetLineAttributes()
void SetVisibility(Int_t vis)
void Sizeof3D() const
*-*-*-*-*-*-*Return total size of this 3-D Node with its attributes*-*-*
*-* ==========================================================
Inline Functions
TVolumeView TVolumeView(TVolume* thisNode, TVolumePosition* nodePosition)
void Add(TShape* shape, Bool_t IsMaster = kFALSE)
TVolumePosition* GetPosition() const
TList* GetListOfShapes() const
TShape* GetShape() const
Int_t GetVisibility() const
Bool_t IsMarked() const
Bool_t Is3D() const
TList* Nodes()
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Author: Valery Fine(fine@bnl.gov) 25/12/98
Last update: root/star:$Name: $:$Id: TVolumeView.cxx,v 1.4 2000/12/13 15:13:54 brun Exp $
ROOT page - Class index - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.