4#include "fhsim_environment/EnvironmentProvider.h"
6#include <marenv/seafloor/BathymetryField.h>
11#ifdef NETCDFCPP_AVAILABLE
12# include "util/NetCDFParser.h"
87 double& distanceOut,
double maxSearchDistance,
double startSearchDistance,
88 double stepSize,
double convergenceTolerance)
override;
90#ifdef NETCDFCPP_AVAILABLE
105 const double* GetDepthMap()
const {
return m_depthMap; }
113 double GetLengthX()
const {
return m_length_x; }
121 double GetLengthY()
const {
return m_length_y; }
130 double GetDepthInternal(
const double pos[2])
const;
132#ifdef NETCDFCPP_AVAILABLE
134 double* m_depthMap =
nullptr;
135 double m_length_x = 0.0;
136 double m_length_y = 0.0;
183 void FinalSetup(
const double T,
const double*
const adX, ISimObjectCreator* creator)
override;
186 void OdeFcn(
const double dT,
const double*
const adX,
double*
const adXDot,
const bool bIsMajorTimeStep)
override;
188#ifdef FH_VISUALIZATION
190 void RenderInit(Ogre::Root* ogreRoot, ISimObjectCreator* creator)
override;
193 void RenderUpdate(
double T,
const double* X)
override;
197 std::string m_filename;
198 std::shared_ptr<NetCdfSeafloorBathymetry> m_bathymetry;
199 environment::EnvironmentProvider* m_pEnvironment =
nullptr;
201#ifdef FH_VISUALIZATION
202 Ogre::SceneNode* m_pSeabedNode =
nullptr;
Definition NetCdfSeafloor.h:24
marenv::Status GetSeabedSigma(const double pos[3], double &sigmaOut) override
marenv::Status GetSeabedTau(const double pos[3], double &tauOut) override
marenv::Status ComputeRayIntersection(const double origin[3], const double direction[3], double &distanceOut, double maxSearchDistance, double startSearchDistance, double stepSize, double convergenceTolerance) override
marenv::Status GetSeabedRho(const double pos[3], double &rhoOut) override
marenv::Status ComputeSurfaceUnitNormal(const double pos[2], double unitNormalOut[3]) override
NetCdfSeafloorBathymetry(const std::string &filename)
marenv::Status GetDepth(const double pos[2], double &depthOut) override
Definition NetCdfSeafloor.h:172
void FinalSetup(const double T, const double *const adX, ISimObjectCreator *creator) override
Register bathymetry with Environment.
void OdeFcn(const double dT, const double *const adX, double *const adXDot, const bool bIsMajorTimeStep) override
ODE function (no-op for static bathymetry).
NetCdfSeafloor(std::string simObjectName, ISimObjectCreator *creator)
Definition BathymetryField.h:24
Status
Definition marenv.h:40
Environment SimObjects.
Definition Environment.h:24
Grid dimensions structure.
Definition NetCDFParser.h:23