|
Marine systems simulation
|
#include <BathymetryWaves.h>
Inheritance diagram for marenv::seafloor::BathymetryWaves:
Collaboration diagram for marenv::seafloor::BathymetryWaves:Public Member Functions | |
| BathymetryWaves (double averageDepth, int numComponents, double sumAmplitudes, double minWavelength, double maxWavelength, uint32_t seed) | |
| ~BathymetryWaves () override=default | |
| Default destructor. | |
| Status | GetDepth (const double pos[2], double &depthOut) override |
| Status | ComputeSurfaceUnitNormal (const double pos[2], double unitNormalOut[3]) override |
| std::shared_ptr< BathymetryWavesSpec > | GetSpec () |
| Status | GetSeabedSigma (const double pos[3], double &sigmaOut) override |
| Status | GetSeabedTau (const double pos[3], double &tauOut) override |
| Status | GetSeabedRho (const double pos[3], double &rhoOut) override |
| Status | ComputeRayIntersection (const double origin[3], const double direction[3], double &distanceOut, double maxSearchDistance=100, double startSearchDistance=-1, double stepSize=1.0, double convergenceTolerance=0.01) 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. | |
Bathymetry wave components representing a seafloor.
This class implements the BathymetryField using a set of bathymetry waves to model seafloor variations. It provides methods to query depth, surface normals, and seabed material properties at given positions.
Example usage:
| marenv::seafloor::BathymetryWaves::BathymetryWaves | ( | double | averageDepth, |
| int | numComponents, | ||
| double | sumAmplitudes, | ||
| double | minWavelength, | ||
| double | maxWavelength, | ||
| uint32_t | seed | ||
| ) |
Constructs a bathymetry wave model.
| [in] | averageDepth | Average water depth [m]. |
| [in] | numComponents | Number of bathymetry wave components. |
| [in] | sumAmplitudes | Total sum of amplitudes across all components [m]. |
| [in] | minWavelength | Minimum wavelength [m]. |
| [in] | maxWavelength | Maximum wavelength [m]. |
| [in] | seed | Random seed for reproducibility. |
|
overridevirtual |
Returns the distance a ray must travel before intercepting the seafloor.
| [in] | origin | Position (x,y,z) of the origin of the ray |
| [in] | direction | The unit direction (x,y,z) of the ray |
| [out] | distanceOut | The distance the beam travelled before reaching the seabed. |
| [in] | maxSearchDistance | The maximum distance from the origin to search for an intersection. |
| [in] | startSearchDistance | The distance from the origin to start searching for an intersection (initial guess). If less then zero, the algorithm will coarsely estimate the crossing assuming a flat seabed and search from there. |
| [in] | stepSize | The search step size. |
| [in] | convergenceTolerance | The vertical error tolerance between a computed point on the ray and a point on the seafloor to consider an intersection found. |
Implements marenv::seafloor::BathymetryField.
|
overridevirtual |
Returns the unit normal vector of the seafloor at a specific position.
| [in] | pos | Position (x,y) for which the unit normal surface vector is desired. |
| [out] | unitNormalOut | The unit normal surface vector at pos. |
Implements marenv::seafloor::BathymetryField.
|
overridevirtual |
Returns the seafloor depth at a specific position.
| [in] | pos | Position (x,y) for which depth is desired. |
| [out] | depthOut | Depth at pos [m]. |
Implements marenv::seafloor::BathymetryField.
|
overridevirtual |
Returns the seabed rho property at a specific position.
| [in] | pos | Position (x,y,z) in meters. |
| [out] | rhoOut | Rho value at pos. |
Typically represents density or resistivity depending on implementation.
Implements marenv::seafloor::BathymetryField.
|
overridevirtual |
Returns the seabed sigma property at a specific position.
| [in] | pos | Position (x,y,z) in meters. |
| [out] | sigmaOut | Sigma value at pos. |
Typically represents stress or material property depending on implementation.
Implements marenv::seafloor::BathymetryField.
|
overridevirtual |
Returns the seabed tau property at a specific position.
| [in] | pos | Position (x,y,z) in meters. |
| [out] | tauOut | Tau value at pos. |
Typically represents shear stress or related property depending on implementation.
Implements marenv::seafloor::BathymetryField.
|
inline |
Retrieves the bathymetry wave specification used by this model.