TNode


class description - source file - inheritance tree

class TNode : public TNamed, public TAttLine, public TAttFill, public TAtt3D


    public:
TNode TNode() TNode TNode(const char* name, const char* title, const char* shapename, Double_t x = 0, Double_t y = 0, Double_t z = 0, const char* matrixname, Option_t* option) TNode TNode(const char* name, const char* title, TShape* shape, Double_t x = 0, Double_t y = 0, Double_t z = 0, TRotMatrix* matrix = 0, Option_t* option) TNode TNode(TNode&) virtual void ~TNode() virtual void Browse(TBrowser* b) virtual void BuildListOfNodes() virtual void cd(const char* path = 0) static TClass* Class() virtual Int_t DistancetoPrimitive(Int_t px, Int_t py) virtual void Draw(Option_t* option) virtual void DrawOnly(Option_t* option) virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py) TList* GetListOfNodes() const virtual TRotMatrix* GetMatrix() const virtual TNode* GetNode(const char* name) const virtual char* GetObjectInfo(Int_t px, Int_t py) const const Option_t* GetOption() const virtual TNode* GetParent() const TShape* GetShape() const Int_t GetVisibility() const virtual Double_t GetX() const virtual Double_t GetY() const virtual Double_t GetZ() const virtual void ImportShapeAttributes() virtual TClass* IsA() const virtual Bool_t IsFolder() const virtual void Local2Master(Double_t* local, Double_t* master) virtual void Local2Master(Float_t* local, Float_t* master) virtual void ls(Option_t* option = 2) const virtual void Master2Local(Double_t* master, Double_t* local) virtual void Master2Local(Float_t* master, Float_t* local) virtual void Paint(Option_t* option) virtual void RecursiveRemove(TObject* obj) virtual void SetMatrix(TRotMatrix* matrix = 0) virtual void SetName(const char* name) virtual void SetObject(const char* name, const char* title) virtual void SetParent(TNode* parent) virtual void SetPosition(Double_t x = 0, Double_t y = 0, Double_t z = 0) 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) virtual void UpdateMatrix() virtual void UpdateTempMatrix(Double_t* dx1, Double_t* rmat1, Double_t x, Double_t y, Double_t z, Double_t* matrix, Double_t* dxnew, Double_t* rmatnew)

Data Members

protected:
Double_t fX X offset with respect to parent object Double_t fY Y offset with respect to parent object Double_t fZ Z offset with respect to parent object TRotMatrix* fMatrix Pointer to rotation matrix TShape* fShape Pointer to shape definition TNode* fParent Pointer to parent positioned volume TList* fNodes List of son nodes (if any) TString fOption List of options if any Int_t fVisibility Visibility flag public:
static const enum TObject:: kSonsInvisible


See also

TNodeDiv

Class Description

*-*-*-*-*-*-*-*-*-*-*-* T N O D E  description *-*-*-*-*-*-*-*-*-*-*-*-*
*-*                    =======================
*-*
*-*    A TNode object is used to build the geometry hierarchy (see TGeometry).
*-*    A node may contain other nodes.
*-*
*-*    A geometry node has attributes:
*-*      - name and title
*-*      - pointer to the referenced shape (see TShape).
*-*      - x,y,z offset with respect to the mother node.
*-*      - pointer to the rotation matrix (see TRotMatrix).
*-*
*-*    A node can be drawn.
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

TNode()
*-*-*-*-*-*-*-*-*-*-*Node default constructor*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                  ========================

TNode(const char *name, const char *title, const char *shapename, Double_t x, Double_t y, Double_t z, const char *matrixname, Option_t *option) :TNamed(name,title),TAttLine(), TAttFill()
*-*-*-*-*-*-*-*-*-*-*Node normal constructor*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                  ======================
*-*
*-*    name    is the name of the node
*-*    title   is title
*-*    shapename is the name of the referenced shape
*-*    x,y,z   are the offsets of the volume with respect to his mother
*-*    matrixname  is the name of the rotation matrix
*-*
*-*    This new node is added into the list of sons of the current node
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

TNode(const char *name, const char *title, TShape *shape, Double_t x, Double_t y, Double_t z, TRotMatrix *matrix, Option_t *option) :TNamed(name,title),TAttLine(),TAttFill()
*-*-*-*-*-*-*-*-*-*-*Node normal constructor*-*-*-*-*-*-*-*-*-*-*
*-*                  ================================
*-*
*-*    name    is the name of the node
*-*    title   is title
*-*    shape   is the pointer to the shape definition
*-*    x,y,z   are the offsets of the volume with respect to his mother
*-*    matrix  is the pointer to the rotation matrix
*-*
*-*    This new node is added into the list of sons of the current node
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-* The color "1" - default produces a very bad 3D image with OpenGL

~TNode()
*-*-*-*-*-*-*-*-*-*-*Node default destructor*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                  ======================

void Browse(TBrowser *b)

void BuildListOfNodes()
*-*-*-*-*-*Create the list to support sons of this node*-*-*-*-*-*-*-*-*-*-*
*-*        ============================================

void cd(const char *)
*-*-*-*-*-*Change Current Reference node to this*-*-*-*-*-*-*-*-*-*-*-*-*
*-*        =====================================

Int_t DistancetoPrimitive(Int_t px, Int_t py)
*-*-*-*-*-*-*-*-*-*-*Compute distance from point px,py to a Node*-*-*-*-*-*
*-*                  ===========================================
*-*  Compute the closest distance of approach from point px,py to this node.
*-*  The distance is computed in pixels units.
*-*
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void Draw(Option_t *option)
*-*-*-*-*-*-*-*-*-*-*-*Draw Referenced node with current parameters*-*-*-*
*-*                   =============================================

