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

157 lines
4.3 KiB
C++
Executable File

/**
* @RDE_HEADER@
* Interface-Implementation of BiologicalAgent
* $Id$
* $HeadURL$
* $Author$
*/
// Own
#include "biological_agent_impl.h"
#include <MapImpl/map_impl.h>
#include <Map/party_id_to_color_functor.h>
#include <GraphicalObjects/graphical_object_ellipse.h>
#include <GraphicalObjects/tactical_appearance.h>
#include <Symbology/sidc_codec.h>
// ESRI
// Qt
namespace SituationMap
{
//-----------------------------------------------------------------------------
// class BiologicalAgentImpl
//-----------------------------------------------------------------------------
BiologicalAgentImpl::BiologicalAgentImpl(const QString &debugInfo)
: BiologicalAgent() // Interface
, BaseClass(debugInfo) // Implementation
, m_logger(getLogger("BiologicalAgentImpl"))
{
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
m_lineColorFromParty = false;
m_fillColorAlpha = 200;
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
}
BiologicalAgentImpl::~BiologicalAgentImpl()
{
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
}
QString BiologicalAgentImpl::toString() const
{
QString str;
str.append(BaseClass::toString());
str.append(BasicPathObjectImpl::toString());
return str;
}
Point3D BiologicalAgentImpl::origin() const
{
return BaseClass::origin();
}
void BiologicalAgentImpl::setOrigin(const Point3D &origin)
{
BaseClass::setOrigin(origin);
}
float BiologicalAgentImpl::radius() const
{
return BaseClass::radius();
}
void BiologicalAgentImpl::setRadius(float radius)
{
BaseClass::setRadius(radius);
}
AesEffectState BiologicalAgentImpl::aesState() const
{
return BaseClass::aesState();
}
void BiologicalAgentImpl::setAesState(AesEffectState aesState)
{
BaseClass::setAesState(aesState);
}
SymbolImage BiologicalAgentImpl::symbolImage() const
{
SymbolImage symImage = m_tacticalAppearance->symbolImage();
return symImage;
}
bool BiologicalAgentImpl::updateViewImpl()
{
TRACE_LOG(m_logger) << LOGFUNCTION << " START"
<< " origin =" << this->origin() //.x() << ", " << this->origin().y()
<< " radius =" << this->radius()
<< " 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 BiologicalAgentImpl::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(), "10012500002717000000"); // SymbolSet = 25 271700
// ^^ ^^^^^^
break;
case AdvancedSymbology::SymbologyType::MIL2525C:
// m_symbol.refValue().m_sidc = QLatin1String("GUMPNB----"); // 0953 GUMPNB---- -> Polygon -> Image WITH Area // small icon and big border
m_symbol.refValue().sidc = AdvancedSymbology::SidcCodec::encodeComplete(mapImpl->symbologyType(), "GFMPNEB---"); // 0081 GFMPNEB--- -> Point -> Image WITHOUT Area // not 'centered'
break;
case AdvancedSymbology::SymbologyType::APP6B:
// m_symbol.refValue().m_sidc = QLatin1String("GHCPBWC---"); // APP6B: 3937 GHCPBWC--- -> Polygon
m_symbol.refValue().sidc = AdvancedSymbology::SidcCodec::encodeComplete(mapImpl->symbologyType(), "GUCPBWK---"); // APP6B: 2875 GUCPBWK--- -> Point
break;
case AdvancedSymbology::SymbologyType::None:
// empty
break;
} // switch
} // if (mapImpl)
bool success = BaseClass::init(mapImpl, logicalLayerName, GraphicalObjectPathType::Polygon);
if (!success)
ERROR_LOG(m_logger) << LOGFUNCTION << " init failed";
setLineStyle(LineStyle(Qt::yellow, 2));
setFillStyle(FillStyle(Qt::yellow, FillPattern::Null));
TRACE_LOG(m_logger) << LOGFUNCTION << " END, success=" << success;
return success;
}
} // namespace SituationMap