Marine systems simulation
Loading...
Searching...
No Matches
EnvironmentSettings.h
1#pragma once
2#include "ISimObjectCreator.h"
3#include "seafloorForces/SeafloorForces.h"
4
5#include <marenv/current/ConstantCurrent.h>
6#include <marenv/seafloor/BathymetryWaves.h>
7#include <marenv/wave/LinearWaveTheory.h>
8#include <marenv/wave/WaveEnergySpectrum.h>
9#include <marenv/wave/WaveField.h>
10#include <string>
11#include <vector>
12namespace visual
13{
23{
32 SkyMaterialSpec(std::string material, std::string texture, SkyType type = BOX)
33 : material(std::move(material))
34 , texture(std::move(texture))
35 {
36 this->type = type;
37 }
39 std::string material = "";
41 std::string texture = "";
44};
45
52{
53public:
61
68
73 EnvironmentSettings(ISimObjectCreator* creator);
74
76 std::shared_ptr<marenv::wave::WaveField> waves;
78 std::shared_ptr<marenv::seafloor::BathymetryWaves> bathymetry;
80 std::shared_ptr<marenv::current::CurrentField> currents;
82 std::shared_ptr<environment::SeafloorForces> seafloorForces;
83
87 std::string OceanMaterial();
91 std::string OceansidesMaterial();
95 std::string SeafloorMaterial();
105 bool visualizeWaves = false;
107 std::vector<int> vertexCounts = {100, 130};
109 double worldRadius = 3000.0;
114
115private:
121 SkyMaterialSpec ReadSkySpec(ISimObjectCreator* creator);
123 std::string m_sky;
125 std::map<std::string, SkyMaterialSpec> m_skyMaterials;
127 SkyMaterialSpec m_skyMaterial;
128};
129} // namespace visual
Definition EnvironmentSettings.h:52
double worldRadius
World rendering radius [m].
Definition EnvironmentSettings.h:109
std::shared_ptr< marenv::wave::WaveField > waves
Wave field for rendering.
Definition EnvironmentSettings.h:76
std::shared_ptr< environment::SeafloorForces > seafloorForces
Seafloor forces.
Definition EnvironmentSettings.h:82
std::string SeafloorMaterial()
VisualQuality
Visual quality levels.
Definition EnvironmentSettings.h:56
@ Fair
Fair rendering (medium quality)
Definition EnvironmentSettings.h:58
@ Nice
Nice rendering (high quality)
Definition EnvironmentSettings.h:59
@ Fast
Fast rendering (low quality)
Definition EnvironmentSettings.h:57
int randomSeed
Random seed.
Definition EnvironmentSettings.h:111
EnvironmentSettings(ISimObjectCreator *creator)
std::shared_ptr< marenv::current::CurrentField > currents
Current field.
Definition EnvironmentSettings.h:80
std::string OceansidesMaterial()
int visualQuality
Visual quality level.
Definition EnvironmentSettings.h:113
std::vector< int > vertexCounts
Vertex counts [u, v].
Definition EnvironmentSettings.h:107
std::shared_ptr< marenv::seafloor::BathymetryWaves > bathymetry
Bathymetry with waves.
Definition EnvironmentSettings.h:78
VisualQuality QualityFromInt(int quality)
SkyMaterialSpec SkySpec()
bool visualizeWaves
Enable wave visualization.
Definition EnvironmentSettings.h:105
Visualization utilities.
Definition EnvironmentSettings.h:13
SkyType
Sky rendering types.
Definition EnvironmentSettings.h:16
@ DOME
Dome sky rendering.
Definition EnvironmentSettings.h:17
@ BOX
Box sky rendering (default)
Definition EnvironmentSettings.h:19
@ PLANE
Plane sky rendering.
Definition EnvironmentSettings.h:18
Sky material specification.
Definition EnvironmentSettings.h:23
std::string material
Material name.
Definition EnvironmentSettings.h:39
std::string texture
Texture name.
Definition EnvironmentSettings.h:41
SkyType type
Sky type.
Definition EnvironmentSettings.h:43
SkyMaterialSpec(std::string material, std::string texture, SkyType type=BOX)
Definition EnvironmentSettings.h:32
SkyMaterialSpec()
Default-constructs an empty sky material spec.
Definition EnvironmentSettings.h:25