Cogs.Core
BeamResampleTask.h
1#pragma once
2#include <glm/glm.hpp>
3#include <vector>
4
5namespace Cogs
6{
7 namespace Core
8 {
9 template<typename Element>
10 struct MappedStream;
11
12 namespace EchoSounder
13 {
14 struct InterpolationSamplePos;
15 struct PingMetaData;
16
18 {
19 int i;
20 float t;
21 };
22
23 void SetupBeamFilterUnivariate(std::vector<InterpolationSamplePos>& samplesOut,
24 const std::vector<float>& angles,
25 const float angularStep,
26 const uint32_t N);
27
28 void SetupBeamFilter(std::vector<InterpolationSamplePos>& iSamplesOut,
29 std::vector<InterpolationSamplePos>& jSamplesOut,
30 const std::vector<glm::vec3>& rayDir,
31 const float angularStep,
32 const float maxAngularUpsample,
33 const uint32_t minorCount,
34 const uint32_t majorCount);
35
37 {
38 glm::vec3* directionOut;
39 const uint32_t coordSys;
40 const float* directionX;
41 const float* directionY;
42 const int beamMajorCount;
43 const int beamMinorCount;
44 const glm::quat arrayOrientationVessel;
45 const int beamBegin;
46 const int beamEnd;
47
48 CalculateBeamDirectionsTask(glm::vec3* directionOut,
49 const uint32_t coordSys,
50 const float* directionX,
51 const float* directionY,
52 const int beamMajorCount,
53 const int beamMinorCount,
54 const glm::quat arrayOrientationVessel,
55 const int beamBegin,
56 const int beamEnd);
57
58 void operator()();
59
60 };
61
63 {
64 float* valuesOut;
65 const int beamMajorCount;
66 const int beamMinorCount;
67 const int modulo;
68 const int sampleCount;
69 const float* valuesIn;
70 const InterpolationSamplePos* minorSamples;
71 const int beamBegin;
72 const int beamEnd;
73
74 InterpolateBeamDataMinorTask(float* valuesOut,
75 const int beamMajorCount,
76 const int beamMinorCount,
77 const int modulo,
78 const int sampleCount,
79 const float* valuesIn,
80 const InterpolationSamplePos* minorSamples,
81 const int beamBegin,
82 const int beamEnd);
83
84 void operator()();
85 };
86
88 {
89 float* valuesOut;
90 const int beamMajorCount;
91 const int beamMinorCount;
92 const int modulo;
93 const int sampleCount;
94 const float* valuesIn;
95 const InterpolationSamplePos* majorSamples;
96 const int beamBegin;
97 const int beamEnd;
98
99 InterpolateBeamDataMajorTask(float* valuesOut,
100 const int beamMajorCount,
101 const int beamMinorCount,
102 const int modulo,
103 const int sampleCount,
104 const float* valuesIn,
105 const InterpolationSamplePos* majorSamples,
106 const int beamBegin,
107 const int beamEnd);
108
109 void operator()();
110
111
112
113 };
114
115 }
116 }
117}
Contains all Cogs related functionality.
Definition: FieldSetter.h:23