WSF
WsfSensorErrorModel.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 2016 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 WSFSENSORERRORMODEL_HPP
13#define WSFSENSORERRORMODEL_HPP
14
15#include "wsf_export.h"
16
17#include <memory>
18
19#include "UtInput.hpp"
20namespace ut
21{
22class Random;
23}
24
25#include "WsfObject.hpp"
26#include "WsfObjectTypeList.hpp"
27class WsfSimulation;
28class WsfSensorMode;
29class WsfSensorResult;
30
31namespace wsf
32{
35{
36public:
37 bool ProcessInput(UtInput& aInput) override;
38 virtual bool Initialize(WsfSensorMode* aSensorModePtr);
39
43 virtual void ApplyMeasurementErrors(WsfSensorResult& aResult) = 0;
44
46
48 SensorErrorModelBase* Clone() const override = 0;
49
51 virtual bool IsNullModel() const { return false; }
52
55 virtual bool IsStandardModel() const { return false; }
56
57 bool DebugEnabled() const { return mDebugEnabled; }
58
59 WsfSensorMode* GetSensorMode() const { return mSensorModePtr; }
60 void SetSensorMode(WsfSensorMode* aSensorModePtr) { mSensorModePtr = aSensorModePtr; }
61
62private:
63 bool mDebugEnabled{false};
64 WsfSensorMode* mSensorModePtr{nullptr};
65};
66
68template<typename ErrorType>
70{
71public:
77 virtual std::unique_ptr<ErrorType> ComputeMeasurementErrors(WsfSensorResult& aResult) const = 0;
78
82 virtual void ApplyMeasurementErrors(const ErrorType& aErrors, WsfSensorResult& aResult) = 0;
83
85 {
87 }
88};
89
90} // namespace wsf
91
92#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfObjectTypeList.hpp:42
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
Definition WsfSensorMode.hpp:36
Definition WsfSensorResult.hpp:27
The main controller for a simulation.
Definition WsfSimulation.hpp:109
A base class for SensorErrorModels.
Definition WsfSensorErrorModel.hpp:35
bool ProcessInput(UtInput &aInput) override
Definition WsfSensorErrorModel.cpp:34
SensorErrorModelBase * Clone() const override=0
Create a clone of "this" object.
WsfSensorMode * GetSensorMode() const
Definition WsfSensorErrorModel.hpp:59
bool DebugEnabled() const
Definition WsfSensorErrorModel.hpp:57
virtual bool IsNullModel() const
Is this a null model (i.e., ApplyMeasurementErrors has no effect).
Definition WsfSensorErrorModel.hpp:51
WsfObjectTypeList< SensorErrorModelBase > SensorModelTypes
Definition WsfSensorErrorModel.hpp:45
virtual bool Initialize(WsfSensorMode *aSensorModePtr)
Definition WsfSensorErrorModel.cpp:26
virtual bool IsStandardModel() const
Definition WsfSensorErrorModel.hpp:55
void SetSensorMode(WsfSensorMode *aSensorModePtr)
Definition WsfSensorErrorModel.hpp:60
virtual void ApplyMeasurementErrors(WsfSensorResult &aResult)=0
This class defines the interface to compute specific measurement errors.
Definition WsfSensorErrorModel.hpp:70
void ApplyMeasurementErrors(WsfSensorResult &aResult) final
Definition WsfSensorErrorModel.hpp:84
virtual void ApplyMeasurementErrors(const ErrorType &aErrors, WsfSensorResult &aResult)=0
virtual std::unique_ptr< ErrorType > ComputeMeasurementErrors(WsfSensorResult &aResult) const =0
Definition WsfSensorErrorModel.hpp:21
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved