14 #include <osgEarth/MapCallback>
15 #include <osgEarth/GeoData>
20 #include <osg/observer_ptr>
31 class FeatureModelLayer;
34 class TerrainConstraintLayer;
37 class GroundCoverLayer;
38 class RoadSurfaceLayer;
49 class DtModelDefinitionRecord;
56 class DtTerrainPatchObject;
59 class DtOsgEarthDataRequestQueue;
60 class DtOsgEarthDataRequest;
61 class DtOsgEarthFileParser;
121 virtual void onLayerAdded(osgEarth::Layer* layer,
unsigned index);
126 virtual void onLayerRemoved(osgEarth::Layer* layer,
unsigned index);
137 virtual void connectSignals();
140 virtual void disconnectSignals();
145 virtual void syncCurrentScene();
157 virtual DtUnicode findFileNameOfTerrainPatch(
const std::string& terrainDefinition);
161 virtual bool isOsgEarthTerrain(
const DtUnicode& fileName);
164 int getContentGroupKeyTypeFromClassName(std::string className)
const;
167 int getContentItemKeyTypeFromClassName(std::string className)
const;
171 virtual std::string getTerrainContentGroupItemDisplayName(
int type);
174 bool isTerrainContentItemVisibilityCheckboxEnabled(
int type)
const;
184 virtual void populateTerrainPatch(
const DtTerrainPatchObject* terrainPatchObject,
int sequence);
189 virtual void populateFeatureLayer(
const DtFeatureLayer* featureLayer,
int sequence);
194 virtual void populateOceanLayer(
const DtOceanLayer* oceanLayer,
int sequence);
204 virtual void processOsgEarthTerrain(
const std::string& terrainDefinition,
const DtUnicode& fileName);
208 template <
typename T>
209 void populateOsgEarthLayers();
220 virtual void populateOsgEarthTerrain();
223 virtual void populateOsgEarthFragments();
226 virtual void populateImageLayers();
229 virtual void populateElevationLayers();
232 virtual void populateLandCoverLayers();
237 virtual void populateImageLayer(osgEarth::ImageLayer* imageLayer,
int sequence);
242 virtual void populateElevationLayer(osgEarth::ElevationLayer* elevationLayer,
int sequence);
247 virtual void populateLandCoverLayer(osgEarth::LandCoverLayer* layer,
int sequence);
254 virtual void onImageLayerCreated(osgEarth::ImageLayer* imageLayer);
259 virtual void onElevationLayerCreated(osgEarth::ElevationLayer* elevationLayer);
264 virtual void onModelLayerCreated(osgEarth::ModelLayer* modelLayer);
269 virtual void onMaskLayerCreated(osgEarth::TerrainConstraintLayer* maskLayer);
273 virtual void syncImageLayerToOsgEarthFile(osgEarth::ImageLayer* imageLayer);
277 virtual void syncElevationLayerToOsgEarthFile(osgEarth::ElevationLayer* elevationLayer);
281 virtual void syncModelLayerToOsgEarthFile(osgEarth::ModelLayer* modelLayer);
285 virtual void syncMaskLayerToOsgEarthFile(osgEarth::TerrainConstraintLayer* maskLayer);
290 virtual void syncMaskConfigToOsgEarthFile(
const std::string& name,
const std::string& boundary);
293 virtual void removeConfigInOsgEarthFile(
const std::string& key,
const std::string& name);
296 virtual void onOsgEarthTerrainCleared();
306 virtual void slot_terrainPatchToBeDeleted(
const DtTerrainPatch& patch);
318 virtual void slot_featureLayerToBeDeleted(
const DtFeatureLayer& layer);
321 virtual void slot_oceanLayerAdded(
const DtOceanLayer& layer);
324 virtual void slot_oceanLayerToBeDeleted(
const DtOceanLayer& layer);
330 virtual void slot_terrainToBeCleared(
bool reload);
333 virtual void slot_clientAdded();
336 virtual void slot_terrainCleared();
349 virtual void slot_osgEarthFragmentTreeWidget_currentItemChanged(
const std::string& key);
365 virtual void slot_osgEarthFragmentCommitChangesButtonReleased(
const std::vector<DtTerrainEditorInterface::TerrainContentItemKey>& keys);
379 virtual void slot_addFeatureLayerButtonReleased(
const DtUnicode& fileName,
bool toFrontEnd,
bool toSimEngine);
383 virtual void slot_addOceanLayerButtonReleased();
386 virtual void slot_generateBoundaryButton_released();
393 virtual void slot_osgEarthTerrainLayerRequestAdded(
int type,
const std::string& name,
const std::string& driver,
const DtUnicode& url);
400 virtual void slot_osgEarthModelLayerRequestAdded(
const std::string& name,
const std::string& driver,
const DtUnicode& url,
const std::string& wfsType);
407 virtual void slot_generateBoundary(
const std::string& terrainPatchDefinition,
const std::string& name,
bool geocentric,
bool convexHull);
410 virtual void slot_generateCacheButtonReleased();
413 virtual void slot_saveTerrain();
416 virtual void slot_quit();
419 virtual void slot_addData(std::vector<std::string> files);
484 virtual void moveCameraToGeoExtent(
const osgEarth::GeoExtent& geoExtent);
489 virtual void moveCameraToTerrainCenter(
const std::string& terrainDefinition);
494 osgEarth::GeoExtent findGeoExtentForGroundCoverLayer(osgEarth::Splat::GroundCoverLayer* layer);
505 osgEarth::GeoExtent findGeoExtentForSplatLayer(osgEarth::Splat::SplatLayer* layer);
518 virtual void updateOsgEarthTerrainProperty(
const std::string& oldName,
const osgEarth::MapOptions& mapOptions,
519 const osgEarth::MapNodeOptions& mapNodeOptions,
const osgEarth::TerrainOptions& terrainOptions);
524 virtual void updateImageLayerProperty(osgEarth::ImageLayer* layer,
const osgEarth::ImageLayerOptions& options);
529 virtual void updateElevationLayerProperty(osgEarth::ElevationLayer* layer,
const osgEarth::ElevationLayerOptions& options);
534 virtual void updateModelLayerProperty(osgEarth::ModelLayer* layer,
const osgEarth::ModelLayerOptions& options);
563 virtual void getConfigForOsgEarthTerrainProperty(
const osgEarth::MapOptions& mapOptions,
const osgEarth::MapNodeOptions& mapNodeOptions,
564 const osgEarth::TerrainOptions& terrainOptions, osgEarth::Config& mapConfig, osgEarth::Config& optionConfig);
570 virtual void getConfigForImageLayer(osgEarth::ImageLayer* layer,
const osgEarth::ImageLayerOptions& options, osgEarth::Config& optionConfig);
576 virtual void getConfigForElevationLayer(osgEarth::ElevationLayer* layer,
const osgEarth::ElevationLayerOptions& options, osgEarth::Config& optionConfig);
582 virtual void getConfigForModelLayer(osgEarth::ModelLayer* layer,
const osgEarth::ModelLayerOptions& options, osgEarth::Config& optionConfig);
588 virtual void getConfigForMaskLayer(osgEarth::TerrainConstraintLayer* layer,
const osgEarth::MaskLayerOptions& options, osgEarth::Config& optionConfig);
598 virtual void setOsgEarthFragmentOptions(
const DtOsgEarthFile* file);
616 DtOsgEarthDataRequest* createOsgEarthModelLayerRequest(
const std::string& name,
const std::string& driver,
const DtUnicode& url,
const std::string& wfsType);
620 virtual void reloadTerrainPatch(
const std::string& terrainDefinition);
623 virtual void reloadOsgEarthTerrain();
627 virtual DtTerrainPatch* findTerrainPatch(
const std::string& defintion);
631 virtual DtFeatureLayer* findFeatureLayer(
const std::string& name);
635 virtual DtOceanLayer* findOceanLayer(
const std::string& name);
642 virtual void removeTemplateFiles();
650 virtual void addData(
const std::string& url);
656 virtual void saveTerrain();
659 virtual void saveTerrainPatches();
662 virtual void saveFeatureLayers();
665 virtual void saveOceanLayers();
668 virtual void saveImageLayers();
671 virtual void saveElevationLayers();
674 virtual void saveModelLayers();
677 virtual void saveBuildingLayers();
680 virtual void saveLandCoverLayers();
683 virtual void saveGroundCoverLayers();
686 virtual void saveRoadSurfaceLayers();
689 virtual void saveSplatLayers();
692 virtual void saveOsgEarthTerrain();
708 virtual void saveImageLayer(osgEarth::ImageLayer* layer);
712 virtual void saveElevationLayer(osgEarth::ElevationLayer* layer);
716 virtual void saveModelLayer(osgEarth::ModelLayer* layer);
720 virtual void saveBuildingLayer(osgEarth::Buildings::BuildingLayer* layer);
724 virtual void saveLandCoverLayer(osgEarth::LandCoverLayer* layer);
728 virtual void saveGroundCoverLayer(osgEarth::Splat::GroundCoverLayer* layer);
732 virtual void saveRoadSurfaceLayer(osgEarth::Splat::RoadSurfaceLayer* layer);
736 virtual void saveSplatLayer(osgEarth::Splat::SplatLayer* layer);
740 virtual void saveOsgEarthLayer(osgEarth::Layer* layer);
748 virtual void removeTerrain();
751 virtual void removeTerrainPatches();
754 virtual void removeFeatureLayers();
757 virtual void removeOsgEarthFeatureLayers();
760 virtual void removeOceanLayers();
763 virtual void removeImageLayers();
766 virtual void removeElevationLayers();
769 virtual void removeModelLayers();
772 virtual void removeBuildingLayers();
775 virtual void removeLandCoverLayers();
778 virtual void removeGroundCoverLayers();
781 virtual void removeRoadSurfaceLayers();
784 virtual void removeSplatLayers();
787 virtual void removeOsgEarthTerrain();
803 virtual void removeImageLayer(osgEarth::ImageLayer* layer);
807 virtual void removeElevationLayer(osgEarth::ElevationLayer* layer);
811 virtual void removeModelLayer(osgEarth::ModelLayer* layer);
815 virtual void removeBuildingLayer(osgEarth::Buildings::BuildingLayer* layer);
819 virtual void removeLandCoverLayer(osgEarth::LandCoverLayer* layer);
823 virtual void removeGroundCoverLayer(osgEarth::Splat::GroundCoverLayer* layer);
827 virtual void removeRoadSurfaceLayer(osgEarth::Splat::RoadSurfaceLayer* layer);
831 virtual void removeSplatLayer(osgEarth::Splat::SplatLayer* layer);
835 virtual void removeOsgEarthLayer(osgEarth::Layer* layer);
843 virtual void setTerrainVisibility(
bool visible);
847 virtual void setTerrainPatchesVisibility(
bool visible);
851 virtual void setFeatureLayersVisibility(
bool visible);
855 virtual void setOceanLayersVisibility(
bool visible);
859 virtual void setImageLayersVisibility(
bool visible);
863 template <
typename T>
864 void setOsgEarthLayerVisibility(
bool visible);
868 virtual void setOsgEarthTerrainVisibility(
bool visible);
873 virtual void setTerrainPatchVisibility(
DtTerrainPatch* patch,
bool visible);
878 virtual void setFeatureLayerVisibility(
DtFeatureLayer* feature,
bool visible);
883 virtual void setOceanLayerVisibility(
DtOceanLayer* ocean,
bool visible);
887 virtual void createOsgEarthTerrain();
890 virtual void saveOsgEarthTerrain(
const DtUnicode& fileName);
894 virtual DtUnicode generateOsgEarthTerrainFileName();
902 virtual void removeImageLayerFromFile(osgEarth::ImageLayer* layer);
905 virtual void removeElevationLayerFromFile(osgEarth::ElevationLayer* layer);
908 virtual void removeModelLayerFromFile(osgEarth::ModelLayer* layer);
911 virtual void removeMaskLayerFromFile(osgEarth::TerrainConstraintLayer* layer);
924 osg::observer_ptr<osgEarth::Map>
myMap;
static bool myDontShowReloadTerrainWarningMessageBox
Definition: DtTerrainEditorLogic.h:939
DtOsgEarthFileParser.
Definition: DtOsgEarthFileParser.h:501
bool myReloadFlag
Definition: DtTerrainEditorLogic.h:931
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
Definition: DtTerrainEditorLogic.h:920
A DtOceanLayerRecord contains the information to add dynamic water.
Definition: DtOceanLayerRecord.h:21
Contains DLL export macros.
Virtual base class.
Definition: DtVirtualBaseClass.h:19
A unicode string.
Definition: DtUnicode.h:33
makArchives::DtTerrainRecord myOriginalTerrainRecord
Definition: DtTerrainEditorLogic.h:937
DtOsgEarthFileParser * myOsgEarthFileParser
Definition: DtTerrainEditorLogic.h:929
DtOsgEarthDataRequestQueue * myOsgEarthDataRequestQueue
Definition: DtTerrainEditorLogic.h:928
DtSignalConnectionManager mySignals
Definition: DtTerrainEditorLogic.h:927
Definition: featureContext.h:37
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
Definition: DtTerrainEditorLogic.h:916
std::string myOsgEarthTerrainName
Definition: DtTerrainEditorLogic.h:917
std::string myOsgEarthTerrainDir
Definition: DtTerrainEditorLogic.h:918
osg::observer_ptr< osgEarth::Map > myMap
Definition: DtTerrainEditorLogic.h:924
A container for a single piece of terrain, containing settings needed to recreate it...
Definition: DtTerrainPatch.h:40
DtTerrainEditorInterface * myInterface
Definition: DtTerrainEditorLogic.h:926
DtTerrainEditorInterface.
Definition: DtTerrainEditorInterface.h:56
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:933
std::set< std::string > myImageLayerExtensions
Definition: DtTerrainEditorLogic.h:934
DtTerrainEditorMapCallbak.
Definition: DtTerrainEditorLogic.h:111
Contains makVrv::DtVirtualBaseClass class.
osg::observer_ptr< osgEarth::MapNode > myMapNode
Definition: DtTerrainEditorLogic.h:923
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:61
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
std::string myReloadModelName
Definition: DtTerrainEditorLogic.h:932
DtTerrainEditorInterface::TerrainContentItemKey myOsgEarthTerrainKey
Definition: DtTerrainEditorLogic.h:921
DtDe & myDe
Definition: DtTerrainEditorLogic.h:914
Creator class for DtOsgEarthProfileLogic.
Definition: DtTerrainEditorLogic.h:945
std::set< std::string > myElevationLayerExtensions
Definition: DtTerrainEditorLogic.h:935
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
Definition: DtTerrainEditorLogic.h:919
TerrainContentItemKey.
Definition: DtTerrainEditorInterface.h:107
DtTerrainEditorLogic.
Definition: DtTerrainEditorLogic.h:67
std::string myOsgEarthTerrainDefinition
Definition: DtTerrainEditorLogic.h:915
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:930
Contains makArchives::DtTerrainRecord class.
std::string myMedfTerrainDir
Definition: DtTerrainEditorLogic.h:922
DtTerrainEditorLogic * myLogic
Definition: DtTerrainEditorLogic.h:129