Marine systems simulation
Loading...
Searching...
No Matches
BathymetryField.h
1#pragma once
3
4#include <marenv/marenv.h>
5
6#include <cmath>
7
8namespace marenv::seafloor
9{
10
24{
25public:
27
28 virtual ~BathymetryField() = default;
29
37 virtual Status GetDepth(const double pos[2], double& depthOut) = 0;
38
46 virtual Status ComputeSurfaceUnitNormal(const double pos[2], double unitNormalOut[3]) = 0;
47
55 virtual Status GetSeabedSigma(const double pos[3], double& sigmaOut) = 0;
63 virtual Status GetSeabedTau(const double pos[3], double& tauOut) = 0;
71 virtual Status GetSeabedRho(const double pos[3], double& rhoOut) = 0;
72
85 virtual Status ComputeRayIntersection(const double origin[3], const double direction[3], double& distanceOut, double maxSearchDistance, double startSearchDistance, double stepSize, double convergenceTolerance) = 0;
86
87protected:
89
90 BathymetryField() = default;
91};
92} // namespace marenv::seafloor
Definition BathymetryField.h:24
virtual Status GetSeabedSigma(const double pos[3], double &sigmaOut)=0
virtual ~BathymetryField()=default
Virtual destructor.
virtual Status ComputeSurfaceUnitNormal(const double pos[2], double unitNormalOut[3])=0
virtual Status ComputeRayIntersection(const double origin[3], const double direction[3], double &distanceOut, double maxSearchDistance, double startSearchDistance, double stepSize, double convergenceTolerance)=0
virtual Status GetSeabedRho(const double pos[3], double &rhoOut)=0
BathymetryField()=default
Constructor is empty.
virtual Status GetDepth(const double pos[2], double &depthOut)=0
virtual Status GetSeabedTau(const double pos[3], double &tauOut)=0
Status
Definition marenv.h:40
Policy mixin: this type is neither copyable nor movable.
Definition marenv.h:84