library: libTable
#include "TVolumeView.h"

TVolumeView


class description - source file - inheritance tree (.ps)

class TVolumeView : public TObjectSet, public TAtt3D

Inheritance Chart:
TObject
<-
TNamed
<-
TDataSet
<-
TObjectSet
TAtt3D
<-
TVolumeView

    protected:
TVolumeView(TVolumeView& viewNode) virtual void PaintShape(Option_t* option) public:
TVolumeView() TVolumeView(TVolumeView* viewNode, TVolumePosition* nodePosition = 0) TVolumeView(TVolumeView* viewNode, const Char_t* NodeName1, const Char_t* NodeName2 = "0") TVolumeView(TVolumeView* viewNode, TVolumeView* topNode) TVolumeView(TVolumeView* viewNode, const TVolumeView* node1, const TVolumeView* node2) TVolumeView(TVolume& pattern, Int_t maxDepLevel = 0, const TVolumePosition* nodePosition = 0, TDataSet::EDataSetPass iopt = kMarked, TVolumeView* root = 0) TVolumeView(Double_t* translate, Double_t* rotate, UInt_t positionId, TVolume* thisNode, const Char_t* thisNodePath, const Char_t* matrixName = "0", Int_t matrixType = 0) TVolumeView(TVolume* thisNode, TVolumePosition* nodePosition) virtual ~TVolumeView() virtual void Add(TDataSet* dataset) 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)

Data Members


    protected:
TList* fListOfShapes Pointer to the list of the "extra" shape definitions

Class Description

                                                                      
 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                                     
                                                                      


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()) ,TAtt3D() ,fListOfShapes(viewNode.GetListOfShapes())

TVolumeView(Double_t *translate, Double_t *rotate, UInt_t positionId, TVolume *topNode, const Char_t *thisNodePath, const Char_t *matrixName, 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(TVolumeView* node)
                    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.7 2004/05/12 19:11:45 brun Exp $


ROOT page - Class index - Class Hierarchy - 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.