#include "TVolume.h"

TVolume


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

class TVolume : public TObjectSet, public TAttLine, public TAttFill, public TAtt3D

Inheritance Chart:
TObject
<-
TNamed
<-
TDataSet
<-
TObjectSet
TAttLine
TAttFill
TAtt3D
<-
TVolume

    protected:
virtual void Add(TDataSet* dataset) virtual void Add(TVolumePosition* position) virtual TVolumePosition* Add(TVolume* node, TVolumePosition* nodePosition) virtual Int_t DistancetoNodePrimitive(Int_t px, Int_t py, TVolumePosition* position = 0) virtual void PaintNodePosition(Option_t* option, TVolumePosition* postion = 0) void SetPositionsList(TList* list = 0) public:
TVolume() TVolume(const Text_t* name, const Text_t* title, const Text_t* shapename, Option_t* option) TVolume(const Text_t* name, const Text_t* title, TShape* shape, Option_t* option) TVolume(TNode& node) TVolume(const TVolume&) virtual ~TVolume() virtual TVolumePosition* Add(TVolume* node, Double_t x = 0, Double_t y = 0, Double_t z = 0, TRotMatrix* matrix = 0, UInt_t id = 0, Option_t* option) virtual TVolumePosition* Add(TVolume* node, Double_t x, Double_t y, Double_t z, const Text_t* matrixname, UInt_t id = 0, Option_t* option) virtual void Add(TShape* shape, Bool_t IsMaster = kFALSE) virtual void Browse(TBrowser* b) static TClass* Class() virtual TNode* CreateTNode(const TVolumePosition* position = 0) virtual void DeletePosition(TVolumePosition* position) virtual Int_t DistancetoPrimitive(Int_t px, Int_t py) virtual void Draw(Option_t* depth = "3") virtual void DrawOnly(Option_t* option) virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py) static TRotMatrix* GetIdentity() virtual TList* GetListOfPositions() TList* GetListOfShapes() const virtual void GetLocalRange(Float_t* min, Float_t* max) virtual Text_t* GetObjectInfo(Int_t px, Int_t py) const virtual Option_t* GetOption() const TShape* GetShape() const virtual TVolume::ENodeSEEN GetVisibility() const virtual ULong_t Hash() const virtual void ImportShapeAttributes() virtual Bool_t Is3D() const virtual TClass* IsA() const virtual Bool_t IsMarked() const static Int_t MapGEANT2StNodeVis(Int_t vis) static Int_t MapStNode2GEANTVis(TVolume::ENodeSEEN vis) virtual TList* Nodes() const virtual void Paint(Option_t* option) virtual void PaintShape(Option_t* option) virtual void SetVisibility(TVolume::ENodeSEEN vis = TVolume::kBothVisible) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Sizeof3D() const virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

Data Members


    protected:
TShape* fShape Pointer to the "master" shape definition TList* fListOfShapes Pointer to the list of the shape definitions TString fOption List of options if any TVolume::ENodeSEEN fVisibility Visibility flag 00 - everything visible, public:
static const TVolume::ENodeSEEN kBothVisible static const TVolume::ENodeSEEN kSonUnvisible static const TVolume::ENodeSEEN kThisUnvisible static const TVolume::ENodeSEEN kNoneVisible

Class Description

*-*-*-*-*-*-*-*-*-*-*-* T V O L U M E  description *-*-*-*-*-*-*-*-*-*-*-*-*
*-*                     ==========================
*-*
*-*    A TVolume object is used to build the geometry hierarchy.
*-*    Since TVolume is derived from TDataSet class it may contain other volumes.
*-*
*-*    A geometry volume has attributes:
*-*      - name and title
*-*      - pointer to the referenced shape (see TShape).
*-*      - list of TVolumePosition object defining the position of the nested volumes
*-*        with respect to the mother node.
*-*
*-*
*-*    A volume can be drawn.
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

TVolume()
*-*-*-*-*-*-*-*-*-*-*Volume default constructor*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                  ========================

TVolume(const Text_t *name, const Text_t *title, const Text_t *shapename, Option_t *option) :TObjectSet(name),TAttLine(), TAttFill(),fShape(0),fListOfShapes(0)
*-*-*-*-*-*-*-*-*-*-*Volume normal constructor*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                  =========================
*-*
*-*    name    is the name of the node
*-*    title   is title
*-*    shapename is the name of the referenced shape
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

TVolume(const Text_t *name, const Text_t *title, TShape *shape, Option_t *option) :TObjectSet(name),TAttLine(),TAttFill(),fShape(0),fListOfShapes(0)
*-*-*-*-*-*-*-*-*-*-*Volume normal constructor*-*-*-*-*-*-*-*-*-*-*
*-*                  ================================
*-*
*-*    name    is the name of the node
*-*    title   is title
*-*    shape   is the pointer to the shape definition
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-* The color "1" - default produces a very bad 3D image with OpenGL

