WSF
WsfCoverageLatLonGrid.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2020 Infoscitex, a DCS Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFCOVERAGELATLONGRID_HPP
13#define WSFCOVERAGELATLONGRID_HPP
14
15#include "wsf_coverage_export.h"
16
17#include <map>
18#include <vector>
19
21
22namespace wsf
23{
24namespace coverage
25{
26
34class WSF_COVERAGE_EXPORT LatLonGrid : public RectangularGrid
35{
36public:
37 explicit LatLonGrid(const WsfScenario& aScenario)
38 : RectangularGrid(aScenario)
39 {
41 }
42 LatLonGrid(const LatLonGrid& aOther) = default;
43 ~LatLonGrid() override = default;
44
45 // WsfObject overrides
46 LatLonGrid* Clone() const override { return new LatLonGrid{*this}; }
47 bool ProcessInput(UtInput& aInput) override;
48
49 // Query grid setup
51 double GetMinimumLatitudeDeg() const { return mLatMinimumDeg; }
52
54 double GetMaximumLatitudeDeg() const { return mLatMaximumDeg; }
55
57 double GetMinimumLongitudeDeg() const { return mLonMinimumDeg; }
58
60 double GetMaximumLongitudeDeg() const { return mLonMaximumDeg; }
61
63 double GetLatitudeSpacingDeg() const { return mLatSpacingDeg; }
64
66 double GetLongitudeSpacingDeg() const { return mLonSpacingDeg; }
67
68 constexpr static const char* cTYPE{"WSF_LAT_LON_GRID"};
69
70protected:
71 bool InitializeP() override;
72 void SetMinimumLatitudeDeg(double aLat) { mLatMinimumDeg = aLat; }
73 void SetMaximumLatitudeDeg(double aLat) { mLatMaximumDeg = aLat; }
74 void SetMinimumLongitudeDeg(double aLon) { mLonMinimumDeg = aLon; }
75 void SetMaximumLongitudeDeg(double aLon) { mLonMaximumDeg = aLon; }
76 void SetOrigin(double aLat, double aLon);
77 bool IsOriginSet() const { return mOriginSet; }
78 bool RemovePoint(PointId aPointId);
79
80private:
81 double TakeLatitudeStep(double aLatitude, bool aForward) const;
82 double TakeLongitudeStep(double aLongitude, double aLatitude, bool aForward) const;
83 std::vector<double> GetLatitudeLoopValues() const override;
84 std::vector<double> GetLongitudeLoopValues(double aLatitudeDeg) const override;
85
86private:
87 double mLatMinimumDeg{};
88 double mLatMaximumDeg{};
89 double mLatSpacingDeg{-1.0};
90 double mLonMinimumDeg{};
91 double mLonMaximumDeg{};
92 double mLonSpacingDeg{-1.0};
93};
94
95} // namespace coverage
96} // namespace wsf
97
98#endif // WSFCOVERAGELATLONGRID_HPP
void SetType(WsfStringId aType)
Definition WsfObject.cpp:172
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
double GetMaximumLongitudeDeg() const
Return the maximum longitude in the grid in degrees.
Definition WsfCoverageLatLonGrid.hpp:60
bool IsOriginSet() const
Definition WsfCoverageLatLonGrid.hpp:77
double GetLatitudeSpacingDeg() const
Get the spacing in degrees of the latitude lines of the grid.
Definition WsfCoverageLatLonGrid.hpp:63
LatLonGrid(const WsfScenario &aScenario)
Definition WsfCoverageLatLonGrid.hpp:37
void SetMaximumLatitudeDeg(double aLat)
Definition WsfCoverageLatLonGrid.hpp:73
LatLonGrid * Clone() const override
Definition WsfCoverageLatLonGrid.hpp:46
static constexpr const char * cTYPE
Definition WsfCoverageLatLonGrid.hpp:68
double GetLongitudeSpacingDeg() const
Get the spacing in degrees of the longitude lines of the grid.
Definition WsfCoverageLatLonGrid.hpp:66
double GetMaximumLatitudeDeg() const
Return the maximum latitude in the grid in degrees.
Definition WsfCoverageLatLonGrid.hpp:54
double GetMinimumLongitudeDeg() const
Return the minimum longitude in the grid in degrees.
Definition WsfCoverageLatLonGrid.hpp:57
double GetMinimumLatitudeDeg() const
Return the minimum latitude in the grid in degrees.
Definition WsfCoverageLatLonGrid.hpp:51
void SetMinimumLatitudeDeg(double aLat)
Definition WsfCoverageLatLonGrid.hpp:72
void SetMinimumLongitudeDeg(double aLon)
Definition WsfCoverageLatLonGrid.hpp:74
LatLonGrid(const LatLonGrid &aOther)=default
void SetMaximumLongitudeDeg(double aLon)
Definition WsfCoverageLatLonGrid.hpp:75
~LatLonGrid() override=default
bool mOriginSet
Definition WsfCoverageRectangularGrid.hpp:88
RectangularGrid(const WsfScenario &aScenario)
Definition WsfCoverageRectangularGrid.hpp:32
Definition WsfCoverage.cpp:35
std::uint64_t PointId
Definition WsfCoverageGridPoint.hpp:33
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved