| library: libTable #include "TVolumeView.h"
 | 
TVolumeView
class description - source file - inheritance tree (.pdf)
    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)
    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 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.12 2005/09/09 04:57:59 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.