13 #pragma warning (disable:4715)
15 #include <vlutil/vlExceptions.h>
29 #include <vrvUtil/DtVirtualBaseClass.h>
31 #include <vrvCore/DtSimData.h>
32 #include <vrvCore/DtElementEntry.h>
33 #include <vrvCore/DtStateViewCollection.h>
34 #include <vrvCore/DtEntityState.h>
35 #include <vrvCore/DtElementData.h>
46 :
public makVrv::DtStateViewCollection<makVrv::DtVrlinkSimulatedEntityState>
51 de, makVrv::DtSimEntryUpdater::NoUpdates)
60 :
public makVrv::DtStateViewCollection<makVrv::DtVrlinkSimulatedBaseState>
68 bool isCompatible(makVrv::DtSimObjectEntry& entry)
70 return makVrv::DtStateViewCollection<makVrv::DtVrlinkSimulatedBaseState>::isCompatible(entry);
212 virtual DtBoost::shared_ptr<DtObjectDataInterface> lookupObjectData(
const makVrv::DtUniqueID&
id);
216 virtual DtBoost::shared_ptr<DtObjectDataInterface> lookupSpotReportData(
const makVrv::DtUniqueID&
id);
220 virtual DtBoost::shared_ptr<DtObjectDataInterface> lookupObjectData(
const std::string& name);
224 virtual DtBoost::shared_ptr<DtObjectDataInterface> lookupSpotReportData(
const std::string& name);
229 template<
typename T_ObjectDataInterfaceType>
230 DtBoost::shared_ptr<T_ObjectDataInterfaceType> lookupAndCastObjectData(
const makVrv::DtUniqueID&
id)
232 return DtObjectDataInterface::cast<T_ObjectDataInterfaceType>(lookupObjectData(
id));
238 template<
typename T_ObjectDataInterfaceType>
239 DtBoost::shared_ptr<T_ObjectDataInterfaceType> lookupAndCastSpotReportData(
const makVrv::DtUniqueID&
id)
241 return DtObjectDataInterface::cast<T_ObjectDataInterfaceType>(lookupSpotReportData(
id));
247 template<
typename T_ObjectDataInterfaceType>
248 DtBoost::shared_ptr<T_ObjectDataInterfaceType> lookupAndCastObjectData(
const std::string& name)
250 return DtObjectDataInterface::cast<T_ObjectDataInterfaceType>(lookupObjectData(name));
256 template<
typename T_ObjectDataInterfaceType>
257 DtBoost::shared_ptr<T_ObjectDataInterfaceType> lookupAndCastSpotReportData(
const std::string& name)
259 return DtObjectDataInterface::cast<T_ObjectDataInterfaceType>(lookupSpotReportData(name));
264 virtual DtBoost::shared_ptr<DtObjectDataInterface> lookupObjectData(makVrv::DtStateView<makVrv::DtSimState>* stateView);
268 makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* findStateView(
const std::string& markingText);
271 makVrv::DtStateView<DtSpotReportState>* findSpotReportStateView(
const std::string& markingText);
275 makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* findStateView(
const makVrv::DtUniqueID&
id)
277 if (!mySimulatedBaseStateViewCollection->hasStateView(
id))
282 return const_cast<makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*
>
283 (mySimulatedBaseStateViewCollection->findStateView(
id));
288 makVrv::DtStateView<DtSpotReportState>* findSpotReportStateView(
const makVrv::DtUniqueID&
id)
290 if (!mySpotReportStateViewCollection->hasStateView(
id))
295 return const_cast<makVrv::DtStateView<DtSpotReportState>*
>
296 (mySpotReportStateViewCollection->findStateView(
id));
304 return mySimulatedEntityStateView;
309 return mySimulatedBaseStateViewCollection;
314 return myObjectDataStateViewCollection;
319 return myEnvironmentStateViewCollection;
324 return myExtendedStateDataViewCollection;
329 return myIffStateDataViewCollection;
334 return myPropulsionNoiseStateDataViewCollection;
339 return myEmitterSystemStateViewCollection;
344 return myActiveSonarStateViewCollection;
349 return mySpotReportStateViewCollection;
354 return myAggregateStateViewCollection;
360 makVrv::DtUniqueID parentId(
const makVrv::DtUniqueID&)
const;
362 makVrv::DtUniqueID displayIdFromSimId(
const makVrv::DtUniqueID&
id,
int modelSet = -1)
const;
363 makVrv::DtElementData::SceneObjectIdList displayIdsFromSimId(
const makVrv::DtUniqueID&
id,
int modelSet = -1)
const;
366 makVrv::DtUniqueID simIdFromDisplayId(
const makVrv::DtUniqueID&
id)
const;
369 virtual std::string entityName(
const makVrv::DtUniqueID simId)
const;
372 virtual std::string overlayName(
const makVrv::DtUniqueID simId)
const;
375 virtual makVrv::DtElementEntry::ElementType elementType(
const makVrv::DtElementID&)
const;
378 virtual makVrv::DtSimEntryUpdater::UpdateRate updateRateFor(
const makVrv::DtBaseStateView* state)
const;
380 typedef std::vector<makVrv::DtSimEntryUpdater::UpdateRate>
UpdateRates;
381 virtual makVrv::DtSimEntryUpdater::UpdateRate minimumRate(
const UpdateRates&)
const;
382 virtual makVrv::DtSimEntryUpdater::UpdateRate maximumRate(
const UpdateRates&)
const;
387 virtual void setUpdateRate(makVrv::DtSimEntry*, makVrv::DtSimEntryUpdater::UpdateRate,
388 makVrv::DtBaseStateView* state);
391 virtual void forceUpdateForRelevantInformation(makVrv::DtUniqueID
id);
407 typedef boost::unordered_map<makVrv::DtBaseStateView*, UpdateRates>
UpdateRateMap;
414 makVrv::DtSimEntry::SimStateVector::const_iterator pos = entry->simStates().begin();
415 makVrv::DtSimEntry::SimStateVector::const_iterator endPos = entry->simStates().end();
416 for(; pos != endPos; ++pos)
418 T tState =
dynamic_cast<T
>(*pos);