106 lines
2.5 KiB
C++
Executable File
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;
|
|
};
|
|
|
|
}
|