Files
qt5-legatus-legacy/Lts/Viewer/SituationMap/MapObjectsImpl/chemical_agent_impl.cpp
T
2026-08-13 18:33:10 +02:00

130 lines
3.8 KiB
C++
Executable File

/**
* @RDE_HEADER@
* Interface-Implementation of ChemicalAgent
* $Id$
* $HeadURL$
* $Author$
*/
// Own
#include "chemical_agent_impl.h"
#include <MapImpl/map_impl.h>
#include <GraphicalObjects/graphical_object_path.h>
#include <GraphicalObjects/graphical_object_text.h>
#include <Symbology/sidc_codec.h>
// ESRI
// Qt
namespace SituationMap
{
//-----------------------------------------------------------------------------
// class ChemicalAgentImpl
//-----------------------------------------------------------------------------
ChemicalAgentImpl::ChemicalAgentImpl(const QString &debugInfo)
: ChemicalAgent() // Interface
, BaseClass(debugInfo) // Implementation
, m_logger(getLogger("ChemicalAgentImpl"))
{
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
m_lineColorFromParty = false;
m_fillColorAlpha = 200;
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
}
ChemicalAgentImpl::~ChemicalAgentImpl()
{
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
}
Point3D ChemicalAgentImpl::origin() const
{
return BaseClass::origin();
}
void ChemicalAgentImpl::setOrigin(const Point3D &origin)
{
BaseClass::setOrigin(origin);
}
float ChemicalAgentImpl::radius() const
{
return BaseClass::radius();
}
void ChemicalAgentImpl::setRadius(float radius, unsigned int maxPointCount)
{
BaseClass::setRadius(radius, maxPointCount);
}
bool ChemicalAgentImpl::updateViewImpl()
{
TRACE_LOG(m_logger) << LOGFUNCTION << " START"
<< " symbol=" << m_symbol.value().sidc
<< " visibility=" << m_visibility
<< " visiTechn=" << m_visibilityTechnical
<< " visiTact=" << m_visibilityTactical;
bool success = BaseClass::updateViewImpl();
if (!success)
ERROR_LOG(m_logger) << LOGFUNCTION << " updateViewImpl failed";
TRACE_LOG(m_logger) << LOGFUNCTION << " END, success=" << success;
return success;
}
bool ChemicalAgentImpl::init(MapImpl *mapImpl, const QString &logicalLayerName)
{
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
if (mapImpl)
{
switch (mapImpl->symbologyType())
{
case AdvancedSymbology::SymbologyType::APP6D:
case AdvancedSymbology::SymbologyType::MIL2525D:
m_symbol.refValue().sidc = AdvancedSymbology::SidcCodec::encodeComplete(mapImpl->symbologyType(), "10012500002718000000"); // SymbolSet = 25 271800
// ^^ ^^^^^^
break;
case AdvancedSymbology::SymbologyType::MIL2525C:
m_symbol.refValue().sidc = AdvancedSymbology::SidcCodec::encodeComplete(mapImpl->symbologyType(), "GUMPNC----"); // 0985 GUMPNC---- -> Polygon
// m_symbol.refValue().sidc = AdvancedSymbology::SidcCodec::encodeComplete(mapImpl->symbologyType(),"GFMPNEC---"); // MIL2525D: 0115: GFMPNEC--- "Chemical F"s
break;
case AdvancedSymbology::SymbologyType::APP6B:
m_symbol.refValue().sidc = AdvancedSymbology::SidcCodec::encodeComplete(mapImpl->symbologyType(), "GUCPBWH---"); // APP6B: 3943 GUCPBWH--- -> Polygon
// m_symbol.refValue().sidc = AdvancedSymbology::SidcCodec::encodeComplete(mapImpl->symbologyType(),"GUCPBWK---"); // APP6B: 2879: GUCPBWK--- -> Point "Chemical Attack, Release Event U"
break;
case AdvancedSymbology::SymbologyType::None:
// empty
break;
} // switch
} // if (mapImpl)
bool success = BaseClass::init(mapImpl, logicalLayerName, GraphicalObjectPathType::Polygon);
setLineStyle(LineStyle(Qt::yellow, 2));
setFillStyle(FillStyle(Qt::yellow, FillPattern::Null));
if (!success)
ERROR_LOG(m_logger) << LOGFUNCTION << " init failed";
TRACE_LOG(m_logger) << LOGFUNCTION << " END, success=" << success;
return success;
}
} // namespace SituationMap