14 #include <osgEarth/MapCallback>
15 #include <osgEarth/GeoData>
17 #include <osgEarth/FeatureModelLayer>
18 #include <osgEarthAerodromes/AerodromeLayer>
23 #include <osg/observer_ptr>
42 class GroundCoverLayer;
43 class RoadSurfaceLayer;
54 class DtModelDefinitionRecord;
60 class DtTerrainEditorInterface;
62 class DtTerrainPatchObject;
65 class DtOsgEarthDataRequestQueue;
66 class DtOsgEarthDataRequest;
67 class DtOsgEarthFileParser;
101 virtual void onLayerAdded(osgEarth::Layer* layer,
unsigned index);
106 virtual void onLayerRemoved(osgEarth::Layer* layer,
unsigned index);
117 virtual void connectSignals();
120 virtual void disconnectSignals();
123 virtual void syncCurrentScene();
128 virtual void populateTerrainPatch(
const DtTerrainPatchObject* terrainPatchObject,
int sequence);
133 virtual void populateFeatureLayer(
const DtFeatureLayer* featureLayer,
int sequence);
139 virtual void populateOceanLayer(
const DtOceanLayer* oceanLayer,
int sequence);
148 virtual DtUnicode findFileNameOfTerrainPatch(
const std::string& terrainDefinition);
152 virtual bool isOsgEarthTerrain(
const DtUnicode& fileName);
156 virtual std::string getTerrainContentGroupItemDisplayName(
int type);
161 virtual void processOsgEarthTerrain(
const std::string& terrainDefinition,
const DtUnicode& fileName);
167 virtual void populateOsgEarthTerrain();
170 virtual void populateOsgEarthFragments();
173 virtual void populateAerodromeLayers();
176 virtual void populateFeatureSourceLayers();
179 virtual void populateFeatureModelLayers();
182 virtual void populateImageLayers();
185 virtual void populateElevationLayers();
188 virtual void populateModelLayers();
191 virtual void populateMaskLayers();
194 virtual void populateBuildingLayers();
197 virtual void populateLandCoverLayers();
200 virtual void populateGroundCoverLayers();
204 virtual void populateGroundCovers(osgEarth::Splat::GroundCoverLayer* groundCoverLayer);
207 virtual void populateRoadSurfaceLayers();
210 virtual void populateSplatLayers();
215 virtual void populateImageLayer(osgEarth::ImageLayer* imageLayer,
int sequence);
220 virtual void populateAerodromeLayer(osgEarth::Aerodrome::AerodromeLayer* aerodromeLayer,
int sequence);
225 virtual void populateFeatureSourceLayer(osgEarth::FeatureSource* featureSourceLayer,
int sequence);
230 virtual void populateFeatureModelLayer(osgEarth::FeatureModelLayer* featureModelLayer,
int sequence);
235 virtual void populateElevationLayer(osgEarth::ElevationLayer* elevationLayer,
int sequence);
240 virtual void populateModelLayer(osgEarth::ModelLayer* modelLayer,
int sequence);
245 virtual void populateMaskLayer(osgEarth::MaskLayer* maskLayer,
int sequence);
250 virtual void populateBuildingLayer(osgEarth::Buildings::BuildingLayer* buildingLayer,
int sequence);
255 virtual void populateLandCoverLayer(osgEarth::LandCoverLayer* layer,
int sequence);
260 virtual void populateGroundCoverLayer(osgEarth::Splat::GroundCoverLayer* layer,
int sequence);
270 virtual void populateRoadSurfaceLayer(osgEarth::Splat::RoadSurfaceLayer* layer,
int sequence);
275 virtual void populateSplatLayer(osgEarth::Splat::SplatLayer* layer,
int sequence);
282 virtual void onImageLayerCreated(osgEarth::ImageLayer* imageLayer);
287 virtual void onElevationLayerCreated(osgEarth::ElevationLayer* elevationLayer);
292 virtual void onModelLayerCreated(osgEarth::ModelLayer* modelLayer);
297 virtual void onMaskLayerCreated(osgEarth::MaskLayer* maskLayer);
301 virtual void syncImageLayerToOsgEarthFile(osgEarth::ImageLayer* imageLayer);
305 virtual void syncElevationLayerToOsgEarthFile(osgEarth::ElevationLayer* elevationLayer);
309 virtual void syncModelLayerToOsgEarthFile(osgEarth::ModelLayer* modelLayer);
313 virtual void syncMaskLayerToOsgEarthFile(osgEarth::MaskLayer* maskLayer);
318 virtual void syncMaskConfigToOsgEarthFile(
const std::string& name,
const std::string& boundary);
321 virtual void removeConfigInOsgEarthFile(
const std::string& key,
const std::string& name);
324 virtual void onOsgEarthTerrainCleared();
334 virtual void slot_terrainPatchToBeDeleted(
const DtTerrainPatch& patch);
346 virtual void slot_featureLayerToBeDeleted(
const DtFeatureLayer& layer);
349 virtual void slot_oceanLayerAdded(
const DtOceanLayer& layer);
352 virtual void slot_oceanLayerToBeDeleted(
const DtOceanLayer& layer);
355 virtual void slot_terrainCleared();
367 const std::string& oldName,
const std::string& newName);
380 virtual void slot_osgEarthFragmentTreeWidget_currentItemChanged(
const std::string& key);
396 virtual void slot_osgEarthFragmentCommitChangesButtonReleased(
const std::vector<DtTerrainEditorInterface::TerrainContentItemKey>& keys);
417 virtual void slot_addTerrainPatchButtonReleased(
const DtUnicode& fileName);
421 virtual void slot_addFeatureLayerButtonReleased(
const DtUnicode& fileName);
425 virtual void slot_addOceanLayerButtonReleased();
428 virtual void slot_generateBoundaryButton_released();
435 virtual void slot_osgEarthTerrainLayerRequestAdded(
int type,
const std::string& name,
const std::string& driver,
const DtUnicode& url);
442 virtual void slot_osgEarthModelLayerRequestAdded(
const std::string& name,
const std::string& driver,
const DtUnicode& url,
const std::string& wfsType);
449 virtual void slot_generateBoundary(
const std::string& terrainPatchDefinition,
const std::string& name,
bool geocentric,
bool convexHull);
452 virtual void slot_generateCacheButtonReleased();
455 virtual void slot_saveTerrain();
458 virtual void slot_quit();
461 virtual void slot_addData(std::vector<std::string> files);
523 virtual void moveCameraToGeoExtent(
const osgEarth::GeoExtent& geoExtent);
528 virtual void moveCameraToTerrainCenter(
const std::string& terrainDefinition);
533 osgEarth::GeoExtent findGeoExtentForGroundCoverLayer(osgEarth::Splat::GroundCoverLayer* layer);
544 osgEarth::GeoExtent findGeoExtentForSplatLayer(osgEarth::Splat::SplatLayer* layer);
557 virtual void updateOsgEarthTerrainProperty(
const std::string& oldName,
const osgEarth::MapOptions& mapOptions,
558 const osgEarth::MapNodeOptions& mapNodeOptions,
const osgEarth::TerrainOptions& terrainOptions);
563 virtual void updateImageLayerProperty(osgEarth::ImageLayer* layer,
const osgEarth::ImageLayerOptions& options);
568 virtual void updateElevationLayerProperty(osgEarth::ElevationLayer* layer,
const osgEarth::ElevationLayerOptions& options);
573 virtual void updateModelLayerProperty(osgEarth::ModelLayer* layer,
const osgEarth::ModelLayerOptions& options);
602 virtual void getConfigForOsgEarthTerrainProperty(
const osgEarth::MapOptions& mapOptions,
const osgEarth::MapNodeOptions& mapNodeOptions,
603 const osgEarth::TerrainOptions& terrainOptions, osgEarth::Config& mapConfig, osgEarth::Config& optionConfig);
609 virtual void getConfigForImageLayer(osgEarth::ImageLayer* layer,
const osgEarth::ImageLayerOptions& options, osgEarth::Config& optionConfig);
615 virtual void getConfigForElevationLayer(osgEarth::ElevationLayer* layer,
const osgEarth::ElevationLayerOptions& options, osgEarth::Config& optionConfig);
621 virtual void getConfigForModelLayer(osgEarth::ModelLayer* layer,
const osgEarth::ModelLayerOptions& options, osgEarth::Config& optionConfig);
627 virtual void getConfigForMaskLayer(osgEarth::MaskLayer* layer,
const osgEarth::MaskLayerOptions& options, osgEarth::Config& optionConfig);
641 virtual void setOsgEarthFragmentOptions(
const DtOsgEarthFile* file);
659 DtOsgEarthDataRequest* createOsgEarthModelLayerRequest(
const std::string& name,
const std::string& driver,
const DtUnicode& url,
const std::string& wfsType);
663 virtual void reloadTerrainPatch(
const std::string& terrainDefinition);
666 virtual void reloadOsgEarthTerrain();
670 virtual DtTerrainPatch* findTerrainPatch(
const std::string& defintion);
674 virtual DtFeatureLayer* findFeatureLayer(
const std::string& name);
678 virtual DtOceanLayer* findOceanLayer(
const std::string& name);
685 virtual void removeTemplateFiles();
688 virtual void addData(
const std::string& url);
694 virtual void saveTerrain();
697 virtual void saveTerrainPatches();
700 virtual void saveFeatureLayers();
703 virtual void saveOceanLayers();
706 virtual void saveImageLayers();
709 virtual void saveElevationLayers();
712 virtual void saveModelLayers();
715 virtual void saveBuildingLayers();
718 virtual void saveLandCoverLayers();
721 virtual void saveGroundCoverLayers();
724 virtual void saveRoadSurfaceLayers();
727 virtual void saveSplatLayers();
730 virtual void saveOsgEarthTerrain();
746 virtual void saveImageLayer(osgEarth::ImageLayer* layer);
750 virtual void saveElevationLayer(osgEarth::ElevationLayer* layer);
754 virtual void saveModelLayer(osgEarth::ModelLayer* layer);
758 virtual void saveBuildingLayer(osgEarth::Buildings::BuildingLayer* layer);
762 virtual void saveLandCoverLayer(osgEarth::LandCoverLayer* layer);
766 virtual void saveGroundCoverLayer(osgEarth::Splat::GroundCoverLayer* layer);
770 virtual void saveRoadSurfaceLayer(osgEarth::Splat::RoadSurfaceLayer* layer);
774 virtual void saveSplatLayer(osgEarth::Splat::SplatLayer* layer);
778 virtual void saveOsgEarthLayer(osgEarth::Layer* layer);
786 virtual void removeTerrain();
789 virtual void removeTerrainPatches();
792 virtual void removeFeatureLayers();
795 virtual void removeOceanLayers();
798 virtual void removeImageLayers();
801 virtual void removeElevationLayers();
804 virtual void removeModelLayers();
807 virtual void removeBuildingLayers();
810 virtual void removeLandCoverLayers();
813 virtual void removeGroundCoverLayers();
816 virtual void removeRoadSurfaceLayers();
819 virtual void removeSplatLayers();
822 virtual void removeOsgEarthTerrain();
838 virtual void removeImageLayer(osgEarth::ImageLayer* layer);
842 virtual void removeElevationLayer(osgEarth::ElevationLayer* layer);
846 virtual void removeModelLayer(osgEarth::ModelLayer* layer);
850 virtual void removeBuildingLayer(osgEarth::Buildings::BuildingLayer* layer);
854 virtual void removeLandCoverLayer(osgEarth::LandCoverLayer* layer);
858 virtual void removeGroundCoverLayer(osgEarth::Splat::GroundCoverLayer* layer);
862 virtual void removeRoadSurfaceLayer(osgEarth::Splat::RoadSurfaceLayer* layer);
866 virtual void removeSplatLayer(osgEarth::Splat::SplatLayer* layer);
870 virtual void removeOsgEarthLayer(osgEarth::Layer* layer);
878 virtual void setTerrainVisibility(
bool visible);
882 virtual void setTerrainPatchesVisibility(
bool visible);
886 virtual void setFeatureLayersVisibility(
bool visible);
890 virtual void setOceanLayersVisibility(
bool visible);
894 virtual void setImageLayersVisibility(
bool visible);
898 virtual void setElevationLayersVisibility(
bool visible);
902 virtual void setModelLayersVisibility(
bool visible);
906 virtual void setBuildingLayersVisibility(
bool visible);
910 virtual void setLandCoverLayersVisibility(
bool visible);
914 virtual void setGroundCoverLayersVisibility(
bool visible);
918 virtual void setRoadSurfaceLayersVisibility(
bool visible);
922 virtual void setSplatLayersVisibility(
bool visible);
926 virtual void setOsgEarthTerrainVisibility(
bool visible);
931 virtual void setTerrainPatchVisibility(
DtTerrainPatch* patch,
bool visible);
936 virtual void setFeatureLayerVisibility(
DtFeatureLayer* feature,
bool visible);
941 virtual void setOceanLayerVisibility(
DtOceanLayer* ocean,
bool visible);
946 virtual void setVisibleLayerVisibility(osgEarth::VisibleLayer* layer,
bool visible);
951 virtual void setVisibleLayerOpacity(osgEarth::VisibleLayer* layer,
double opacity);
956 virtual void setVisibleLayerMinVisibleRange(osgEarth::VisibleLayer* layer,
double minRange);
961 virtual void setVisibleLayerMaxVisibleRange(osgEarth::VisibleLayer* layer,
double maxRange);
966 virtual void setModelLayerLighting(osgEarth::ModelLayer* layer,
bool lighting);
987 virtual void createOsgEarthTerrain();
990 virtual void saveOsgEarthTerrain(
const DtUnicode& fileName);
994 virtual DtUnicode generateOsgEarthTerrainFileName();
1002 virtual void removeImageLayerFromFile(osgEarth::ImageLayer* layer);
1005 virtual void removeElevationLayerFromFile(osgEarth::ElevationLayer* layer);
1008 virtual void removeModelLayerFromFile(osgEarth::ModelLayer* layer);
1011 virtual void removeMaskLayerFromFile(osgEarth::MaskLayer* layer);
static bool myDontShowReloadTerrainWarningMessageBox
Definition: DtTerrainEditorLogic.h:1045
DtOsgEarthFileParser.
Definition: DtOsgEarthFileParser.h:501
bool myReloadFlag
Definition: DtTerrainEditorLogic.h:1039
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:28
std::set< DtUnicode > myTemplateFiles
Definition: DtTerrainEditorLogic.h:1028
std::vector< osg::ref_ptr< osgEarth::Aerodrome::AerodromeLayer > > AerodromeLayerVector
Definition: DtTerrainEditorLogic.h:77
A DtOceanLayerRecord contains the information to add dynamic water.
Definition: DtOceanLayerRecord.h:21
Contains DLL export macros.
Virtual base class.
Definition: DtVirtualBaseClass.h:22
A unicode string.
Definition: DtUnicode.h:33
DtOsgEarthFileParser * myOsgEarthFileParser
Definition: DtTerrainEditorLogic.h:1037
DtOsgEarthDataRequestQueue * myOsgEarthDataRequestQueue
Definition: DtTerrainEditorLogic.h:1036
DtSignalConnectionManager mySignals
Definition: DtTerrainEditorLogic.h:1035
A DtFeatureLayerRecord contains the information to add features from a single source file and ruleset...
Definition: DtFeatureLayerRecord.h:25
std::vector< osg::ref_ptr< osgEarth::FeatureSource > > FeatureSourceLayerVector
Definition: DtTerrainEditorLogic.h:76
DtOsgEarthDataRequestQueue.
Definition: DtOsgEarthDataRequest.h:170
DtUnicode myOsgEarthTerrainFileName
Definition: DtTerrainEditorLogic.h:1024
std::string myOsgEarthTerrainName
Definition: DtTerrainEditorLogic.h:1025
std::string myOsgEarthTerrainDir
Definition: DtTerrainEditorLogic.h:1026
osg::observer_ptr< osgEarth::Map > myMap
Definition: DtTerrainEditorLogic.h:1032
A container for a single piece of terrain, containing settings needed to recreate it...
Definition: DtTerrainPatch.h:40
DtTerrainEditorInterface * myInterface
Definition: DtTerrainEditorLogic.h:1034
DtTerrainEditorInterface.
Definition: DtTerrainEditorInterface.h:54
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.
Definition: DtTerrainPatchObject.h:37
int myInsertIndex
Definition: DtTerrainEditorLogic.h:1041
std::set< std::string > myImageLayerExtensions
Definition: DtTerrainEditorLogic.h:1042
DtTerrainEditorMapCallbak.
Definition: DtTerrainEditorLogic.h:91
Contains makVrv::DtVirtualBaseClass class.
osg::observer_ptr< osgEarth::MapNode > myMapNode
Definition: DtTerrainEditorLogic.h:1031
Contains the DtTerrainEditorInterface class declaration.
TerrainContentItemType
Definition: DtTerrainEditorInterface.h:59
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
std::vector< osg::ref_ptr< osgEarth::FeatureModelLayer > > FeatureModelLayerVector
Definition: DtTerrainEditorLogic.h:75
std::string myReloadModelName
Definition: DtTerrainEditorLogic.h:1040
DtTerrainEditorInterface::TerrainContentItemKey myOsgEarthTerrainKey
Definition: DtTerrainEditorLogic.h:1029
DtDe & myDe
Definition: DtTerrainEditorLogic.h:1022
Creator class for DtOsgEarthProfileLogic.
Definition: DtTerrainEditorLogic.h:1051
std::set< std::string > myElevationLayerExtensions
Definition: DtTerrainEditorLogic.h:1043
The ocean layer is a type of terrain layer which contains information about an area that should be re...
Definition: DtOceanLayer.h:27
Base class to provide boost signal/slot management.
std::string myTemplatePath
Definition: DtTerrainEditorLogic.h:1027
TerrainContentItemKey.
Definition: DtTerrainEditorInterface.h:99
DtTerrainEditorLogic logic class to drive the DtTerrainEditorWidget.
Definition: DtTerrainEditorLogic.h:73
std::string myOsgEarthTerrainDefinition
Definition: DtTerrainEditorLogic.h:1023
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtOsgEarthFile.
Definition: DtOsgEarthFileParser.h:32
DtOsgEarthDataRequest.
Definition: DtOsgEarthDataRequest.h:24
#define DT_DLL_VRVTERRAINEDITOR
Definition: vrvTerrainEditor.h:25
bool myNeedSaveEarthFile
Definition: DtTerrainEditorLogic.h:1038
std::string myMedfTerrainDir
Definition: DtTerrainEditorLogic.h:1030
DtTerrainEditorLogic * myLogic
Definition: DtTerrainEditorLogic.h:109