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

290 lines
6.6 KiB
C++
Executable File

/**
* @RDE_HEADER@
* FunctionDialog
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include "function_dialog_export.h"
#include <Map/map.h>
#include <QWidget>
#include <Symbology/symbol_dictionary.h>
// ESRI
#include <arcgis/Map.h>
#include <arcgis/MapGraphicsView.h>
#include <arcgis/GraphicsOverlay.h>
// #define USE_LOCAL_SERVER
class QStandardItemModel;
//----------------------------------------------------------------------------
namespace SituationMap
{
namespace RB
{
class RubberbandBase;
}
class Map;
// TODO: nur fuer Tests exportiert
class FUNCTIONDIALOG_EXPORT FunctionDialog : public QWidget
{
Q_OBJECT
public:
explicit FunctionDialog(Esri::ArcGISRuntime::Map *esriMap,
Esri::ArcGISRuntime::MapGraphicsView *esriView,
QWidget *parent);
explicit FunctionDialog(SituationMap::Map *map);
virtual ~FunctionDialog();
static void addButtonToMap(SituationMap::Map *map, bool isVisible = true);
void init();
void setGraphicsLayer(Esri::ArcGISRuntime::GraphicsOverlay *graphicsLayer);
void setMapPositionString(const QString &mapPosition);
void setPixelSizeString(const QString &text);
void addMapPositionString(const QString &mapPosition);
FunctionDialog(const FunctionDialog &other) = delete; // No copy
FunctionDialog &operator=(const FunctionDialog &other) = delete; // No copy
protected:
void addSimpleLayerTab();
void addLogicalLayerTab();
void addLayerPerformanceTab();
void addGraphicsTab();
void addGraphics3DTab();
void addMessageTab();
void addMapObjectTab();
void addRubberbandTab();
void addRubberband3DTab();
void addToolsTab();
void addViewshedTab();
void addOverlayPlanTab();
void addIconRenderTab();
void addPortalTab();
void addMovePointLuxemburgTab();
void getRotationAndAngle(const QPointF &sectStart, const QPointF &sectEnd, double &rotationDegOut, double &openAngleDegOut);
// void addYourTab();
Esri::ArcGISRuntime::Graphic *createCube(const SituationMap::PositionCont &mapPosCont,
int baseHeight,
double objHeight,
const QString &partyNameValue = QString());
public Q_SLOTS:
void onDestroyed();
void onLayerPerfCreateLayer();
void onGenerateGraphics();
void onGenerateCube();
void onGenerateCubeArray();
void onGenerateStackedCubes();
void onGenerateGraphicsKristenStrandford();
void onGenerateUniqueVaueRendererMountingPoints();
void onGenerate3DGraphicSphereRENDERER();
void onSphereOpacityChangedRENDERER(int opacityValue);
void onGenerate3DGraphicSphere();
void onSphereOpacityChanged(int opacityValue);
void onSphereZValueChanged(int ZValue);
void onGenerate3DGraphicCone();
void onConeOpacityChanged(int opacityValue);
void onConeZValueChanged(int ZValue);
void onConeHeadingChanged(float angle);
void onConeRollChanged(float angle);
void onConePitchChanged(float angle);
void on3dModel();
void on3dModelZValueChanged(int ZValue);
void onGenerate3DGraphicConeUniqueValueRenderer();
void onAddCivilSymbols();
void onMessage();
void onMessageSelect();
void onAddSymbol();
void onSomeParticipants();
void onRubberbandApply(RB::RubberbandBase *);
void onRubberbandAbort(RB::RubberbandBase *);
void onRubberband3DApply(RB::RubberbandBase *);
void onRubberband3DAbort(RB::RubberbandBase *);
void onRubberbandDefineArrow();
void onRubberbandDefineEllipse();
void onRubberbandBoobyTrapSector();
void onRubberbandCheckCoordinates();
void onRubberbandStateSelect();
void onRubberbandTwoInOne();
void onRectCheckCoordinates();
void onPolygonCreate();
void onPolylineCreate();
void onPolylineUpdate();
void onTextCreate();
void onTextUpdate();
void onMapObjectIndicatorCreate();
void onParticipantGetPosition();
void onParticipantGetPositionApplied(RB::RubberbandBase *rubberband = nullptr);
bool createParticipant(const Point3D &origin,
const QString &debugInfo);
void onParticipantCreate();
void onParticipantUpdate();
void onAreaFireCreate();
void onAreaFireUpdate();
void onBuildingCreate();
void onBuildingUpdate();
void onBiologicalAgentCreate();
void onBiologicalAgentUpdate();
void onChemicalAgentCreate();
void onCubeCreate();
void onDangerAreaCreate();
void onDangerAreaUpdate();
void onFunctionalAreaCreate();
void onFunctionalAreaUpdate();
void onGeoImageCreate();
void onMapObjectClicked(const SituationMap::Map::RefPointerMapObjectList &mapObjList,
const QPointF &viewportPosition);
void onSoundAreaCreate();
void onSoundAreaUpdate();
void onHitLineCreate();
void onHitLineUpdate();
void onLineOfSightLineCreate();
void onMineCreate();
void onMineUpdate();
void onMineFieldCreate();
void onMineFieldUpdate();
void onNuclearCreate();
void onNuclearUpdate();
void onChargeEffectCreate();
void onChargeEffectUpdate();
void onBoobyTrapCreate();
void onBoobyTrapUpdate();
void onSingleFireCreate();
void onSingleFireUpdate();
void onShowBasePoint();
void onShowPolizei();
void onObjectIndicator();
void onMeasureLength();
void onStartLocationDisplay();
void onStopLocationDisplay();
void onLoadFile();
void onPortal();
void onMovePoint();
#ifdef USE_LOCAL_SERVER
void onStartLocalService();
void onStopLocalService();
void onStartViewshedSvc();
void onStopViewshedSvc();
void onViewshedInteractive();
void onViewshed();
#endif // USE_LOCAL_SERVER
void onSightFan();
void onViewshedSightFan();
void onLoadPlan();
void onOverlayVisiChanged(bool checked);
void onRemovePlan();
void onRemoveAllPlans();
void onToPdf();
void onDump();
void onOverviewMap();
void onBackupOms();
void onRestoreOms();
void onRemove();
void onRemoveAll();
void onToggleGrid();
void onToggleVisibility();
void onToggleVisibilityTechn();
void onToggleVisibilityTact();
void onToggleSelection();
void onTogglePicking();
void onToggleBoundingBox();
void onToggleBB2();
void onMapRotationChanged();
void onSymbolSizeChanged();
void onSymbolOpacityChanged();
void onDrawOrderChanged();
//void onBuildingPERFORMANCE();
void onMouseWindowPositionChanged(int x, int y);
void onMouseMapPositionChanged(const Point3D &mapPos, bool isValid);
void onMouseGeoPositionChanged(const Point3D &geoPos, bool isValid);
void onExtendChanged();
private:
class Private;
/**
* The private d-pointer to not break BC when changing internals of this class
*/
Private *d = nullptr;
};
} // namespace SituationMap