// @(#)root/star:$Name: $:$Id: TVolumeViewIter.h,v 1.2 2003/01/27 20:41:36 brun Exp $
// Author: Valery Fine(fine@bnl.gov) 25/01/99
/*************************************************************************
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TVolumeViewIter
#define ROOT_TVolumeViewIter
#include "TDataSetIter.h"
#include "TVolumePosition.h"
class TObjArray;
class TVolumeView;
class TVolumeViewIter : public TDataSetIter {
private:
protected:
friend class TVolumeView;
TObjArray *fPositions; // the array of the Node position in the absolute system
virtual const TVolumePosition *GetPosition(Int_t level=0) const;
virtual TVolumePosition *SetPositionAt(TVolume *node,Double_t x=0, Double_t y=0, Double_t z=0, TRotMatrix *matrix=0);
virtual TVolumePosition *SetPositionAt(TVolumePosition &curPosition);
public:
TVolumeViewIter(TVolumeView *view, Int_t depth=1, Bool_t dir=kIterForward);
~TVolumeViewIter();
virtual Bool_t Notify();
virtual void Notify(TDataSet *set);
virtual void Reset(TDataSet *l=0,Int_t depth=0);
virtual TDataSet *operator[](const Char_t *path);
TVolumePosition *operator[](Int_t level);
TVolumePosition *UpdateTempMatrix(TVolumePosition *curPosition);
void ResetPosition(Int_t level=0, TVolumePosition *newPosition=0);
ClassDef(TVolumeViewIter,0) // Volume view iterator
};
inline Bool_t TVolumeViewIter::Notify() { return TDataSetIter::Notify();}
inline TDataSet *TVolumeViewIter::operator[](const Char_t *path)
{return TDataSetIter::operator[](path); }
#endif
syntax highlighted by Code2HTML, v. 0.9.1