VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
sensorSignatureManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
11 
14 
18 #include <vlutil/vlConfig.h>
19 #include <matrix/vlVector.h>
20 #include <map>
21 #include "tbb/spin_rw_mutex.h"
22 #include <list>
23 
24 class DtPhysicalWorld;
28 class DtSimObject;
30 
43 {
44 private:
50  DtSensorSignatureManager& operator=(const DtSensorSignatureManager& orig);
51 
52 protected:
56 
59  virtual bool init();
60 
61 public:
65  static DtSensorSignatureManager* create(DtPhysicalWorld* physicalWorld);
66 
67  virtual ~DtSensorSignatureManager();
68 
70  virtual void reinitialize();
71 
73  virtual std::vector<DtString> sensorDomains() const;
74 
76  virtual void deleteBaseSignatures();
77 
90  virtual double calculateBaseSignature(const DtSymbolString& sensorDomain, DtSimObjectReference baseObject) const;
91 
96  virtual double apparentObjectSignature(const DtSymbolString& sensorDomain,
97  const DtSignaturePropagatorArgs& propagatorArgs, bool* dataAvailable = nullptr) const;
98 
101  virtual double apparentObjectSignature(const DtSymbolString& sensorDomain,
102  DtSimObjectReference targetObject, DtSimObjectReference viewingObject, bool* dataAvailable = nullptr) const;
103 
107  virtual double apparentObjectSignature(const DtSignaturePropagator* propagator,
108  const DtSymbolString& sensorDomain, const DtSignaturePropagatorArgs& propagatorArgs, bool* dataAvailable = nullptr) const;
109 
115  virtual bool createPropagatorsFromDescriptorList(
116  const DtSignaturePropagatorDescriptorList& descList);
117 
118 protected:
122  virtual const DtSignaturePropagator* propagatorForDomain(const DtSymbolString& domain) const;
123 
126  void deleteSignaturePropagators();
127 
130  virtual double modifySignature(DtSimObjectReference simObject,
131  const std::list<DtSignatureModifierEvaluator*>&, double baseSignature) const;
132 
133 protected:
135  typedef std::map<DtSymbolString, DtSignaturePropagator*> DtSignaturePropagatorMap;
137 
139  typedef std::list<DtSignatureModifierEvaluator*> SignatureModifierEvalList;
140 
142  {
145  };
146 
148  typedef std::map<DtSymbolString, SignatureCalculator> SignatureCalculators;
149 
151  typedef std::map<DtString, SignatureCalculators> SignatureCalculatorsMap;
153 
154  mutable tbb::spin_rw_mutex mySignatureCalculatorsMapMutex;
155 };
Contains the DtSignaturePropagatorArgs class declaration.
Definition: signaturePropagatorArgs.h:22
The abstract base class for all evaluators of signature modifiers. The evaluation of signature modifi...
Definition: signatureModifierEvaluator.h:25
This class allows one to collect and compare strings using an index number instead of having to do st...
Definition: symbolString.h:27
SignatureCalculatorsMap mySignatureCalculatorsMap
Definition: sensorSignatureManager.h:152
Definition: signaturePropagatorDescriptorList.h:25
std::map< DtSymbolString, SignatureCalculator > SignatureCalculators
This type maps domain name to a list of evaluators for that domain.
Definition: sensorSignatureManager.h:148
The DtSimObjectReference is a shared pointer that can be used amongst many object for access to the u...
Definition: simObjectReference.h:26
Definition: sensorSignatureManager.h:141
DtPhysicalWorld * myPhysicalWorld
Definition: sensorSignatureManager.h:134
tbb::spin_rw_mutex mySignatureCalculatorsMapMutex
Definition: sensorSignatureManager.h:154
The DtPhysicalWorld is the primary interface to and manager of all of the &quot;physical&quot; aspects of the s...
Definition: physicalWorld.h:102
Central manager for calculating apparent signatures in all the sensor domains. Apparent signatures ar...
Definition: sensorSignatureManager.h:42
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
std::list< DtSignatureModifierEvaluator * > SignatureModifierEvalList
Maps for getting base sensor signature.
Definition: sensorSignatureManager.h:139
double baseSignature
Definition: sensorSignatureManager.h:143
Base class for all sensor signal propagators. Signal propagators model the propagation of an absolute...
Definition: signaturePropagator.h:35
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: simObject.h:88
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
std::map< DtSymbolString, DtSignaturePropagator * > DtSignaturePropagatorMap
Definition: sensorSignatureManager.h:135
Contains the DtSimObjectReference class declaration.
SignatureModifierEvalList signatureModifierEvalList
Definition: sensorSignatureManager.h:144
DtSignaturePropagatorMap mySignaturePropagatorMap
Definition: sensorSignatureManager.h:136
std::map< DtString, SignatureCalculators > SignatureCalculatorsMap
This is a map from object type string to (a map of) calculators for that type.
Definition: sensorSignatureManager.h:151

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)