Initial commit

This commit is contained in:
torsten committed 2026-08-13 18:33:10 +02:00
commit b7d90b9afe
16245 files changed
+3396666

No files matched your search

@@ -0,0 +1,179 @@
/**
* @RDE_HEADER@
* Interface-Implementation of FunctionalArea
* $Id$
* $HeadURL$
* $Author$
*/
// Own
#include "functional_area_impl.h"
#include <MapImpl/map_impl.h>
#include <GraphicalObjects/graphical_object_path.h>
#include <GraphicalObjects/graphical_object_text.h>
#include <MapObjectsImpl/participant_impl.h>
// ESRI
// Qt
namespace SituationMap
{
//-----------------------------------------------------------------------------
// class FunctionalAreaImpl
//-----------------------------------------------------------------------------
FunctionalAreaImpl::FunctionalAreaImpl(const QString &debugInfo)
: FunctionalArea() // Interface
, BaseClass(debugInfo) // Implementation
, m_logger(getLogger("FunctionalAreaImpl"))
{
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
m_pointSymbolData.origin.setMapObjectImpl(this);
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
}
FunctionalAreaImpl::~FunctionalAreaImpl()
{
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
delete m_pointSymbol;
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
}
void FunctionalAreaImpl::reRenderSymbol()
{
BaseClass::reRenderSymbol();
if (m_pointSymbol)
m_pointSymbol->reRenderSymbol();
}
Point3D FunctionalAreaImpl::pointSymbolOrigin() const
{
return m_pointSymbolData.origin.origin();
}
void FunctionalAreaImpl::setPointSymbolOrigin(const Point3D &pointSymbolOrigin)
{
m_pointSymbolData.origin.setOrigin(pointSymbolOrigin);
}
const QString &FunctionalAreaImpl::pointSymbolSidc() const
{
return m_pointSymbolData.symbolData.sidc;
}
void FunctionalAreaImpl::setPointSymbolSidc(const QString &pointSymbolOriginSidc)
{
m_pointSymbolData.symbolData.sidc = pointSymbolOriginSidc;
}
bool FunctionalAreaImpl::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";
if (!updateViewImplPointSymbolData())
ERROR_LOG(m_logger) << LOGFUNCTION << " updateViewImplPointSymbolData failed";
TRACE_LOG(m_logger) << LOGFUNCTION << " END, success=" << success;
return success;
}
bool FunctionalAreaImpl::updateViewImplPointSymbolData()
{
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
// sidc empty?
if (m_pointSymbolData.symbolData.sidc.isEmpty())
{
delete m_pointSymbol;
m_pointSymbol = nullptr;
return true;
}
// ok, sidc available:
if (!m_pointSymbol)
{
m_pointSymbol = new ParticipantImpl(m_debugInfo + QStringLiteral("#PntSymblTactApp"));
m_pointSymbol->init(m_mapImpl, m_logicalLayerName); // use same layer as mainGraphicalObj/TECHN. Appearance
m_pointSymbol->setUniqueId(m_uniqueMapId);
}
if (m_party.partyId.changed())
m_pointSymbol->setPartyIdChanged(m_party.partyId.value());
// The drawOrder should be above the m_mainGraphicalObject (==Path)
m_pointSymbol->setDrawOrder(this->drawOrder() + 1); // since m_pointSymbol is a participant, use drawOrder instead of m_internalDrawOrder
AbstractMapObjectImpl *amoImp = static_cast<AbstractMapObjectImpl*>(m_pointSymbol);
amoImp->setVisibility((m_mainGraphicalObject) ? m_mainGraphicalObject->visibility() : false);
m_pointSymbol->setOrigin(m_pointSymbolData.origin.origin());
m_pointSymbol->setPartyId(this->partyId());
// m_pointSymbolData.symbolData.color = this->partyColor();
// return m_mapImpl->partyIdToColorFunctor().partyIdToRole(m_party.partyId.value(), identityAssumed);
// AdvancedSymbology::Role role = this->partyRole();
// SymbolData symbolData = m_pointSymbolData.symbolData;
// symbolData = m_pointSymbolData.symbolData;
m_pointSymbol->setSymbol(m_pointSymbolData.symbolData);
m_pointSymbol->setScale(this->scale());
// add m_userSymbolOpacity???
bool success = m_pointSymbol->updateView();
if (!success)
ERROR_LOG(m_logger) << LOGFUNCTION << " updateViewImpl failed, m_debugInfo =" << m_debugInfo;
TRACE_LOG(m_logger) << LOGFUNCTION << " END, success=" << success;
return success;
}
bool FunctionalAreaImpl::init(MapImpl *mapImpl, const QString &logicalLayerName)
{
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
// if (mapImpl)
// {
// switch (mapImpl->symbologyType()) {
// case AdvancedSymbology::SymbologyType::MIL2525C:
// m_symbol.refValue().sidc = QLatin1String("GUMPNC----"); // Image WITH Area // small icon and big border
// break;
// case AdvancedSymbology::SymbologyType::APP6B:
// m_symbol.refValue().sidc = QLatin1String("GUCPMGASM-"); // APP6B: 3556: GUCPMGASM- -> Polygon
// break;
// } // switch
// } // if (mapImpl)
bool success = BaseClass::init(mapImpl, logicalLayerName, GraphicalObjectPathType::Polygon);
setLineStyle(LineStyle(Qt::black, 2));
if (!success)
ERROR_LOG(m_logger) << LOGFUNCTION << " init failed";
TRACE_LOG(m_logger) << LOGFUNCTION << " END, success=" << success;
return success;
}
} // namespace SituationMap