13 #include <vlutil/vlExceptions.h>
39 #include <boost/function.hpp>
40 #include <boost/unordered_set.hpp>
49 class DtVrfSelectionFilter;
57 : makVrv::DtStateViewCollection<makVrv::DtVrlinkSimulatedEntityState>(
58 de, makVrv::DtSimEntryUpdater::NoUpdates)
71 makVrv::DtStateViewCollection<makVrv::DtVrlinkSimulatedBaseState>(de, makVrv::DtSimEntryUpdater::NoUpdates)
97 makVrv::DtStateViewCollection<
DtIffStateData>(de, makVrv::DtSimEntryUpdater::NoUpdates)
158 makVrv::DtStateViewCollection<
DtExtendedStateData>(de, makVrv::DtSimEntryUpdater::NoUpdates)
178 makVrv::DtStateViewCollection<
DtSpotReportState>(de, makVrv::DtSimEntryUpdater::AnyUpdates)
232 virtual DtBoost::shared_ptr<DtObjectDataInterface> lookupObjectData(
const makVrv::DtUniqueID&
id);
236 virtual DtBoost::shared_ptr<DtObjectDataInterface> lookupSpotReportData(
const makVrv::DtUniqueID&
id);
240 virtual DtBoost::shared_ptr<DtObjectDataInterface> lookupObjectData(
const DtUUID&);
243 virtual DtVector centerOfMass(
const boost::unordered_set<DtUUID>& uuids,
244 bool ignoreEmbarked =
true);
248 virtual DtBoost::shared_ptr<DtObjectDataInterface> lookupSpotReportData(
const std::string& name);
253 template<
typename T_ObjectDataInterfaceType>
256 return DtObjectDataInterface::cast<T_ObjectDataInterfaceType>(lookupObjectData(
id));
262 template<
typename T_ObjectDataInterfaceType>
263 DtBoost::shared_ptr<T_ObjectDataInterfaceType> lookupAndCastSpotReportData(
const makVrv::DtUniqueID&
id)
265 return DtObjectDataInterface::cast<T_ObjectDataInterfaceType>(lookupSpotReportData(
id));
271 template<
typename T_ObjectDataInterfaceType>
272 DtBoost::shared_ptr<T_ObjectDataInterfaceType> lookupAndCastObjectData(
const DtUUID& uuid)
274 return DtObjectDataInterface::cast<T_ObjectDataInterfaceType>(lookupObjectData(uuid));
280 template<
typename T_ObjectDataInterfaceType>
281 DtBoost::shared_ptr<T_ObjectDataInterfaceType> lookupAndCastSpotReportData(
const std::string& name)
283 return DtObjectDataInterface::cast<T_ObjectDataInterfaceType>(lookupSpotReportData(name));
296 const std::string& markingText);
309 if (!mySpotReportStateViewCollection->hasStateView(
id))
315 (mySpotReportStateViewCollection->findStateView(
id));
319 virtual void clearUUIDInformation();
326 return mySimulatedEntityStateView;
331 return mySimulatedBaseStateViewCollection;
336 return myObjectDataStateViewCollection;
341 return myEnvironmentStateViewCollection;
346 return myExtendedStateDataViewCollection;
351 return myWeatherStateViewCollection;
356 return myIffStateDataViewCollection;
361 return myPropulsionNoiseStateDataViewCollection;
366 return myEmitterSystemStateViewCollection;
371 return myActiveSonarStateViewCollection;
376 return mySpotReportStateViewCollection;
381 return myAggregateStateViewCollection;
386 return mySensorFieldOfViewStateViewCollection;
401 const std::map<makVrv::DtUniqueID, const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*>&
402 stealthStates()
const
404 return myStealthStates;
422 typedef std::vector<makVrv::DtSimEntryUpdater::UpdateRate>
UpdateRates;
440 virtual void waiting();
455 virtual void signalWhenAllObjectsDiscovered(
const std::map<short, int>&);
464 boost::signal <void (const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*)> signal_stateAdded;
465 boost::signal <void (const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*)> signal_stateRemoved;
472 boost::signal <void (const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*)> signal_nameChanged;
474 const std::set<makVrv::DtUniqueID>& tacticalGraphicElements()
const;
497 typedef boost::unordered_map<makVrv::DtBaseStateView*, UpdateRates>
UpdateRateMap;
517 typedef boost::unordered_map<DtUUID, makVrv::DtUniqueID>
UUIDToIdMap;
518 typedef boost::unordered_map<makVrv::DtUniqueID, DtUUID>
IdToUUIDMap;
523 std::map<makVrv::DtUniqueID, const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*>
myStealthStates;
531 makVrv::DtSimEntry::SimStateVector::const_iterator pos = entry->
simStates().begin();
532 makVrv::DtSimEntry::SimStateVector::const_iterator endPos = entry->
simStates().end();
533 for(; pos != endPos; ++pos)
535 T tState =
dynamic_cast<T
>(*pos);