TVolumeView.h

Go to the documentation of this file.
00001 // @(#)root/table:$Id: TVolumeView.h 27157 2009-01-15 14:05:12Z brun $
00002 // Author: Valery Fine(fine@bnl.gov)   25/12/98
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 #ifndef ROOT_TVolumeView
00012 #define ROOT_TVolumeView
00013 
00014 #include <assert.h>
00015 
00016 #include "TVolume.h"
00017 
00018 //////////////////////////////////////////////////////////////////////////
00019 //                                                                      //
00020 // TVolumeView                                                          //
00021 //                                                                      //
00022 //////////////////////////////////////////////////////////////////////////
00023 
00024 // typedef TVolumeView TNodeView;
00025 
00026 class TVolumeView : public TObjectSet, public TAtt3D  {
00027 protected:
00028    TList          *fListOfShapes;     //Pointer to the list of the "extra" shape definitions
00029 
00030    virtual void    PaintShape(Option_t *option);
00031    TVolumeView(TVolumeView &viewNode);
00032 
00033 
00034 public:
00035    TVolumeView():TObjectSet(),fListOfShapes(0) {;}
00036    TVolumeView(TVolumeView *viewNode,TVolumePosition *nodePosition=0);
00037    TVolumeView(TVolumeView *viewNode,const Char_t *NodeName1,const Char_t *NodeName2=0);
00038    TVolumeView(TVolumeView *viewNode,TVolumeView *topNode);
00039    TVolumeView(TVolumeView *viewNode,const TVolumeView *node1,const TVolumeView *node2);
00040    TVolumeView(TVolume &pattern,Int_t maxDepLevel=0,const TVolumePosition *nodePosition=0,EDataSetPass iopt=kMarked,TVolumeView *root=0);
00041    TVolumeView(Double_t *translate, Double_t *rotate, UInt_t positionId, TVolume *thisNode,
00042                const Char_t *thisNodePath, const Char_t *matrixName=0, Int_t matrixType=0);
00043    TVolumeView(TVolume *thisNode,TVolumePosition *nodePosition);
00044    virtual ~TVolumeView();
00045    virtual TVolume *AddNode(TVolume *node);
00046    virtual void     Add(TDataSet *dataset);
00047    virtual void     Add(TVolumeView *node);
00048    virtual void     Add(TShape *shape, Bool_t IsMaster=kFALSE);
00049    virtual void     Browse(TBrowser *b);
00050    virtual void     Draw(Option_t *depth="3"); // *MENU*
00051    virtual Int_t    DistancetoPrimitive(Int_t px, Int_t py);
00052    virtual TVolumePosition *GetPosition() const { return (TVolumePosition *)GetObject();}
00053    virtual TVolume *GetNode() const ;
00054    virtual Int_t    GetGlobalRange(const TVolumeView *rootNode,Float_t *min, Float_t *max);
00055    virtual TList   *GetListOfShapes() const;
00056    virtual void     GetLocalRange(Float_t *min, Float_t *max);
00057    virtual char  *GetObjectInfo(Int_t px, Int_t py) const;
00058    virtual TShape  *GetShape()  const;
00059    virtual Int_t    GetVisibility() const;
00060    virtual Bool_t   IsMarked() const;
00061    virtual Bool_t   Is3D() const {return kTRUE;}
00062    virtual TVolumePosition  *Local2Master(const TVolumeView *localNode,const TVolumeView *masterNode=0);
00063    virtual TVolumePosition  *Local2Master(const Char_t *localName, const Char_t *masterName=0);
00064    virtual Float_t *Local2Master(const Float_t *local, Float_t *master,
00065                                  const Char_t *localName, const Char_t *masterName=0, Int_t nVector=1);
00066    virtual Float_t   *Local2Master(const Float_t *local, Float_t *master,
00067                                    const TVolumeView *localNode,
00068                                    const TVolumeView *masterNode=0, Int_t nVector=1);
00069    virtual TList   *Nodes(){ return GetList();}
00070    virtual void     Paint(Option_t *option="");
00071    virtual TString  PathP() const;
00072    virtual void     SetLineAttributes(); // *MENU*
00073    virtual void     SavePrimitive(ostream &out, Option_t *option="");
00074    virtual void     SetVisibility(Int_t vis=1); // *MENU*
00075    virtual void     Sizeof3D() const;
00076    ClassDef(TVolumeView,1)  // Special kind of TDataSet
00077 };
00078 
00079 inline void    TVolumeView::Add(TDataSet * /*dataset*/){ assert(0);}
00080 inline void    TVolumeView::Add(TVolumeView *node){ TDataSet::Add(node);}
00081 inline Bool_t  TVolumeView::IsMarked() const { return TestBit(kMark); }
00082 inline TList  *TVolumeView::GetListOfShapes() const {return fListOfShapes;}
00083 inline TShape *TVolumeView::GetShape()  const
00084        {return fListOfShapes ? (TShape *)fListOfShapes->First():0;}
00085 inline Int_t   TVolumeView::GetVisibility() const {return GetNode() ? GetNode()->GetVisibility():0;}
00086 
00087 #endif
00088 

Generated on Tue Jul 5 14:28:30 2011 for ROOT_528-00b_version by  doxygen 1.5.1