WSF
WsfNoiseCloud.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 2003-2015 The Boeing 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 WSFNOISECLOUD_HPP
13#define WSFNOISECLOUD_HPP
14
15#include "wsf_export.h"
16
17#include <map>
18
19#include "UtInput.hpp"
20#include "UtNoise.hpp"
21#include "UtVec3.hpp"
22#include "WsfObject.hpp"
23#include "WsfObjectTypeList.hpp"
24class WsfSimulation;
25
30{
31public:
32 typedef std::map<WsfStringId, double> ModifierList;
33
36 ~WsfNoiseCloud() override;
37
38 WsfNoiseCloud* Clone() const override;
39
40 bool ProcessInput(UtInput& aInput) override;
41
42 double CheckIntersections(double aSimTime, const double aLLA1[3], const double aLLA2[3]);
43
44 void Initialize(WsfSimulation& aSimulation);
45
47 virtual const ModifierList& GetModifierList() { return mModifierList; }
48
49 static void GetCurrentTypes(std::vector<WsfNoiseCloud*>& aTypeList);
50
51 double GetHeight() const { return mHeight; }
52
53protected:
55 WsfNoiseCloud(const WsfNoiseCloud& aSrc);
56
57private:
58 ut::Random mRandom;
59 UtNoise* mNoiseFunctionPtr;
60
61 int mFrequency;
62 int mOctaves;
63 double mThreshold;
64 double mHeight;
65 double mThickness;
66 double mTileScalar;
67 bool mUseGlobalWind;
68 ModifierList mModifierList;
69 double mLat;
70 double mLon;
71 double mAngularSpeed;
72 UtVec3d mWindAxis;
73};
74
75class WsfNoiseCloudTypes : public WsfObjectTypeList<WsfNoiseCloud>
76{
77public:
79 explicit WsfNoiseCloudTypes(WsfScenario& aScenario);
80 static WSF_EXPORT WsfNoiseCloudTypes& Get(WsfScenario& aScenario);
81 static WSF_EXPORT const WsfNoiseCloudTypes& Get(const WsfScenario& aScenario);
82};
83
84#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
static WSF_EXPORT WsfNoiseCloudTypes & Get(WsfScenario &aScenario)
Return a modifiable reference to the type list associated with the specified scenario.
Definition WsfNoiseCloud.cpp:37
WsfNoiseCloudTypes(WsfScenario &aScenario)
Definition WsfNoiseCloud.cpp:29
WsfObjectTypeList< WsfNoiseCloud > ObjectTypeList
Definition WsfNoiseCloud.hpp:78
Definition WsfNoiseCloud.hpp:30
WsfNoiseCloud()
Constructor.
Definition WsfNoiseCloud.cpp:51
double GetHeight() const
Definition WsfNoiseCloud.hpp:51
virtual const ModifierList & GetModifierList()
Get the modifier list for WsfZoneAttenuation.
Definition WsfNoiseCloud.hpp:47
WsfNoiseCloud & operator=(const WsfNoiseCloud &)=delete
std::map< WsfStringId, double > ModifierList
Definition WsfNoiseCloud.hpp:32
double CheckIntersections(double aSimTime, const double aLLA1[3], const double aLLA2[3])
Definition WsfNoiseCloud.cpp:170
void Initialize(WsfSimulation &aSimulation)
Definition WsfNoiseCloud.cpp:272
static void GetCurrentTypes(std::vector< WsfNoiseCloud * > &aTypeList)
WsfObjectTypeList(WsfScenario &aScenario, unsigned int aFlags, const std::string &aBlockName)
Definition WsfObjectTypeList.hpp:76
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
virtual WsfObject * Clone() const =0
virtual bool ProcessInput(UtInput &aInput)
Definition WsfObject.cpp:140
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Copyrights Multiple, All Rights Reserved