13 #include <vlutil/vlExceptions.h>
39 #include <boost/function.hpp>
40 #include <boost/unordered_set.hpp>
49 class DtVrfSelectionFilter;
61 operator DtString () {
return markingText(); };
73 : makVrv::DtStateViewCollection<makVrv::DtVrlinkSimulatedEntityState>(
74 de, makVrv::DtSimEntryUpdater::NoUpdates)
87 makVrv::DtStateViewCollection<makVrv::DtVrlinkSimulatedBaseState>(de, makVrv::DtSimEntryUpdater::NoUpdates)
113 makVrv::DtStateViewCollection<
DtIffStateData>(de, makVrv::DtSimEntryUpdater::NoUpdates)
174 makVrv::DtStateViewCollection<
DtExtendedStateData>(de, makVrv::DtSimEntryUpdater::NoUpdates)
194 makVrv::DtStateViewCollection<
DtSpotReportState>(de, makVrv::DtSimEntryUpdater::AnyUpdates)
248 virtual DtBoost::shared_ptr<DtObjectDataInterface> lookupObjectData(
const makVrv::DtUniqueID&
id);
252 virtual DtBoost::shared_ptr<DtObjectDataInterface> lookupSpotReportData(
const makVrv::DtUniqueID&
id);
256 virtual DtBoost::shared_ptr<DtObjectDataInterface> lookupObjectData(
const DtUUID&);
259 virtual DtVector centerOfMass(
const boost::unordered_set<DtUUID>& uuids,
260 bool ignoreEmbarked =
true);
264 virtual DtBoost::shared_ptr<DtObjectDataInterface> lookupSpotReportData(
const std::string& name);
269 template<
typename T_ObjectDataInterfaceType>
272 return DtObjectDataInterface::cast<T_ObjectDataInterfaceType>(lookupObjectData(
id));
278 template<
typename T_ObjectDataInterfaceType>
279 DtBoost::shared_ptr<T_ObjectDataInterfaceType> lookupAndCastSpotReportData(
const makVrv::DtUniqueID&
id)
281 return DtObjectDataInterface::cast<T_ObjectDataInterfaceType>(lookupSpotReportData(
id));
287 template<
typename T_ObjectDataInterfaceType>
288 DtBoost::shared_ptr<T_ObjectDataInterfaceType> lookupAndCastObjectData(
const DtUUID& uuid)
290 return DtObjectDataInterface::cast<T_ObjectDataInterfaceType>(lookupObjectData(uuid));
296 template<
typename T_ObjectDataInterfaceType>
297 DtBoost::shared_ptr<T_ObjectDataInterfaceType> lookupAndCastSpotReportData(
const std::string& name)
299 return DtObjectDataInterface::cast<T_ObjectDataInterfaceType>(lookupSpotReportData(name));
317 const std::string& markingText);
330 if (!mySpotReportStateViewCollection->hasStateView(
id))
336 (mySpotReportStateViewCollection->findStateView(
id));
340 virtual void clearUUIDInformation();
347 return mySimulatedEntityStateView;
352 return mySimulatedBaseStateViewCollection;
357 return myObjectDataStateViewCollection;
362 return myEnvironmentStateViewCollection;
367 return myExtendedStateDataViewCollection;
372 return myWeatherStateViewCollection;
377 return myIffStateDataViewCollection;
382 return myPropulsionNoiseStateDataViewCollection;
387 return myEmitterSystemStateViewCollection;
392 return myActiveSonarStateViewCollection;
397 return mySpotReportStateViewCollection;
402 return myAggregateStateViewCollection;
407 return mySensorFieldOfViewStateViewCollection;
422 const std::map<makVrv::DtUniqueID, const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*>&
423 stealthStates()
const
425 return myStealthStates;
443 typedef std::vector<makVrv::DtSimEntryUpdater::UpdateRate>
UpdateRates;
461 virtual void waiting();
480 virtual const std::vector<makVrv::DtUniqueID>& dIGuyIds();
484 virtual void signalWhenAllObjectsDiscovered(
const std::map<short, int>&);
493 boost::signal <void (const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*)> signal_stateAdded;
494 boost::signal <void (const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*)> signal_stateRemoved;
501 boost::signal <void (const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*,
const std::string& newName)> signal_nameChanged;
503 const std::set<makVrv::DtUniqueID>& tacticalGraphicElements()
const;
526 typedef boost::unordered_map<makVrv::DtBaseStateView*, UpdateRates>
UpdateRateMap;
546 typedef boost::unordered_map<DtUUID, makVrv::DtUniqueID>
UUIDToIdMap;
547 typedef boost::unordered_map<makVrv::DtUniqueID, DtUUID>
IdToUUIDMap;
552 std::map<makVrv::DtUniqueID, const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*>
myStealthStates;
565 makVrv::DtSimEntry::SimStateVector::const_iterator pos = entry->
simStates().begin();
566 makVrv::DtSimEntry::SimStateVector::const_iterator endPos = entry->
simStates().end();
567 for(; pos != endPos; ++pos)
569 T tState =
dynamic_cast<T
>(*pos);