Cogs.Core
SwathIsoComponent.h
1#pragma once
2
3#include "Resources/Resources.h"
4
5#include "Foundation/ComponentModel/Component.h"
6
7#include <glm/vec2.hpp>
8
9#include <vector>
10
11namespace Cogs::Core::EchoSounder
12{
14 {
15 enum struct TextureDomain : int32_t
16 {
17 Zero,
18 One,
19 PositionX,
20 PositionY,
21 VerticalDepth,
22 BeamDistance,
23 Value,
24 LayerNormalized,
25 Age,
26 Size
27 };
28
29 std::vector<float> thresholds;
30 float capSeparation = 1e-3f;
31 bool flipOrientation = false;
32 bool innerLayerOpaque = true;
33 float layerDepthBiasStep = 1.f;
34 float seabedClipOffset = 2.5f; // Meters above seabed to clip, set to -infinity to disable clipping.
35 float overflowThreshold = std::numeric_limits<float>::quiet_NaN();
36 float minVerticalDepth = std::numeric_limits<float>::quiet_NaN();
37 float maxVerticalDepth = std::numeric_limits<float>::quiet_NaN();
38
39 TextureDomain uTextureDomain = TextureDomain::LayerNormalized;
40 glm::vec2 uTextureRange = { 0.f, 1.f };
41
42 TextureDomain vTextureDomain = TextureDomain::One;
43 glm::vec2 vTextureRange = { 0.f, 1.f };
44
46
47 static void registerType();
48 };
49}
50
51template<> inline
52Cogs::StringView getName<Cogs::Core::EchoSounder::SwathIsoComponent>() { return "EchoSwathIsoComponent"; }
53
54template<> inline
55Cogs::StringView getName<Cogs::Core::EchoSounder::SwathIsoComponent::TextureDomain>() { return "EchoSwathIsoTexDomain"; }
Base class for Component instances.
Definition: Component.h:143
Provides a weakly referenced view over the contents of a string.
Definition: StringView.h:24
@ Zero
Disable all color writes.