TVolume
class description - source file - inheritance tree
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()
TVolume TVolume(const Text_t* name, const Text_t* title, const Text_t* shapename, Option_t* option)
TVolume TVolume(const Text_t* name, const Text_t* title, TShape* shape, Option_t* option)
TVolume TVolume(TNode& node)
TVolume TVolume(const TVolume&)
virtual void ~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 const 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)
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
*-*-*-*-*-*-*-*-*-*-*-* 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)
const 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.3 2003/01/27 20:41:37 brun Exp $
Copyright (c) 1998, FineSoft, All rights reserved. Valery Fine (Faine) *
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.