3 #ifndef REVE_GridStepper_H
4 #define REVE_GridStepper_H
14 class GridStepper : public TObject
17 Int_t *ls[3], *ns[3]; //! Internal traversal variables.
19 GridStepper(const GridStepper&); // Not implemented
20 GridStepper& operator=(const GridStepper&); // Not implemented
23 enum StepMode_e { SM_XYZ, SM_YXZ, SM_XZY };
24 StepMode_e Mode; // Stepping mode, order of filling.
26 Int_t nx, ny, nz; // Current positions during filling / traversal.
27 Int_t Nx, Ny, Nz; // Number of slots in eaxh direction.
28 Float_t Dx, Dy, Dz; // Step size in each direction.
29 Float_t Ox, Oy, Oz; // Initial offset for each direction.
31 GridStepper(Int_t sm=SM_XYZ);
32 virtual ~GridStepper() {}
35 void Subtract(GridStepper& s);
36 void SetNs(Int_t nx, Int_t ny, Int_t nz=1)
37 { Nx = nx; Ny = ny; Nz = nz; }
38 void SetDs(Float_t dx, Float_t dy, Float_t dz=0)
39 { Dx = dx; Dy = dy; Dz = dz; }
40 void SetOs(Float_t ox, Float_t oy, Float_t oz=0)
41 { Ox = ox; Oy = oy; Oz = oz; }
45 void GetPosition(Float_t* p);
47 void SetTrans(ZTrans* mx);
48 void SetTransAdvance(ZTrans* mx);
50 ClassDef(GridStepper, 1);
51 }; // end class GridStepper