15 #include <osgEarth/MapCallback>
16 #include <osgEarth/GeoData>
22 #include <osg/observer_ptr>
33 class FeatureModelLayer;
36 class TerrainConstraintLayer;
39 class GroundCoverLayer;
40 class RoadSurfaceLayer;
51 class DtModelDefinitionRecord;
58 class DtTerrainPatchObject;
61 class DtOsgEarthDataRequestQueue;
62 class DtOsgEarthDataRequest;
63 class DtOsgEarthFileParser;
123 virtual void onLayerAdded(osgEarth::Layer* layer,
unsigned index);
128 virtual void onLayerRemoved(osgEarth::Layer* layer,
unsigned index);
139 virtual void connectSignals();
142 virtual void disconnectSignals();
147 virtual void syncCurrentScene();
159 virtual DtUnicode findFileNameOfTerrainPatch(
const std::string& terrainDefinition);
163 virtual bool isOsgEarthTerrain(
const DtUnicode& fileName);
166 int getContentGroupKeyTypeFromClassName(
const std::string& className)
const;
169 int getContentItemKeyTypeFromClassName(
const std::string& className)
const;
173 virtual std::string getTerrainContentGroupItemDisplayName(
int type);
176 bool isTerrainContentItemVisibilityCheckboxEnabled(
int type)
const;
186 virtual void populateTerrainPatch(
const DtTerrainPatchObject* terrainPatchObject,
int sequence);
191 virtual void populateFeatureLayer(
const DtFeatureLayer* featureLayer,
int sequence);
196 virtual void populateOceanLayer(
const DtOceanLayer* oceanLayer,
int sequence);
206 virtual void processOsgEarthTerrain(
const std::string& terrainDefinition,
const DtUnicode& fileName);
210 template <
typename T>
211 void populateOsgEarthLayers();
222 virtual void populateOsgEarthTerrain();
225 virtual void populateOsgEarthFragments();
228 virtual void populateImageLayers();
231 virtual void populateElevationLayers();
234 virtual void populateLandCoverLayers();
239 virtual void populateImageLayer(osgEarth::ImageLayer* imageLayer,
int sequence);
244 virtual void populateElevationLayer(osgEarth::ElevationLayer* elevationLayer,
int sequence);
249 virtual void populateLandCoverLayer(osgEarth::LandCoverLayer* layer,
int sequence);
256 virtual void onImageLayerCreated(osgEarth::ImageLayer* imageLayer);
261 virtual void onElevationLayerCreated(osgEarth::ElevationLayer* elevationLayer);
266 virtual void onModelLayerCreated(osgEarth::ModelLayer* modelLayer);
271 virtual void onMaskLayerCreated(osgEarth::TerrainConstraintLayer* maskLayer);
275 virtual void syncImageLayerToOsgEarthFile(osgEarth::ImageLayer* imageLayer);
279 virtual void syncElevationLayerToOsgEarthFile(osgEarth::ElevationLayer* elevationLayer);
283 virtual void syncModelLayerToOsgEarthFile(osgEarth::ModelLayer* modelLayer);
287 virtual void syncMaskLayerToOsgEarthFile(osgEarth::TerrainConstraintLayer* maskLayer);
292 virtual void syncMaskConfigToOsgEarthFile(
const std::string& name,
const std::string& boundary);
295 virtual void removeConfigInOsgEarthFile(
const std::string& key,
const std::string& name);
298 virtual void onOsgEarthTerrainCleared();
308 virtual void slot_terrainPatchToBeDeleted(
const DtTerrainPatch& patch);
320 virtual void slot_featureLayerToBeDeleted(
const DtFeatureLayer& layer);
323 virtual void slot_oceanLayerAdded(
const DtOceanLayer& layer);
326 virtual void slot_oceanLayerToBeDeleted(
const DtOceanLayer& layer);
332 virtual void slot_terrainToBeCleared(
bool reload);
335 virtual void slot_clientAdded();
338 virtual void slot_terrainCleared();
351 virtual void slot_osgEarthFragmentTreeWidget_currentItemChanged(
const std::string& key);
367 virtual void slot_osgEarthFragmentCommitChangesButtonReleased(
const std::vector<DtTerrainEditorInterface::TerrainContentItemKey>& keys);
381 virtual void slot_addFeatureLayerButtonReleased(
const DtUnicode& fileName,
bool toFrontEnd,
bool toSimEngine);
385 virtual void slot_addOceanLayerButtonReleased();
388 virtual void slot_generateBoundaryButton_released();
395 virtual void slot_osgEarthTerrainLayerRequestAdded(
int type,
const std::string& name,
const std::string& driver,
const DtUnicode& url);
402 virtual void slot_osgEarthModelLayerRequestAdded(
const std::string& name,
const std::string& driver,
const DtUnicode& url,
const std::string& wfsType);
409 virtual void slot_generateBoundary(
const std::string& terrainPatchDefinition,
const std::string& name,
bool geocentric,
bool convexHull);
412 virtual void slot_generateCacheButtonReleased();
415 virtual void slot_saveTerrain();
418 virtual void slot_quit();
421 virtual void slot_addData(std::vector<std::string> files, Qt::KeyboardModifiers keyModifiers);
496 virtual void moveCameraToGeoExtent(
const osgEarth::GeoExtent& geoExtent);
501 virtual void moveCameraToTerrainCenter(
const std::string& terrainDefinition);
506 osgEarth::GeoExtent findGeoExtentForGroundCoverLayer(osgEarth::Splat::GroundCoverLayer* layer);
517 osgEarth::GeoExtent findGeoExtentForSplatLayer(osgEarth::Splat::SplatLayer* layer);
530 virtual void updateOsgEarthTerrainProperty(
const std::string& oldName,
const osgEarth::MapOptions& mapOptions,
531 const osgEarth::MapNodeOptions& mapNodeOptions,
const osgEarth::TerrainOptions& terrainOptions);
536 virtual void updateImageLayerProperty(osgEarth::ImageLayer* layer,
const osgEarth::ImageLayerOptions& options);
541 virtual void updateElevationLayerProperty(osgEarth::ElevationLayer* layer,
const osgEarth::ElevationLayerOptions& options);
546 virtual void updateModelLayerProperty(osgEarth::ModelLayer* layer,
const osgEarth::ModelLayerOptions& options);
575 virtual void getConfigForOsgEarthTerrainProperty(
const osgEarth::MapOptions& mapOptions,
const osgEarth::MapNodeOptions& mapNodeOptions,
576 const osgEarth::TerrainOptions& terrainOptions, osgEarth::Config& mapConfig, osgEarth::Config& optionConfig);
582 virtual void getConfigForImageLayer(osgEarth::ImageLayer* layer,
const osgEarth::ImageLayerOptions& options, osgEarth::Config& optionConfig);
588 virtual void getConfigForElevationLayer(osgEarth::ElevationLayer* layer,
const osgEarth::ElevationLayerOptions& options, osgEarth::Config& optionConfig);
594 virtual void getConfigForModelLayer(osgEarth::ModelLayer* layer,
const osgEarth::ModelLayerOptions& options, osgEarth::Config& optionConfig);
600 virtual void getConfigForMaskLayer(osgEarth::TerrainConstraintLayer* layer,
const osgEarth::MaskLayerOptions& options, osgEarth::Config& optionConfig);
610 virtual void setOsgEarthFragmentOptions(
const DtOsgEarthFile* file);
628 DtOsgEarthDataRequest* createOsgEarthModelLayerRequest(
const std::string& name,
const std::string& driver,
const DtUnicode& url,
const std::string& wfsType);
632 virtual void reloadTerrainPatch(
const std::string& terrainDefinition);
635 virtual void reloadOsgEarthTerrain();
639 virtual DtTerrainPatch* findTerrainPatch(
const std::string& defintion);
643 virtual DtFeatureLayer* findFeatureLayer(
const std::string& name);
647 virtual DtOceanLayer* findOceanLayer(
const std::string& name);
654 virtual void removeTemplateFiles();
664 virtual void addData(
const std::string& url, QFlags<Qt::KeyboardModifier> keyModifiers);
670 virtual void saveTerrain();
673 virtual void saveTerrainPatches();
676 virtual void saveFeatureLayers();
679 virtual void saveOceanLayers();
682 virtual void saveImageLayers();
685 virtual void saveElevationLayers();
688 virtual void saveModelLayers();
691 virtual void saveBuildingLayers();
694 virtual void saveLandCoverLayers();
697 virtual void saveGroundCoverLayers();
700 virtual void saveRoadSurfaceLayers();
703 virtual void saveSplatLayers();
706 virtual void saveOsgEarthTerrain();
722 virtual void saveImageLayer(osgEarth::ImageLayer* layer);
726 virtual void saveElevationLayer(osgEarth::ElevationLayer* layer);
730 virtual void saveModelLayer(osgEarth::ModelLayer* layer);
734 virtual void saveBuildingLayer(osgEarth::Buildings::BuildingLayer* layer);
738 virtual void saveLandCoverLayer(osgEarth::LandCoverLayer* layer);
742 virtual void saveGroundCoverLayer(osgEarth::Splat::GroundCoverLayer* layer);
746 virtual void saveRoadSurfaceLayer(osgEarth::Splat::RoadSurfaceLayer* layer);
750 virtual void saveSplatLayer(osgEarth::Splat::SplatLayer* layer);
754 virtual void saveOsgEarthLayer(osgEarth::Layer* layer);
762 virtual void removeTerrain();
765 virtual void removeTerrainPatches();
768 virtual void removeFeatureLayers();
771 virtual void removeOsgEarthFeatureLayers();
774 virtual void removeOceanLayers();
777 virtual void removeImageLayers();
780 virtual void removeElevationLayers();
783 virtual void removeModelLayers();
786 virtual void removeBuildingLayers();
789 virtual void removeLandCoverLayers();
792 virtual void removeGroundCoverLayers();
795 virtual void removeRoadSurfaceLayers();
798 virtual void removeSplatLayers();
801 virtual void removeOsgEarthTerrain();
817 virtual void removeImageLayer(osgEarth::ImageLayer* layer);
821 virtual void removeElevationLayer(osgEarth::ElevationLayer* layer);
825 virtual void removeModelLayer(osgEarth::ModelLayer* layer);
829 virtual void removeBuildingLayer(osgEarth::Buildings::BuildingLayer* layer);
833 virtual void removeLandCoverLayer(osgEarth::LandCoverLayer* layer);
837 virtual void removeGroundCoverLayer(osgEarth::Splat::GroundCoverLayer* layer);
841 virtual void removeRoadSurfaceLayer(osgEarth::Splat::RoadSurfaceLayer* layer);
845 virtual void removeSplatLayer(osgEarth::Splat::SplatLayer* layer);
849 virtual void removeOsgEarthLayer(osgEarth::Layer* layer);
857 virtual void setTerrainVisibility(
bool visible);
861 virtual void setTerrainPatchesVisibility(
bool visible);
865 virtual void setFeatureLayersVisibility(
bool visible);
869 virtual void setOceanLayersVisibility(
bool visible);
873 virtual void setImageLayersVisibility(
bool visible);
877 template <
typename T>
878 void setOsgEarthLayerVisibility(
bool visible);
882 virtual void setOsgEarthTerrainVisibility(
bool visible);
887 virtual void setTerrainPatchVisibility(
DtTerrainPatch* patch,
bool visible);
892 virtual void setFeatureLayerVisibility(
DtFeatureLayer* feature,
bool visible);
897 virtual void setOceanLayerVisibility(
DtOceanLayer* ocean,
bool visible);
901 virtual void createOsgEarthTerrain();
904 virtual void saveOsgEarthTerrain(
const DtUnicode& fileName);
908 virtual DtUnicode generateOsgEarthTerrainFileName();
916 virtual void removeImageLayerFromFile(osgEarth::ImageLayer* layer);
919 virtual void removeElevationLayerFromFile(osgEarth::ElevationLayer* layer);
922 virtual void removeModelLayerFromFile(osgEarth::ModelLayer* layer);
925 virtual void removeMaskLayerFromFile(osgEarth::TerrainConstraintLayer* layer);
938 osg::observer_ptr<osgEarth::Map>
myMap;
static bool myDontShowReloadTerrainWarningMessageBox
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:952
DtOsgEarthFileParser.
Definition: DtOsgEarthFileParser.h:501
bool myReloadFlag
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:946
The feature layer is a type of terrain layer which contains features, such as points, lines, areas, and props created from them.
Definition: DtFeatureLayer.h:25
std::set< DtUnicode > myTemplateFiles
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:934
A DtOceanLayerRecord contains the information to add dynamic water.
Definition: DtOceanLayerRecord.h:21
Contains DLL export macros.
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
makArchives::DtTerrainRecord myOriginalTerrainRecord
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:950
DtOsgEarthFileParser * myOsgEarthFileParser
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:944
DtOsgEarthDataRequestQueue * myOsgEarthDataRequestQueue
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:943
DtSignalConnectionManager mySignals
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:941
Definition: featureContext.h:36
A DtFeatureLayerRecord contains the information to add features from a single source file and ruleset...
Definition: DtFeatureLayerRecord.h:22
DtOsgEarthDataRequestQueue.
Definition: DtOsgEarthDataRequest.h:171
DtUnicode myOsgEarthTerrainFileName
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:930
std::string myOsgEarthTerrainName
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:931
std::string myOsgEarthTerrainDir
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:932
osg::observer_ptr< osgEarth::Map > myMap
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:938
A container for a single piece of terrain, containing settings needed to recreate it...
Definition: DtTerrainPatch.h:42
DtTerrainEditorInterface * myInterface
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:940
DtTerrainEditorInterface.
Definition: DtTerrainEditorInterface.h:59
A DtModelDefinitionRecord will serialize a terrain patch model definition.
Definition: DtModelDefinitionRecord.h:20
A DtTerrainPatchObject contains the methods for loading a file as a terrain. When loading a file as a...
Definition: DtTerrainPatchObject.h:35
int myInsertIndex
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:948
DtTerrainEditorMapCallbak.
Definition: DtTerrainEditorLogic.h:113
Contains makVrv::DtVirtualBaseClass class.
osg::observer_ptr< osgEarth::MapNode > myMapNode
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:937
Record of a VR-Vantage terrain Contains: Terrain coordinate system Terrain patches Feature layers Ter...
Definition: DtTerrainRecord.h:29
Contains the DtTerrainEditorInterface class declaration.
TerrainContentItemType
Definition: DtTerrainEditorInterface.h:64
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtSignalConnectionManager myWhileTerrainIsLoadedSignals
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:942
std::string myReloadModelName
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:947
DtTerrainEditorInterface::TerrainContentItemKey myOsgEarthTerrainKey
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:935
DtDe & myDe
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:928
Creator class for DtOsgEarthProfileLogic.
Definition: DtTerrainEditorLogic.h:958
The ocean layer is a type of terrain layer which contains information about an area that should be re...
Definition: DtOceanLayer.h:25
Base class to provide boost signal/slot management.
std::string myTemplatePath
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:933
TerrainContentItemKey.
Definition: DtTerrainEditorInterface.h:110
DtTerrainEditorLogic.
Definition: DtTerrainEditorLogic.h:69
std::string myOsgEarthTerrainDefinition
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:929
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
DtOsgEarthFile.
Definition: DtOsgEarthFileParser.h:32
DtOsgEarthDataRequest.
Definition: DtOsgEarthDataRequest.h:24
#define DT_DLL_VRVTERRAINEDITOR
Definition: vrvTerrainEditor.h:25
bool myNeedSaveEarthFile
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:945
Contains makArchives::DtTerrainRecord class.
std::string myMedfTerrainDir
Toggles the visibility of the terrain.
Definition: DtTerrainEditorLogic.h:936
DtTerrainEditorLogic * myLogic
Definition: DtTerrainEditorLogic.h:131