Qt6 Migration: Complete migration with DDS/RTI support and build validation
Major Changes:
- Merged latest Qt5 devel content from dlbo (292 files changed, 7 new dirs)
- Consolidated forward-declarations and include folders
- Removed unneeded modules per Niklas' repo check list
Build System Fixes:
- Fixed CMake VERSION_GREATER syntax in ParticipantManagement/CMakeLists.txt
- Added VLC packages (libvlc-dev, vlc-plugin-base) to docker_build.sh
- Added PostgreSQL dev packages (libpq-dev, postgresql-server-dev-all) to Dockerfile
- Fixed locale warnings (ANSI_X3.4-1968 → C.UTF-8)
- Fixed ArcGIS SDK path warnings when BUILD_ARCGIS=OFF
Code Generation Fixes:
- Fixed IDL enum collisions (PortType→CorePortType/DdsutPortType, PdmEventType)
- Fixed Grantlee template svc_translation.cpp.grantlee:
- Changed {{ idl_enum.name }}_def:: to {{ idl_enum.name }}::
- Fixed .underlying() calls for C++11 scoped enums (enum class)
- Removed generated files from repo (moc_*, *_dtc.h, *_ftc.h)
Validation:
- BUILD_RTI=ON: SUCCESS
- BUILD_RTI=OFF: SUCCESS
- C++17 standard maintained for RTI 7.7 compatibility
- Ubuntu 26.04 Docker environment verified
Remaining Warnings (expected):
- BgViewer, KDChart, KDReports, Poppler-Qt6 not found (optional features)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
18662 files changed
+4115092
-5435
No files matched your search
@@ -0,0 +1,166 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* Interface-Implementation of DangerArea
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
// Own
|
||||
#include "cube_impl.h"
|
||||
#include <Map/coord_translation_functor.h>
|
||||
#include <Map/party_id_to_color_functor.h>
|
||||
#include <MapImpl/map_impl.h>
|
||||
#include <GraphicalObjects/graphical_object_cube.h>
|
||||
|
||||
|
||||
|
||||
// ESRI
|
||||
#include <arcgis/GraphicsOverlay.h>
|
||||
#include <arcgis/Renderer.h>
|
||||
#include <arcgis/PolygonBuilder.h>
|
||||
|
||||
|
||||
// Qt
|
||||
|
||||
|
||||
|
||||
namespace SituationMap
|
||||
{
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// class CubeImpl
|
||||
//-----------------------------------------------------------------------------
|
||||
CubeImpl::CubeImpl(const QString &debugInfo)
|
||||
: Cube() // Interface
|
||||
, BaseClass(debugInfo) // Implementation
|
||||
, m_logger(getLogger("CubeImpl"))
|
||||
{
|
||||
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
|
||||
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
|
||||
}
|
||||
|
||||
CubeImpl::~CubeImpl()
|
||||
{
|
||||
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
|
||||
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
|
||||
}
|
||||
|
||||
double CubeImpl::height() const
|
||||
{
|
||||
return m_height;
|
||||
}
|
||||
void CubeImpl::setHeight(double height)
|
||||
{
|
||||
m_height = height;
|
||||
}
|
||||
|
||||
|
||||
bool CubeImpl::updateViewImpl()
|
||||
{
|
||||
TRACE_LOG(m_logger) << LOGFUNCTION << " START"
|
||||
<< " symbol=" << m_symbol.value().sidc
|
||||
<< " visibility=" << m_visibility
|
||||
<< " visiTechn=" << m_visibilityTechnical
|
||||
<< " visiTact=" << m_visibilityTactical;
|
||||
|
||||
// pre-condition
|
||||
Esri::ArcGISRuntime::Renderer *curRenderer = nullptr;
|
||||
if (m_graphicsLayer)
|
||||
curRenderer = m_graphicsLayer->renderer();
|
||||
if (!curRenderer)
|
||||
{
|
||||
ERROR_LOG(m_logger) << LOGFUNCTION << " no ArcGISRuntime::Renderer, layername='" << m_logicalLayerName << "'";
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// Destroy if invisible :
|
||||
// 13.09.2018, Norbert Thoden
|
||||
// Regarding ESRI Case #02170796 - [BOS] Crash with Destruction of 3D Scene
|
||||
// To reduce likelihood of crash:
|
||||
// Destroy GraphicalObject (GO, m_mainGraphicalObject) if it becomes invisible
|
||||
// With V100.3.0 the behaviour does not change.
|
||||
// (switching cubes for 180 bldgs on and off)
|
||||
//
|
||||
if (m_visibility)
|
||||
{
|
||||
if (!m_mainGraphicalObject)
|
||||
{
|
||||
m_mainGraphicalObject = new GraphicalObjectCube(m_mapImpl->getEsriGeoView(),
|
||||
m_graphicsLayer,
|
||||
m_debugInfo + QStringLiteral("#GOCube"),
|
||||
m_uniqueMapId);
|
||||
}
|
||||
} else {
|
||||
delete m_mainGraphicalObject;
|
||||
m_mainGraphicalObject = nullptr;
|
||||
return true;
|
||||
}
|
||||
// : Destroy if invisible
|
||||
|
||||
|
||||
GraphicalObjectCube *goCube = static_cast<GraphicalObjectCube *>(m_mainGraphicalObject);
|
||||
if (goCube)
|
||||
{
|
||||
// in former times: partyName was used
|
||||
// it´s replaced by more flexible ExtrusionColorName:
|
||||
// const QString &partyName = m_mapImpl->partyIdToColorFunctor().partyIdToName(m_party.partyId.value());
|
||||
// goCube->setPartyName(partyName);
|
||||
|
||||
const QColor &partyColor= m_mapImpl->partyIdToColorFunctor().partyIdToColor(m_party.partyId.value());
|
||||
if (m_party.partyId.value() > -2) //Use Default: White or TeamColor
|
||||
{
|
||||
goCube->setExtrusionColorName( partyColor.name() );
|
||||
}
|
||||
else // Use given Color //need to be prepared in layerfactory!
|
||||
{
|
||||
goCube->setExtrusionColorName( majorColor().name() );
|
||||
}
|
||||
|
||||
goCube->setPositions(m_positions.positionsTranslated());
|
||||
goCube->setHeight(m_height);
|
||||
}
|
||||
else
|
||||
{
|
||||
ERROR_LOG(m_logger) << LOGFUNCTION << " no m_mainGraphicalObject";
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool success = BaseClass::updateViewImpl();
|
||||
if (!success)
|
||||
ERROR_LOG(m_logger) << LOGFUNCTION << " updateViewImpl failed";
|
||||
|
||||
|
||||
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CubeImpl::init(MapImpl *mapImpl, const QString &logicalLayerName)
|
||||
{
|
||||
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
|
||||
|
||||
bool success = BaseClass::init(mapImpl, logicalLayerName);
|
||||
|
||||
// create underlying object (to save most attributes only there)
|
||||
if (!m_mainGraphicalObject)
|
||||
{
|
||||
m_mainGraphicalObject = new GraphicalObjectCube(m_mapImpl->getEsriGeoView(),
|
||||
m_graphicsLayer,
|
||||
m_debugInfo + QStringLiteral("#GOCube"),
|
||||
m_uniqueMapId);
|
||||
//this MapObject is not very typical, therefore set some attributes:
|
||||
this->setPickable(false);
|
||||
this->setScaleEnable(false);
|
||||
}
|
||||
|
||||
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
|
||||
return success;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace SituationMap
|
||||
Reference in new issue
Block a user