WSF
WsfOrbitalTargetingCostTypes.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 2021 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 WSFORBITALTARGETINGCOSTTYPES_HPP
13#define WSFORBITALTARGETINGCOSTTYPES_HPP
14
15#include <functional>
16#include <list>
17#include <memory>
18#include <string>
19
20class UtInput;
21class WsfScenario;
22
23#include "wsf_space_export.h"
24
25namespace wsf
26{
27namespace space
28{
29
31
32class WSF_SPACE_EXPORT OrbitalTargetingCostTypes
33{
34public:
36
38 static OrbitalTargetingCostTypes& Get(WsfScenario& aScenario);
39
41 static const OrbitalTargetingCostTypes& Get(const WsfScenario& aScenario);
42
43 using FactoryFunction = std::function<std::unique_ptr<OrbitalTargetingCost>(const std::string&)>;
44
49 bool LoadInstance(UtInput& aInput, std::unique_ptr<OrbitalTargetingCost>& aOrbitalTargetingCostPtr) const;
50
54 void AddObjectFactory(FactoryFunction aFactoryFunction);
55
59 std::unique_ptr<OrbitalTargetingCost> CreateInstance(const std::string& aTypeName) const;
60
61private:
62 using ObjectFactoryList = std::list<FactoryFunction>;
63
64 ObjectFactoryList mObjectFactoryList;
65};
66
67} // namespace space
68} // namespace wsf
69
70#endif // WSFORBITALTARGETINGCOSTTYPES_HPP
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
OrbitalTargetingCostTypes()
Definition WsfOrbitalTargetingCostTypes.cpp:23
bool LoadInstance(UtInput &aInput, std::unique_ptr< OrbitalTargetingCost > &aOrbitalTargetingCostPtr) const
Definition WsfOrbitalTargetingCostTypes.cpp:47
static OrbitalTargetingCostTypes & Get(WsfScenario &aScenario)
Return a modifiable reference to the orbital targeting cost function type list associated with the gi...
Definition WsfOrbitalTargetingCostTypes.cpp:37
void AddObjectFactory(FactoryFunction aFactoryFunction)
Definition WsfOrbitalTargetingCostTypes.cpp:67
std::function< std::unique_ptr< OrbitalTargetingCost >(const std::string &)> FactoryFunction
Definition WsfOrbitalTargetingCostTypes.hpp:43
std::unique_ptr< OrbitalTargetingCost > CreateInstance(const std::string &aTypeName) const
Definition WsfOrbitalTargetingCostTypes.cpp:72
A cost function to minimize when computing a solution for an orbital targeting operation.
Definition WsfOrbitalTargetingCost.hpp:29
Definition WsfAtmosphere.cpp:23
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved