Marine systems simulation
Loading...
Searching...
No Matches
environmentmodels::NetCdfSeafloorBathymetry Class Reference

#include <NetCdfSeafloor.h>

+ Inheritance diagram for environmentmodels::NetCdfSeafloorBathymetry:
+ Collaboration diagram for environmentmodels::NetCdfSeafloorBathymetry:

Public Member Functions

 NetCdfSeafloorBathymetry (const std::string &filename)
 
marenv::Status GetDepth (const double pos[2], double &depthOut) override
 
marenv::Status ComputeSurfaceUnitNormal (const double pos[2], double unitNormalOut[3]) override
 
marenv::Status GetSeabedSigma (const double pos[3], double &sigmaOut) override
 
marenv::Status GetSeabedTau (const double pos[3], double &tauOut) override
 
marenv::Status GetSeabedRho (const double pos[3], double &rhoOut) override
 
marenv::Status ComputeRayIntersection (const double origin[3], const double direction[3], double &distanceOut, double maxSearchDistance, double startSearchDistance, double stepSize, double convergenceTolerance) override
 
- Public Member Functions inherited from marenv::seafloor::BathymetryField
virtual ~BathymetryField ()=default
 Virtual destructor.
 

Additional Inherited Members

- Protected Member Functions inherited from marenv::seafloor::BathymetryField
 BathymetryField ()=default
 Constructor is empty.
 

Detailed Description

Bathymetry field backed by NetCDF depth grid.

Loads a 2D bathymetry grid from a NetCDF file and provides depth queries through bilinear interpolation. Areas outside grid bounds return 11034 m.

Constructor & Destructor Documentation

◆ NetCdfSeafloorBathymetry()

environmentmodels::NetCdfSeafloorBathymetry::NetCdfSeafloorBathymetry ( const std::string &  filename)
explicit

Construct bathymetry from NetCDF file.

Parameters
[in]filenamePath to NetCDF bathymetry file.

Member Function Documentation

◆ ComputeRayIntersection()

marenv::Status environmentmodels::NetCdfSeafloorBathymetry::ComputeRayIntersection ( const double  origin[3],
const double  direction[3],
double &  distanceOut,
double  maxSearchDistance,
double  startSearchDistance,
double  stepSize,
double  convergenceTolerance 
)
overridevirtual

Compute ray intersection with seabed.

Parameters
[in]originRay origin [x, y, z].
[in]directionRay direction [dx, dy, dz].
[out]distanceOutDistance to intersection [m].
[in]maxSearchDistanceMaximum search distance [m].
[in]startSearchDistanceStarting search distance [m].
[in]stepSizeRay march step size [m].
[in]convergenceToleranceConvergence tolerance.
Returns
Status code.

Implements marenv::seafloor::BathymetryField.

◆ ComputeSurfaceUnitNormal()

marenv::Status environmentmodels::NetCdfSeafloorBathymetry::ComputeSurfaceUnitNormal ( const double  pos[2],
double  unitNormalOut[3] 
)
overridevirtual

Compute seabed surface unit normal.

Parameters
[in]posPosition [x, y] [m].
[out]unitNormalOutNormal vector [nx, ny, nz].
Returns
Status code.

Implements marenv::seafloor::BathymetryField.

◆ GetDepth()

marenv::Status environmentmodels::NetCdfSeafloorBathymetry::GetDepth ( const double  pos[2],
double &  depthOut 
)
overridevirtual

Get interpolated depth at position.

Parameters
[in]posPosition in NED frame [x, y] [m].
[out]depthOutInterpolated depth [m].
Returns
Status code.
Note
Returns 11034 m (Mariana Trench depth) for positions outside the grid bounds.

Implements marenv::seafloor::BathymetryField.

◆ GetSeabedRho()

marenv::Status environmentmodels::NetCdfSeafloorBathymetry::GetSeabedRho ( const double  pos[3],
double &  rhoOut 
)
overridevirtual

Get seabed rho parameter.

Parameters
[in]posPosition [x, y, z] [m].
[out]rhoOutRho value.
Returns
Status code.

Implements marenv::seafloor::BathymetryField.

◆ GetSeabedSigma()

marenv::Status environmentmodels::NetCdfSeafloorBathymetry::GetSeabedSigma ( const double  pos[3],
double &  sigmaOut 
)
overridevirtual

Get seabed sigma parameter.

Parameters
[in]posPosition [x, y, z] [m].
[out]sigmaOutSigma value.
Returns
Status code.

Implements marenv::seafloor::BathymetryField.

◆ GetSeabedTau()

marenv::Status environmentmodels::NetCdfSeafloorBathymetry::GetSeabedTau ( const double  pos[3],
double &  tauOut 
)
overridevirtual

Get seabed tau parameter.

Parameters
[in]posPosition [x, y, z] [m].
[out]tauOutTau value.
Returns
Status code.

Implements marenv::seafloor::BathymetryField.


The documentation for this class was generated from the following file: