WSF
MTT_CandidateTrack.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
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 MTT_CANDIDATE_TRACK_HPP
13#define MTT_CANDIDATE_TRACK_HPP
14
16#include "MTT_Track.hpp"
17#include "UtMatrix.hpp"
18
21{
22public:
23 // Candidate track data should be same as embryonic track data
24 // typedef MTT_EmbryonicTrack::Data Data;
25
26 class Data : public MTT_Track::Data
27 {
28 public:
30 : mErrorInfoMatrix(4, 4)
34 {
35 }
36
37 MTT_Track::Data* Clone() const override { return new Data(*this); }
38
39 ~Data() override {}
40
48
49 void ConvertFrom(const SupBlock& aBlock) override
50 {
51 mErrorInfoMatrix.CopyFrom(aBlock.mDoubleBlock + 0); // 0-31 (4x4 = 16 doubles)
52 mHorizontalState.CopyFrom(aBlock.mDoubleBlock + 16); // 32-39 (4x1 = 4 doubles)
53 mVerticalErrorInfoMatrix.CopyFrom(aBlock.mDoubleBlock + 20); // 40-47 (2x2 = 4 doubles)
54 mVerticalState.CopyFrom(aBlock.mDoubleBlock + 24); // 48-51 (2x1 = 2 doubles)
55 }
56
57 void Log(std::fstream& aFS) override
58 {
59 aFS << mErrorInfoMatrix << std::endl;
60 aFS << mHorizontalState << std::endl;
61 aFS << mVerticalErrorInfoMatrix << std::endl;
62 aFS << mVerticalState << std::endl;
63 }
64 // Suppressor offset (386 block)
65 UtMatrixd mErrorInfoMatrix; // 0-31 (4x4 = 16 doubles)
66 UtMatrixd mHorizontalState; // 32-39 (4x1 = 4 doubles)
67 UtMatrixd mVerticalErrorInfoMatrix; // 40-47 (2x2 = 4 doubles)
68 UtMatrixd mVerticalState; // 48-51 (2x1 = 2 doubles)
69 };
70
71public:
73
75 : MTT_Track(aSrc)
76 {
77 }
78
79 ~MTT_CandidateTrack() override {}
80
81 void SetData(const Data& aData)
82 {
83 if (mDataPtr != nullptr)
84 {
85 delete mDataPtr;
86 }
87 mDataPtr = new Data(aData);
88 }
89
91};
92
93#endif
Definition MTT_CandidateTrack.hpp:27
void Log(std::fstream &aFS) override
Definition MTT_CandidateTrack.hpp:57
~Data() override
Definition MTT_CandidateTrack.hpp:39
UtMatrixd mVerticalState
Definition MTT_CandidateTrack.hpp:68
UtMatrixd mVerticalErrorInfoMatrix
Definition MTT_CandidateTrack.hpp:67
void CopyFromEmbryonicData(const MTT_EmbryonicTrack::Data &aData)
Definition MTT_CandidateTrack.hpp:41
Data()
Definition MTT_CandidateTrack.hpp:29
UtMatrixd mErrorInfoMatrix
Definition MTT_CandidateTrack.hpp:65
UtMatrixd mHorizontalState
Definition MTT_CandidateTrack.hpp:66
MTT_Track::Data * Clone() const override
Definition MTT_CandidateTrack.hpp:37
void ConvertFrom(const SupBlock &aBlock) override
Definition MTT_CandidateTrack.hpp:49
MTT_CandidateTrack()
Definition MTT_CandidateTrack.hpp:72
~MTT_CandidateTrack() override
Definition MTT_CandidateTrack.hpp:79
void SetData(const Data &aData)
Definition MTT_CandidateTrack.hpp:81
MTT_CandidateTrack(const MTT_CandidateTrack &aSrc)
Definition MTT_CandidateTrack.hpp:74
MTT_CandidateTrack::Data & GetData() const
Definition MTT_CandidateTrack.hpp:90
Definition MTT_EmbryonicTrack.hpp:27
UtMatrixd mErrorInfoMatrix
Definition MTT_EmbryonicTrack.hpp:41
UtMatrixd mVerticalState
Definition MTT_EmbryonicTrack.hpp:44
UtMatrixd mHorizontalState
Definition MTT_EmbryonicTrack.hpp:42
UtMatrixd mVerticalErrorInfoMatrix
Definition MTT_EmbryonicTrack.hpp:43
Definition MTT_Track.hpp:26
MTT_Track()
Definition MTT_Track.hpp:35
Data * mDataPtr
Definition MTT_Track.hpp:67
Definition SupBlock.hpp:21
double * mDoubleBlock
Definition SupBlock.hpp:46
Copyrights Multiple, All Rights Reserved