FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
marenv::current::CurrentField Class Referenceabstract

Defines the interface for an relaying information about ocean currents.

#include <CurrentField.h>

+ Inheritance diagram for marenv::current::CurrentField:
+ Collaboration diagram for marenv::current::CurrentField:

Public Member Functions

virtual ~CurrentField ()=default
 Virtual destructor.
 
virtual Status GetCurrent (double time, const double position[3], double currentVelocity[3])=0
 

Member Function Documentation

◆ GetCurrent()

virtual Status marenv::current::CurrentField::GetCurrent ( double  time,
const double  position[3],
double  currentVelocity[3] 
)
pure virtual

Return the ocean current velocity in a given position and time.

Parameters
[in]timeTime stamp in simulation time.
[in]positionThe position to query for.
[out]currentVelocityThe velocity of the ocean current in the given time and position.
Returns
marenv::Status::OK on success. See marenv::Status for other values.

Threading contract, for every implementation: GetCurrent() may be called from several threads at once (a visualiser sampling in parallel while the simulation waits), so it must not change the field's state; it is non-const for historical reasons only. A field may read state the simulation writes between steps, so it need not be safe against a writer. Registration (EnvironmentFacade::AddCurrentField()) happens during setup.

Implemented in VirtualCurrentField, artificial::VirtualCurrentField, VirtualCurrentFieldInDir, Ship::CycloidalPropellerCurrentField, Ship::PropellerCurrentField, Ship::Propeller4QCurrentField, marenv::current::NullCurrentField, Ship::ThrusterCurrentField, marenv::current::ConstantCurrent, marenv::current::CurrentField3DArray, and marenv::current::DepthVaryingCurrentField.


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