Files
qt5-legatus-legacy/Lts/Services/CentralEffectSimulation/Plugins/GeoPairing/GeoPairingImpl/GeoPairingImpl.hpp
T
2026-08-13 18:33:10 +02:00

106 lines
2.5 KiB
C++
Executable File

// **************************************************************************
//
// (C) Copyright 2009 Swiss SIMTEC AG
//
// **************************************************************************
//
// $HeadURL$
// $LastChangedBy$
// $LastChangedDate$
// $LastChangedRevision$
//
// **************************************************************************
#pragma once
// from stereotyped includes
#include "GeoPairingImplAirTargetCache.hpp"
#include "GeoPairingImplMeteoData.hpp"
#include "GeoPairingImplAirTargetTracker.hpp"
#include "GeoPairingImplFiredBullet.hpp"
#include "GeoPairingImplAirTarget.hpp"
#include "GeoPairingImplSensorData.hpp"
#include "GeoPairingImplAirTargetUpdater.hpp"
#include <FW_Ballistic/BallisticService.hpp>
#include <memory>
namespace N_GeoPairingImpl
{
/**
* This class is the base implementation of the GeoPairing component. A real
* Implemtation must be derived from it.
*
* @author Daniel.Schmid
* @version 1.0
* @created 29-Sep-2009 15:16:19
*/
class GeoPairingImpl
{
public:
GeoPairingImpl(const char *loggerName);
virtual ~GeoPairingImpl() = default;
/**
* creates a new air target tracker
*/
GeoPairingImplAirTargetTracker *createAirTargetTracker();
/**
* creates a new air target updater
*/
GeoPairingImplAirTargetUpdater *createAirTargetUpdater();
/**
* creates a new air target cache
*
* @param a_playerID
*/
GeoPairingImplAirTargetCache *createAirTargetCache(UInt32 a_playerID);
/**
* Creates a new fired bulled according to the given SensorData
*
* @param a_sensorData
*/
virtual GeoPairingImplFiredBullet *createFiredBullet(GeoPairingImplSensorData &a_sensorData) = 0;
/**
* Pupulates a SensorData instance according to the given transparent datastream
*
* @param a_sensorData
* @param a_transparendData
* @param a_sizeOfTransparentData
*/
virtual SInt32 createSensorData(GeoPairingImplSensorData *a_sensorData,
const QByteArray& a_transparendData,
int &isDefault);
/**
* Initialize the GeoPairing implementation
*
* @param a_config
*/
virtual bool initialize(const QString &a_config) = 0;
/**
* Sets global meteo conditions
*
* @param a_meteoData
*/
void setMeteoData(const GeoPairingImplMeteoData &a_meteoData);
protected:
bool m_Initialized;
std::vector<GeoPairingImplAirTarget *> m_ListAirTargets;
GeoPairingImplMeteoData m_MeteoData;
CacheType m_CacheData;
NGL::INGLLogger &m_logger;
};
}