void DrawOnly(Option_t *option)
*-*-*-*-*-*-*-*-*-*Draw only Sons of this node*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                ===========================

void ExecuteEvent(Int_t, Int_t, Int_t)
*-*-*-*-*-*-*-*-*-*-*Execute action corresponding to one event*-*-*-*
*-*                  =========================================
*-*  This member function must be implemented to realize the action
*-*  corresponding to the mouse click on the object in the window
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

TNode* GetNode(const char *name) const
*-*-*-*-*-*-*Return pointer to node with name in the node tree*-*-*-*-*
*-*          =================================================

char* GetObjectInfo(Int_t, Int_t) const

void ImportShapeAttributes()
*-*-*-*-*-*-*Copy shape attributes as node attributes*-*-*-*-*--*-*-*-*-*-*
*-*          ========================================

Bool_t IsFolder() const
*-*-*-*-*Return TRUE if node contains nodes, FALSE otherwise*-*
*-*      ======================================================

void Local2Master(Double_t *local, Double_t *master)
*-*-*-*-*Convert one point from local system to master reference system*-*-*
*-*      ==============================================================

  Note that before invoking this function, the global rotation matrix
  and translation vector for this node must have been computed.
  This is automatically done by the Paint functions.
  Otherwise TNode::UpdateMatrix should be called before.

void Local2Master(Float_t *local, Float_t *master)
*-*-*-*-*Convert one point from local system to master reference system*-*-*
*-*      ==============================================================

  Note that before invoking this function, the global rotation matrix
  and translation vector for this node must have been computed.
  This is automatically done by the Paint functions.
  Otherwise TNode::UpdateMatrix should be called before.

void ls(Option_t *option) const
*-*-*-*-*-*-*-*-*-*-*-*List Referenced object with current parameters*-*-*-*
*-*                   ===============================================

void Master2Local(Double_t *master, Double_t *local)
*-*-*-*-*Convert one point from master system to local reference system*-*-*
*-*      ==============================================================

  Note that before invoking this function, the global rotation matrix
  and translation vector for this node must have been computed.
  This is automatically done by the Paint functions.
  Otherwise TNode::UpdateMatrix should be called before.

void Master2Local(Float_t *master, Float_t *local)
*-*-*-*-*Convert one point from master system to local reference system*-*-*
*-*      ==============================================================

  Note that before invoking this function, the global rotation matrix
  and translation vector for this node must have been computed.
  This is automatically done by the Paint functions.
  Otherwise TNode::UpdateMatrix should be called before.

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
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void RecursiveRemove(TObject *obj)
*-*-*-*-*Recursively remove object from the list of nodes of this node*-*-*-*
*-*      =============================================================

void SetName(const char *name)
 Change the name of this Node


void SetObject(const char *name, const char *title)
 Change the name and title of this Node


void SetVisibility(Int_t vis)
*-*-*-*-*-*-*Set visibility for this node and its sons*-*-*-*-*--*-*-*-*-*-*
*-*          =========================================
*-*  vis = 3  node is drawn and its sons are drawn
*-*  vis = 2  node is not drawn but its sons are drawn
*-*  vis = 1  (default) node is drawn
*-*  vis = 0  node is not drawn
*-*  vis = -1 node is not drawn. Its sons are not drawn
*-*  vis = -2 node is drawn. Its sons are not drawn
*-*  vis = -3 Only node leaves are drawn
*-*  vis = -4 Node is not drawn. Its immediate sons are drawn
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void Sizeof3D() const
*-*-*-*-*-*-*Return total size of this 3-D Node with its attributes*-*-*
*-*          ==========================================================

void Streamer(TBuffer &b)
*-*-*-*-*-*-*-*-*Stream a class object*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*              =========================================

void UpdateMatrix()
    Update global rotation matrix/translation vector for this node
   this function must be called before invoking Local2Master

void UpdateTempMatrix(Double_t *dx,Double_t *rmat , Double_t x, Double_t y, Double_t z, Double_t *matrix , Double_t *dxnew, Double_t *rmatnew)
*-*-*-*-*-*-*Compute new translation vector and global matrix*-*-*-*-*-*-*-*
*-*          ================================================
*-*
*-*  dx      old translation vector
*-*  rmat    old global matrix
*-*  x,y,z   offset of new local system with respect to mother
*-*  dxnew   new translation vector
*-*  rmatnew new global rotation matrix
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-



Inline Functions


                 TList* GetListOfNodes() const
            TRotMatrix* GetMatrix() const
        const Option_t* GetOption() const
                 TNode* GetParent() const
                TShape* GetShape() const
                  Int_t GetVisibility() const
               Double_t GetX() const
               Double_t GetY() const
               Double_t GetZ() const
                   void SetMatrix(TRotMatrix* matrix = 0)
                   void SetParent(TNode* parent)
                   void SetPosition(Double_t x = 0, Double_t y = 0, Double_t z = 0)
                TClass* Class()
                TClass* IsA() const
                   void ShowMembers(TMemberInspector& insp, char* parent)
                   void StreamerNVirtual(TBuffer& b)
                  TNode TNode(TNode&)


Author: Rene Brun 14/09/95
Last update: root/g3d:$Name: $:$Id: TNode.cxx,v 1.5 2000/12/13 15:13:48 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *


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.