Int_t MapStNode2GEANTVis(ENodeSEEN vis)
 ENodeSEEN Visibility flag  00 - everything visible,
                            10 - this unvisible, but sons are visible
                            01 - this visible but sons
                            11 - neither this nor its sons are visible
 Maps the value of the visibility flag to 
GEANT 3.21 "volume attributes"

Int_t MapGEANT2StNodeVis(Int_t vis)
 Maps the value of 
GEANT 3.21 "volume attributes"
 to the visibility flag

TVolume(TNode &rootNode):fShape(0),fListOfShapes(0)
 Convert a TNode object into a TVolume

void Add(TShape *shape, Bool_t IsMaster)

TNode* CreateTNode(const TVolumePosition *position)
 Convert a TVolume object into a TNode

~TVolume()
*-*-*-*-*-*-*-*-*-*-*Volume default destructor*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                  ======================

void Add(TVolumePosition *position)

TVolumePosition* Add(TVolume *node, TVolumePosition *nodePosition)

TVolumePosition* Add(TVolume *volume, Double_t x, Double_t y, Double_t z, TRotMatrix *matrix, UInt_t id, Option_t *)
*-*
*-*    volume  the pointer to the volume to be placed
*-*    x,y,z   are the offsets of the volume with respect to his mother
*-*    matrix  is the pointer to the rotation matrix
*-*     id     is a unique position id
*-*

TVolumePosition* Add(TVolume *volume, Double_t x, Double_t y, Double_t z, const Text_t *matrixname, UInt_t id, Option_t *)
*-*
*-*    volume      the pointer to the volume to be placed
*-*    x,y,z       are the offsets of the volume with respect to his mother
*-*    matrixname  is the name of the rotation matrix
*-*     id         is a unique position id
*-*

void Browse(TBrowser *b)

Int_t DistancetoPrimitive(Int_t px, Int_t py)

Int_t DistancetoNodePrimitive(Int_t px, Int_t py,TVolumePosition *pos)
*-*-*-*-*-*-*-*-*Compute distance from point px,py to a TVolumeView*-*-*-*-*-*
*-*                  ===========================================
*-*  Compute the closest distance of approach from point px,py to the position of
*-*  this volume.
*-*  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*-*-*-*
*-*                   =============================================

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

TRotMatrix* GetIdentity()

Text_t* GetObjectInfo(Int_t px, Int_t py) const

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

void Paint(Option_t *opt)
*-*- Draw Referenced node

void PaintNodePosition(Option_t *option,TVolumePosition *pos)
*-*-*-*-*-*-*-*-*-*-*-*Paint Referenced volume 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 PaintShape(Option_t *option)
 Paint shape of the volume
 To be called from the TObject::Paint method only

void DeletePosition(TVolumePosition *position)
 DeletePosition deletes the position of the TVolume *node from this TVolume
 and removes that volume from the list of the nodes of this TVolume

void GetLocalRange(Float_t *min, Float_t *max)
  GetRange

  Calculates the size of 3 box the volume occupies,
  Return:
    two floating point arrays with the bound of box
     surroundind all shapes of this TVolumeView


void SetVisibility(ENodeSEEN vis)
*-*-*-*-*-*-*Set visibility for this volume and its sons*-*-*-*-*--*-*-*-*-*-*
*-*          =========================================
 ENodeSEEN Visibility flag  00 - everything visible,
                            10 - this unvisible, but sons are visible
                            01 - this visible but sons
                            11 - neither this nor its sons are visible
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

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



Inline Functions


                      void SetPositionsList(TList* list = 0)
                      void Add(TShape* shape, Bool_t IsMaster = kFALSE)
                 Option_t* GetOption() const
                   TShape* GetShape() const
                    TList* GetListOfShapes() const
        TVolume::ENodeSEEN GetVisibility() const
                    TList* GetListOfPositions()
                   ULong_t Hash() const
                    Bool_t IsMarked() const
                    Bool_t Is3D() const
                    TList* Nodes() const
                   TClass* Class()
                   TClass* IsA() const
                      void ShowMembers(TMemberInspector& insp, char* parent)
                      void Streamer(TBuffer& b)
                      void StreamerNVirtual(TBuffer& b)
                   TVolume TVolume(const TVolume&)


Author: Valery Fine 10/12/98
Last update: root/star:$Name: $:$Id: TVolume.cxx,v 1.7 2005/05/02 17:53:58 brun Exp $
Copyright (c) 1998, FineSoft, All rights reserved. Valery Fine (Faine) *


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.