WSF
WsfOrbitalConjunctionProcessor.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 2017 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 WSFORBITALCONJUNCTIONPROCESSOR_HPP
13#define WSFORBITALCONJUNCTIONPROCESSOR_HPP
14
15#include <memory>
16#include <vector>
17
18class UtInput;
19class UtOrbitalPropagatorBase;
20class WsfLocalTrack;
21class WsfMessage;
23class WsfScenario;
24#include "WsfStringId.hpp"
26
29{
30public:
31 explicit WsfOrbitalConjunctionProcessor(const WsfScenario& aScenario);
32 WsfOrbitalConjunctionProcessor(const WsfScenario& aScenario, const std::string& aPartClass, const std::string& aPartName);
33 ~WsfOrbitalConjunctionProcessor() override = default;
34
36
37 const char* GetScriptClassName() const override { return "WsfOrbitalConjunctionProcessor"; }
38 WsfProcessor* Clone() const override;
39 bool ProcessInput(UtInput& aInput) override;
40 bool Initialize(double aSimTime) override;
41 void Update(double aSimTime) override;
42
43protected:
45
46private:
47 void CategorizeLocalTracks(std::vector<WsfLocalTrack*>& aPrimaries, std::vector<WsfLocalTrack*>& aSecondaries);
48 void RunPairs(std::vector<WsfLocalTrack*>::const_iterator aPrimary,
49 std::vector<WsfLocalTrack*>::const_iterator aBegin,
50 std::vector<WsfLocalTrack*>::const_iterator aEnd,
51 std::vector<WsfOrbitalConjunctionRecord>& aRecords);
52 void RunPrimaryPrimary(const std::vector<WsfLocalTrack*>& aPrimaries,
53 std::vector<WsfOrbitalConjunctionRecord>& aRecords);
54 void RunPrimarySecondary(const std::vector<WsfLocalTrack*>& aPrimaries,
55 const std::vector<WsfLocalTrack*>& aSecondaries,
56 std::vector<WsfOrbitalConjunctionRecord>& aRecords);
57 void SortRecords(std::vector<WsfOrbitalConjunctionRecord>& aRecords);
58
60 double mSearchInterval;
61 std::unique_ptr<UtOrbitalPropagatorBase> mPropPtr;
62 bool mDebug;
63 std::set<WsfStringId> mPrimaries;
64 UtScript* mOnConjunctionPredictedPtr;
65};
66
67
68#endif // WSFORBITALCONJUNCTIONPROCESSOR_HPP
Definition WsfLocalTrack.hpp:32
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
A processor that will examine tracks and search for possible conjunctions between spacecraft.
Definition WsfOrbitalConjunctionProcessor.hpp:29
void Update(double aSimTime) override
Perform the conjunction assessment at periodic intervals.
Definition WsfOrbitalConjunctionProcessor.cpp:179
bool Initialize(double aSimTime) override
First round initialization of this object.
Definition WsfOrbitalConjunctionProcessor.cpp:157
WsfProcessor * Clone() const override
Clone this object.
Definition WsfOrbitalConjunctionProcessor.cpp:67
WsfOrbitalConjunctionProcessor(const WsfScenario &aScenario)
Definition WsfOrbitalConjunctionProcessor.cpp:26
WsfOrbitalConjunctionProcessor & operator=(const WsfOrbitalConjunctionProcessor &aOther)=delete
const char * GetScriptClassName() const override
Definition WsfOrbitalConjunctionProcessor.hpp:37
~WsfOrbitalConjunctionProcessor() override=default
bool ProcessInput(UtInput &aInput) override
Definition WsfOrbitalConjunctionProcessor.cpp:79
Definition WsfProcessor.hpp:39
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
WsfScriptProcessor(const WsfScenario &aScenario)
Definition WsfScriptProcessor.cpp:30
Specifies the options to use when performing the analysis.
Definition WsfOrbitalConjunctionAssessment.hpp:42
Copyrights Multiple, All Rights Reserved