19#include "BDSArray2DCoords.hh"
20#include "BDSExtent.hh"
32 G4double xMinIn, G4double xMaxIn,
33 G4double yMinIn, G4double yMaxIn,
43 std::set<BDSDimensionType> allDims = {BDSDimensionType::x,
47 allDims.erase(xDimensionIn);
48 allDims.erase(yDimensionIn);
49 std::array<BDSDimensionType*, 2> vars = {&zDimension, &tDimension};
50 std::vector<BDSDimensionType> unusedDims(allDims.begin(), allDims.end());
51 for (G4int i = 0; i < 2; i++)
52 {*(vars[i]) = unusedDims[i];}
53 BuildDimensionIndex();
56 timeVarying = xDimensionIn == tt || yDimensionIn == tt;
63 G4double& yFrac)
const
68 auto x1 = (G4int)std::floor(xarr);
69 auto y1 = (G4int)std::floor(yarr);
74 for (G4int i = 0; i < 2; i++)
76 for (G4int j = 0; j < 2; j++)
77 {localData[i][j] =
GetConst(x1+i, y1+j);}
85 G4double& yFrac)
const
98 auto x1 = (G4int)std::floor(xarr);
99 auto y1 = (G4int)std::floor(yarr);
104 for (G4int i = 0; i < 4; i++)
106 for (G4int j = 0; j < 4; j++)
107 {localData[i][j] =
GetConst(x1-1+i, y1-1+j);}
129 G4double limitMax = std::numeric_limits<double>::max();
130 G4double limitMin = std::numeric_limits<double>::lowest();
2D array with spatial mapping derived from BDSArray4DCoords.
virtual void ExtractSection4x4(G4double x, G4double y, BDSFieldValue(&localData)[4][4], G4double &xFrac, G4double &yFrac) const
Extract 4x4 points lying around coordinate x.
virtual BDSExtent Extent() const
virtual BDSFieldValue ExtractNearest(G4double x, G4double y=0, G4double z=0, G4double t=0) const
Extract nearest field value from array. z,t ignored but required for overload.
BDSArray2DCoords()=delete
virtual void ExtractSection2x2(G4double x, G4double y, BDSFieldValue(&localData)[2][2], G4double &xFrac, G4double &yFrac) const
Extract 2x2 points lying around coordinate x.
3D array with spatial mapping derived from BDSArray4DCoords.
G4double xMin
Dimension parameter - protected for derived class access.
void ArrayCoordsFromXY(G4double &x, G4double &xArr, G4double &y, G4double &yArr) const
Utility version to forward to individual function.
G4double yMin
Dimension parameter - protected for derived class access.
virtual std::ostream & Print(std::ostream &out) const
virtual G4int NearestY(G4double y) const
Not much point in being both virtual and inline (in our use case) but has to be virtual.
virtual G4int NearestX(G4double x) const
Not much point in being both virtual and inline (in our use case) but has to be virtual.
G4double yMax
Dimension parameter - protected for derived class access.
G4double xMax
Dimension parameter - protected for derived class access.
virtual const BDSFieldValue & GetConst(G4int x, G4int y=0, G4int z=0, G4int t=0) const
Holder for +- extents in 3 dimensions.