19#ifndef BDSARRAYOPERATORINDEX_H
20#define BDSARRAYOPERATORINDEX_H
42 operatesOn{
false,
false,
false,
false}
47 virtual G4String
Name()
const {
return name;}
55 virtual void ApplyX(G4int& )
const {;}
56 virtual void ApplyY(G4int& )
const {;}
57 virtual void ApplyZ(G4int& )
const {;}
58 virtual void ApplyT(G4int& )
const {;}
63 void Apply(G4int& x)
const
66 return Apply(x, v[0], v[1], v[2]);
69 void Apply(G4int& x, G4int& y)
const
72 return Apply(x, y, v[0], v[1]);
75 void Apply(G4int& x, G4int& y, G4int& z)
const
81 virtual void TransformLimits(G4double& xMin, G4double& xMax,
82 G4double& yMin, G4double& yMax,
83 G4double& zMin, G4double& zMax,
84 G4double& tMin, G4double& tMax)
const = 0;
86 void TransformLimits(G4double& xMin, G4double xMax)
const
88 G4double v[6] = {0,0,0,0,0,0};
89 TransformLimits(xMin, xMax, v[0], v[1], v[2], v[3], v[4], v[5]);
91 void TransformLimits(G4double& xMin, G4double& xMax,
92 G4double& yMin, G4double& yMax)
const
94 G4double v[4] = {0,0,0,0};
95 TransformLimits(xMin, xMax, yMin, yMax, v[0], v[1], v[2], v[3]);
97 void TransformLimits(G4double& xMin, G4double& xMax,
98 G4double& yMin, G4double& yMax,
99 G4double& zMin, G4double& zMax)
const
101 G4double v[2] = {0, 0};
102 TransformLimits(xMin, xMax, yMin, yMax, zMin, zMax, v[0], v[1]);
107 std::array<G4bool, 4> operatesOn;
Interface for modifying by reference array indices.
virtual G4String Name() const
Supply a name of this operator for feedback to the user in print out.
virtual void Apply(G4int &, G4int &, G4int &, G4int &) const
virtual std::array< G4bool, 4 > OperatesOnXYZT() const
Return which axes this object operates on overall.