9#include "vapor/ptr_cache.hpp"
18 uint32_t _timestep = std::numeric_limits<uint32_t>::max();
20 int32_t _compLev = -2;
71 glm::vec3 &vel)
const override;
73 float &scalar)
const override;
115 std::vector<double> _timestamps;
119 using cacheType = VAPoR::ptr_cache<GridKey, GridWrapper, 6, true>;
120 mutable cacheType _recentGrids;
121 mutable std::mutex _grid_operation_mutex;
124 bool _params_locked =
false;
125 uint32_t _c_currentTS = 0;
126 int32_t _c_refLev = -2;
127 int32_t _c_compLev = -2;
128 float _c_vel_mult = 0.0f;
137 bool _isReady()
const;
143 const VAPoR::Grid *_getAGrid(uint32_t timestep,
const std::string &varName)
const;
A cache based data reader.
Abstract base class for a 2D or 3D structured or unstructured grid.
bool operator==(const GridKey &) const
void Reset(uint32_t, int32_t, int32_t, std::string, VAPoR::CoordType, VAPoR::CoordType)
const VAPoR::Grid * grid() const
GridWrapper & operator=(const GridWrapper &&)=delete
GridWrapper(const GridWrapper &&)=delete
GridWrapper(const GridWrapper &)=delete
GridWrapper(const VAPoR::Grid *gp, VAPoR::DataMgr *mp)
GridWrapper & operator=(const GridWrapper &)=delete
int CalcDeltaTFromCurrentTimeStep(double &delT) const
virtual auto UnlockParams() -> int override
void AssignDataManager(VAPoR::DataMgr *dmgr)
virtual auto LockParams() -> int override
virtual bool InsideVolumeVelocity(double time, glm::vec3 pos) const override
virtual int GetScalar(double time, glm::vec3 pos, float &scalar) const override
void ReleaseLockedGrids()
virtual bool InsideVolumeScalar(double time, glm::vec3 pos) const override
int GetVelocityIntersection(size_t ts, glm::vec3 &minxyz, glm::vec3 &maxxyz) const
void UpdateParams(const VAPoR::FlowParams *)
int LocateTimestamp(double time, size_t &floor) const
virtual uint32_t GetNumberOfTimesteps() const override
virtual int GetVelocity(double time, glm::vec3 pos, glm::vec3 &vel) const override
std::array< double, 3 > CoordType
Type for specifying floating point coordinates.