]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/Reve/GridStepper.cxx
Refix triangle/vertex accessors.
[u/mrichter/AliRoot.git] / EVE / Reve / GridStepper.cxx
CommitLineData
10432ba7 1// $Header$
2
3#include "GridStepper.h"
4#include "ZTrans.h"
5
6using namespace Reve;
7
8//______________________________________________________________________
9// GridStepper
10//
11
12ClassImp(GridStepper)
13
f36b73bd 14GridStepper::GridStepper(Int_t sm) :
15 Mode(StepMode_e(sm)),
16 nx(0), ny(0), nz(0), Nx(0), Ny(0), Nz(0),
17 Dx(0), Dy(0), Dz(0), Ox(0), Oy(0), Oz(0)
10432ba7 18{
19 switch(Mode) {
20 default:
21 case SM_XYZ:
22 ls[0] = &Nx; ls[1] = &Ny; ls[2] = &Nz;
23 ns[0] = &nx; ns[1] = &ny; ns[2] = &nz;
24 break;
25 case SM_YXZ:
26 ls[0] = &Ny; ls[1] = &Nx; ls[2] = &Nz;
27 ns[0] = &ny; ns[1] = &nx; ns[2] = &nz;
28 break;
29 case SM_XZY:
30 ls[0] = &Nx; ls[1] = &Nz; ls[2] = &Ny;
31 ns[0] = &nx; ns[1] = &nz; ns[2] = &ny;
32 break;
33 }
34
35 nx = ny = nz = 0;
36 Nx = Ny = Nz = 16;
37 Dx = Dy = Dz = 1;
38 Ox = Oy = Oz = 0;
39}
40
41void GridStepper::Reset()
42{
43 nx = ny = nz = 0;
44}
45
46void GridStepper::Subtract(GridStepper& s)
47{
48 Ox = -(s.Ox + s.nx*s.Dx);
49 Oy = -(s.Oy + s.ny*s.Dy);
50 Oz = -(s.Oz + s.nz*s.Dz);
51}
52/**************************************************************************/
53
54bool GridStepper::Step()
55{
56 (*ns[0])++;
57 if(*ns[0] >= *ls[0]) {
58 *ns[0] = 0; (*ns[1])++;
59 if(*ns[1] >= *ls[1]) {
60 *ns[1] = 0; (*ns[2])++;
61 if(*ns[2] >= *ls[2]) {
62 return false;
63 }
64 }
65 }
66 return true;
67}
68
69/**************************************************************************/
70
71void GridStepper::GetPosition(Float_t* p)
72{
73 p[0] = Ox + nx*Dx; p[1] = Oy + ny*Dy; p[2] = Oz + nz*Dz;
74}
75
76void GridStepper::SetTrans(ZTrans* mx)
77{
78 mx->SetPos(Ox + nx*Dx, Oy + ny*Dy, Oz + nz*Dz);
79}
80
81void GridStepper::SetTransAdvance(ZTrans* mx)
82{
83 SetTrans(mx);
84 Step();
85}