Files
qt5-legatus-legacy/Lts/Viewer/SituationMap/MapObjects/_single_fire_central.h
T
2026-08-13 18:33:10 +02:00

59 lines
1.4 KiB
C++
Executable File

/**
* @RDE_HEADER@
* Interface of SingleFireCentral
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include "abstract_multi_point_map_object.h"
#include <Map/abstract_effect_simulation.h>
//----------------------------------------------------------------------------
namespace SituationMap
{
/**
* @brief The SingleFireCentral class supports Indirect Single Fire.
*/
class SingleFireCentral : public virtual AbstractMultiPointMapObject, public virtual AbstractEffectSimulation
{
using BaseClass = AbstractMultiPointMapObject;
public:
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Don't use "= default" because of bug in VS2015 JT 2016/11/7
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
SingleFireCentral() : BaseClass() {;} ///< Contructor
virtual ~SingleFireCentral() = default; ///< Destructor
/*! \name Specific data*/
//@{
struct DetonationData
{
DetonationData() = default;
DetonationData(const Point3D &origin, double radius)
: m_origin(origin), m_radius(radius)
{}
Point3D m_origin;
double m_radius{0.0};
};
virtual void setDetonation(const DetonationData &detonationData) = 0;
virtual DetonationData detonation() const = 0;
virtual bool startDetonationAnimation() = 0;
// required???
virtual Point3D impactOrigin() const = 0;
virtual void setImpactOrigin(const Point3D &impactOrigin) = 0;
//@}
};
} // namespace SituationMap