FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
NetCdfSeafloorBathymetry.h
1#pragma once
2
3#include "util/NetCDFParser.h"
4
5#include <marenv/seafloor/BathymetryField.h>
6#include <string>
7
8namespace environmentmodels
9{
10
19{
20public:
25 explicit NetCdfSeafloorBathymetry(const std::string& filename);
27
36 [[nodiscard]] marenv::Status GetDepth(const double pos[2], double& depthOut) override;
37
44 [[nodiscard]] marenv::Status ComputeSurfaceUnitNormal(const double pos[2], double unitNormalOut[3]) override;
45
52 [[nodiscard]] marenv::Status GetSoilState(const double pos[3], marenv::seafloor::SoilState& soilOut) override;
53
58 const netcdf_sinmod::Grid& GetGrid() const { return m_grid; }
59
64 const double* GetDepthMap() const { return m_depthMap; }
65
70 double GetLengthX() const { return m_length_x; }
71
76 double GetLengthY() const { return m_length_y; }
77
78private:
84 double GetDepthInternal(const double pos[2]) const;
85
86 netcdf_sinmod::Grid m_grid {};
87 double* m_depthMap = nullptr;
88 double m_length_x = 0.0;
89 double m_length_y = 0.0;
90};
91
92} // namespace environmentmodels
Definition NetCdfSeafloorBathymetry.h:19
marenv::Status GetSoilState(const double pos[3], marenv::seafloor::SoilState &soilOut) override
const netcdf_sinmod::Grid & GetGrid() const
Definition NetCdfSeafloorBathymetry.h:58
const double * GetDepthMap() const
Definition NetCdfSeafloorBathymetry.h:64
marenv::Status ComputeSurfaceUnitNormal(const double pos[2], double unitNormalOut[3]) override
NetCdfSeafloorBathymetry(const std::string &filename)
double GetLengthX() const
Definition NetCdfSeafloorBathymetry.h:70
marenv::Status GetDepth(const double pos[2], double &depthOut) override
double GetLengthY() const
Definition NetCdfSeafloorBathymetry.h:76
Definition BathymetryField.h:25
Status
Definition marenv.h:40
Environment SimObjects.
Definition Environment.h:25
Definition SoilState.h:14
Grid dimensions structure.
Definition NetCDFParser.h:23