123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- #ifndef QT_INPUT_DATA_HPP
- #define QT_INPUT_DATA_HPP
- #include "kernel/input_data.hpp"
- #include "math/spline.hpp"
- class QtInputData:public InputData{
- private:
- size_t findSoilOver(double y,int x,int x_step);
- public:
- static constexpr size_t const nmax_Qt=400;
- static constexpr size_t const np=10;
- static constexpr size_t const np_ov=5;
- double depth;
- size_t nZ_max;
- Point point[3*np+np_ov];
- Spline spline_soil;
- Spline spline_bot;
- Spline spline_sat;
- QtInputData();
- ~QtInputData();
- void initSplines();
- void initPhysics();
- void initGeometry();
- void initInitialState();
- void updateSplineBot();
- void updateSplineSat();
- void updateSplineSoil();
- void updateGeometry();
- void updateInitialState();
- void updateOverland();
- double evalSplineBot(double x) const;
- double evalSplineSat(double x) const;
- double evalSplineSoil(double x) const;
- Tank* addTank();
- void removeTank(Tank* tank);
- Pump* addPump();
- void removePump(Pump* pump);
- Cloud* addCloud();
- void removeCloud(Cloud* cloud);
- void save(fstream& file);
- void load(fstream& file);
- };
- inline void
- QtInputData::updateSplineSoil(){
- spline_soil.compute();
- }
- inline void
- QtInputData::updateSplineBot(){
- spline_bot.compute();
- }
- inline void
- QtInputData::updateSplineSat(){
- spline_sat.compute();
- }
- inline double
- QtInputData::evalSplineBot(double x) const{
- return spline_bot(x);
- }
- inline double
- QtInputData::evalSplineSat(double x) const{
- return spline_sat(x);
- }
- inline double
- QtInputData::evalSplineSoil(double x) const{
- return spline_soil(x);
- }
- inline Tank*
- QtInputData::addTank(){
- return initial_state->addTank();
- }
- inline void
- QtInputData::removeTank(Tank* tank){
- initial_state->removeTank(tank);
- }
- inline Pump*
- QtInputData::addPump(){
- return source.addPump();
- }
- inline void
- QtInputData::removePump(Pump* pump){
- source.removePump(pump);
- }
- inline Cloud*
- QtInputData::addCloud(){
- return source.addCloud();
- }
- inline void
- QtInputData::removeCloud(Cloud* cloud){
- source.removeCloud(cloud);
- }
- #endif
|