VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTerrainEditorInterface.h
Go to the documentation of this file.
1 /*****************************************************************************
2 * Copyright (c) 2021 MAK Technologies, Inc.
3 * All rights reserved.
4 *****************************************************************************/
5 
9 #pragma once
10 
12 #include <vrvUtil/DtUnicode.h>
13 
14 #include <QtCore/QFlags>
15 #include <QtCore/qnamespace.h>
16 
17 namespace osgEarth
18 {
19  class MapOptions;
20  class MapNodeOptions;
21  class TerrainOptions;
22  class ImageLayerOptions;
23  class ElevationLayerOptions;
24  class ModelLayerOptions;
25  class MaskLayerOptions;
26  class LandCoverLayerOptions;
27  namespace Buildings
28  {
29  class BuildingLayerOptions;
30  }
31  namespace Splat
32  {
33  class GroundCoverLayerOptions;
34  class GroundCoverOptions;
35  class RoadSurfaceLayerOptions;
36  class SplatLayerOptions;
37  }
38 }
39 
40 namespace makArchives
41 {
42  class DtModelDefinitionRecord;
43  class DtFeatureLayerRecord;
44  class DtOceanLayerRecord;
45  class DtTerrainRecord;
46 }
47 
48 namespace makVrv
49 {
50  class DtOsgEarthXmlReference;
51  class DtOsgEarthFileParser;
52  class DtTerrainEditorProperties;
53 
60  {
61  public:
62 
63  //Type of the terrain content item.
65  {
104  UnknownType
105  };
106 
111  {
112  public:
113 
116 
121  TerrainContentItemKey(int type, int id, const TerrainContentItemKey& parentKey);
122 
127  TerrainContentItemKey(int type, const std::string& name, const TerrainContentItemKey& parentKey);
128 
134  TerrainContentItemKey(int type, const std::string& name, int parentType, int parentId);
135 
141  TerrainContentItemKey(int type, int id, int parentType, int parentId);
142 
144  void invalid();
145 
148  void setType(int type);
149 
152  void setId(int id);
153 
156  void setParentType(int type);
157 
160  void setParentId(int id);
161 
164  void setParentKey(const TerrainContentItemKey& parentKey);
165 
169  void setName(const std::string& name);
170 
173  const int type() const;
174 
177  const int id() const;
178 
181  const int parentType() const;
182 
185  const int parentId() const;
186 
189  std::string name() const;
190 
192  const bool useName() const;
193 
195  bool operator<(const TerrainContentItemKey&) const;
196 
198  bool operator==(const TerrainContentItemKey&) const;
199 
200  protected:
201  int myType;
202  int myId;
205  bool myUseName;
206  std::string myName;
207  };
208 
212  virtual void addTerrainContentTopLevelItem(const TerrainContentItemKey& key, const std::string& displayName) = 0;
213 
220  virtual void addTerrainContentItem(const TerrainContentItemKey& key, const TerrainContentItemKey& parentKey, const std::string& displayName,
221  int index=-1, bool editable = false, bool checked = true ) = 0;
222 
226  virtual void addOsgEarthFragmentContentTopLevelItem(const std::string& key, const std::string& displayName) = 0;
227 
232  virtual void addOsgEarthFragmentContentItem(const std::string& key, const std::string& parentKey, const std::string& displayName) = 0;
233 
235  virtual void clearTreeWidgets() = 0;
236 
240  virtual void setFocusOnTerrainContentTreeWidgetItem(const TerrainContentItemKey& key, bool expanded = true) = 0;
241 
244  virtual void removeTerrainContentTreeWidgetItem(const TerrainContentItemKey& key) = 0;
245 
248  virtual bool hasTerrainContentTreeWidgetItem(const TerrainContentItemKey& key) = 0;
249 
252  virtual bool hasTerrainPropertyTreeWidgetItem(const TerrainContentItemKey& key) = 0;
253 
255  virtual void cleanOsgEarthFragmentTreeWidget() = 0;
256 
259  virtual void setSelectedOsgEarthFragmentKeys(const std::vector<TerrainContentItemKey>& keys) = 0;
260 
264  virtual void moveTerrainContentTreeWidgetItem(const TerrainContentItemKey& key, bool up) = 0;
265 
268  virtual void setGenerateCacheButtonEnabled(bool enabled) = 0;
269 
272  virtual void setGenerateBoundaryButtonEnabled(bool enabled) = 0;
273 
276  virtual void setSaveTerrainButtonEnabled(bool enabled) = 0;
277 
280  virtual void setCommitChangeButtonEnabled(bool enabled) = 0;
281 
284  virtual void setRevertChangeButtonEnabled(bool enabled) = 0;
285 
288  virtual void enableOsgEarthFragmentTabWidget(bool enabled) = 0;
289 
291  virtual void resizeTerrainPropertyTreeWidget() = 0;
292 
294  virtual void resizeTerrainFragmentTreeWidget() = 0;
295 
297  virtual void setTerrainPropertyTreeItemName(const TerrainContentItemKey& key, const std::string& name) = 0;
298 
300  virtual void setTerrainPropertyTreeItemVisibility(const TerrainContentItemKey& key, bool visible) = 0;
301 
303  virtual void setTerrainContentTreeItemName(const TerrainContentItemKey& key, const std::string& name) = 0;
304 
306  virtual void setTerrainContentTreeItemVisibility(const TerrainContentItemKey& key, bool visible) = 0;
307 
310  virtual void showTerrainPropertyTreeWidgetItem(const TerrainContentItemKey& key) = 0;
311 
314  virtual void showTerrainPropertyTreeWidgetItems(const std::vector<TerrainContentItemKey>& keys) = 0;
315 
319  virtual void setProperties(const TerrainContentItemKey& key, const DtTerrainEditorProperties* props) = 0;
320 
324  virtual bool properties(const TerrainContentItemKey& key, DtTerrainEditorProperties* props) = 0;
325 
328  virtual void showCacheDialog(const std::string& osgEarthTerrainDefinition) = 0;
329 
332  virtual DtUnicode showSaveMtfFileDialog(const DtUnicode& directory) = 0;
333 
336  virtual DtUnicode showSaveOsgEarthFileDialog(const DtUnicode& directory) = 0;
337 
340  virtual void showSaveFileConfirmationMessageBox(const DtUnicode& fileName) = 0;
341 
344  virtual bool showWarnReloadTerrainMessageBox(bool& checked) = 0;
345 
348  virtual bool showReloadTerrainAfterGenerateMaskMessageBox(const std::string& terrainPatch) = 0;
349 
354  virtual bool showChooseLayerTypeMessageBox(const DtUnicode& url, int& type) = 0;
355 
359  virtual void showFileExtensionNotSupportedMessageBox(const DtUnicode& fileName) = 0;
360 
363  virtual void setGenerateBoundaryModels(const std::vector<std::string>& models) = 0;
364 
366  virtual void expandTerrainContentTreeWidget() = 0;
367 
369  virtual void expandOsgEarthFragmentTreeWidget() = 0;
370 
374  virtual int getIndexOfTerrainContentItem(const TerrainContentItemKey& key) = 0;
375 
380  virtual bool checkIfNameDuplicate(const TerrainContentItemKey& key, const std::string& name) = 0;
381 
382  public:
383 
385 
389  boost::signalslib::signal<void(const TerrainContentItemKey& key)> signal_terrainPropertyTreeWidgetItem_currentItemChanged;
390 
393  boost::signalslib::signal<void(const TerrainContentItemKey& key)> signal_terrainContentTreeWidget_itemDoubleClicked;
394 
397  boost::signalslib::signal<void(const std::string& key)> signal_osgEarthFragmentTreeWidget_currentItemChanged;
398 
401  boost::signalslib::signal<void(const TerrainContentItemKey& key)> signal_terrainContentCommitChangesButtonReleased;
402 
405  boost::signalslib::signal<void(const TerrainContentItemKey& key)> signal_terrainContentRevertChangesButtonReleased;
406 
409  boost::signalslib::signal<void(const std::vector<TerrainContentItemKey>& keys)> signal_osgEarthFragmentCommitChangesButtonReleased;
410 
413  boost::signalslib::signal<void(const TerrainContentItemKey& key)> signal_saveTerrainContentTreeWidgetItem;
414 
417  boost::signalslib::signal<void(const TerrainContentItemKey& key)> signal_deleteTerrainContentTreeWidgetItem;
418 
420  boost::signalslib::signal<void()> signal_generateBoundaryButton_released;
421 
426  boost::signalslib::signal<void(const DtUnicode& fileName, bool toFrontEnd, bool toSimEngine)> signal_addFeatureLayerButtonReleased;
427 
430  boost::signalslib::signal<void()> signal_addOceanLayerButtonReleased;
431 
437  boost::signalslib::signal<void(int type, const std::string& name, const std::string& driver, const DtUnicode& url)> signal_osgEarthTerrainLayerRequestAdded;
438 
444  boost::signalslib::signal<void(const std::string& name, const std::string& driver, const DtUnicode& url, const std::string& wfsType)> signal_osgEarthModelLayerRequestAdded;
445 
451  boost::signalslib::signal<void(const std::string& definition, const std::string& name, bool geocentric, bool convexHull)> signal_generateBoundary;
452 
454  boost::signalslib::signal<void()> signal_saveOsgEarthTerrain;
455 
457  boost::signalslib::signal<void()> signal_saveTerrain;
458 
460  boost::signalslib::signal<void()> signal_generateCacheButtonReleased;
461 
463  boost::signalslib::signal<void(std::vector<std::string>, QFlags<Qt::KeyboardModifier>)> signal_addData;
464 
466 
468  //| Signals used to change the runtime property(visibility, visible range, etc) of the terrain content item.
469 
473  boost::signalslib::signal<void(const TerrainContentItemKey& key, bool visible)> signal_visibleLayerVisiblityChanged;
474 
478  boost::signalslib::signal<void(const TerrainContentItemKey& key, double opacity)> signal_visibleLayerOpacityChanged;
479 
483  boost::signalslib::signal<void(const TerrainContentItemKey& key, double minRange)> signal_visibleLayerMinVisibleRangeChanged;
484 
488  boost::signalslib::signal<void(const TerrainContentItemKey& key, double maxRange)> signal_visibleLayerMaxVisibleRangeChanged;
489 
493  boost::signalslib::signal<void(const TerrainContentItemKey& key, bool enabled)> signal_osgEarthDebugModeStateChanged;
494 
498  boost::signalslib::signal<void(const TerrainContentItemKey& key, const std::string& description)> signal_terrainDescriptionChanged;
499 
503  boost::signalslib::signal<void(const TerrainContentItemKey& key, int maxPagedLODs)> signal_terrainMaxPagedLODsChanged;
504 
507  boost::signalslib::signal<void(const TerrainContentItemKey& key, const std::string& name)> signal_oceanLayerNameChanged;
508 
512  boost::signalslib::signal<void(const TerrainContentItemKey& key, bool enabled)> signal_terrainPatchIsPageableStateChanged;
513 
517  boost::signalslib::signal<void(const TerrainContentItemKey& key, double pageOutDistance)> signal_terrainPatchPageOutDistanceChanged;
518 
522  boost::signalslib::signal<void(const TerrainContentItemKey& key, double height)> signal_oceanLayerHeightChanged;
523 
527  boost::signalslib::signal<void(const TerrainContentItemKey& key, int lod)> signal_oceanLayerLodChanged;
528 
530  };
531 }
boost::signalslib::signal< void(int type, const std::string &name, const std::string &driver, const DtUnicode &url)> signal_osgEarthTerrainLayerRequestAdded
The signal emitted when a terrain layer(Image/Elevation) has been added through the gui...
Definition: DtTerrainEditorInterface.h:437
Definition: DtTerrainEditorInterface.h:85
boost::signalslib::signal< void()> signal_generateBoundaryButton_released
The signal emitted when user clicks on the generate boundary button.
Definition: DtTerrainEditorInterface.h:420
Definition: DtTerrainEditorInterface.h:77
Contains DLL export macros.
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
Definition: DtTerrainEditorInterface.h:78
boost::signalslib::signal< void(const TerrainContentItemKey &key, bool visible)> signal_visibleLayerVisiblityChanged
The signal emitted when the visibility of the layer has changed.
Definition: DtTerrainEditorInterface.h:473
Definition: DtTerrainEditorInterface.h:100
Definition: DtTerrainEditorInterface.h:84
Definition: DtTerrainEditorInterface.h:101
Definition: DtTerrainEditorInterface.h:89
Definition: DtTerrainEditorInterface.h:97
DtTerrainEditorProperties.
Definition: DtTerrainEditorProperties.h:26
boost::signalslib::signal< void(const TerrainContentItemKey &key, double opacity)> signal_visibleLayerOpacityChanged
The signal emitted when the opacity of the layer has changed.
Definition: DtTerrainEditorInterface.h:478
boost::signalslib::signal< void(const TerrainContentItemKey &key, int maxPagedLODs)> signal_terrainMaxPagedLODsChanged
Signal emitted when the maximum number of paged LODs for this terrain has changed.
Definition: DtTerrainEditorInterface.h:503
int myParentType
Gets the type of the key.
Definition: DtTerrainEditorInterface.h:203
Definition: DtTerrainEditorInterface.h:95
Definition: DtTerrainEditorInterface.h:72
boost::signalslib::signal< void(const TerrainContentItemKey &key, bool enabled)> signal_terrainPatchIsPageableStateChanged
Signal emitted when the Is Pageable status of a terrain patch has changed.
Definition: DtTerrainEditorInterface.h:512
Definition: DtTerrainEditorInterface.h:70
int myType
Gets the type of the key.
Definition: DtTerrainEditorInterface.h:201
boost::signalslib::signal< void(const std::string &name, const std::string &driver, const DtUnicode &url, const std::string &wfsType)> signal_osgEarthModelLayerRequestAdded
The signal emitted when a model layer has been added through the gui.
Definition: DtTerrainEditorInterface.h:444
Definition: DtTerrainEditorInterface.h:99
boost::signalslib::signal< void(const TerrainContentItemKey &key, const std::string &name)> signal_oceanLayerNameChanged
Signal emitted when the name of the ocean layer has changed.
Definition: DtTerrainEditorInterface.h:507
boost::signalslib::signal< void(const TerrainContentItemKey &key, double minRange)> signal_visibleLayerMinVisibleRangeChanged
The signal emitted when the minimal visible range of the layer has changed.
Definition: DtTerrainEditorInterface.h:483
boost::signalslib::signal< void(const std::string &definition, const std::string &name, bool geocentric, bool convexHull)> signal_generateBoundary
The signal emitted when receive the request to generate boundary for a given terrain patch...
Definition: DtTerrainEditorInterface.h:451
bool myUseName
Gets the type of the key.
Definition: DtTerrainEditorInterface.h:205
DtTerrainEditorInterface.
Definition: DtTerrainEditorInterface.h:59
Definition: DtTerrainEditorInterface.h:76
Definition: DtTerrainEditorInterface.h:73
Definition: DtTerrainEditorInterface.h:92
boost::signalslib::signal< void(const TerrainContentItemKey &key)> signal_terrainContentRevertChangesButtonReleased
The signal emitted when user hits the revert changes button.
Definition: DtTerrainEditorInterface.h:405
Definition: DtTerrainEditorInterface.h:80
boost::signalslib::signal< void(const TerrainContentItemKey &key)> signal_terrainContentCommitChangesButtonReleased
The signal emitted when user hits the commit changes button.
Definition: DtTerrainEditorInterface.h:401
boost::signalslib::signal< void(const TerrainContentItemKey &key, const std::string &description)> signal_terrainDescriptionChanged
Signal emitted when the description of the terrain has changed.
Definition: DtTerrainEditorInterface.h:498
Definition: DtTerrainEditorInterface.h:81
boost::signalslib::signal< void(const TerrainContentItemKey &key, double pageOutDistance)> signal_terrainPatchPageOutDistanceChanged
Signal emitted when the page out distance of a terrain patch has changed.
Definition: DtTerrainEditorInterface.h:517
int myParentId
Gets the type of the key.
Definition: DtTerrainEditorInterface.h:204
Definition: DtTerrainEditorInterface.h:83
int myId
Gets the type of the key.
Definition: DtTerrainEditorInterface.h:202
TerrainContentItemType
Definition: DtTerrainEditorInterface.h:64
boost::signalslib::signal< void(const TerrainContentItemKey &key, double height)> signal_oceanLayerHeightChanged
Signal emitted when the height of the ocean layer has changed.
Definition: DtTerrainEditorInterface.h:522
boost::signalslib::signal< void(const TerrainContentItemKey &key)> signal_saveTerrainContentTreeWidgetItem
The signal emitted when the user clicks save on the terrain content item through the context menu(if ...
Definition: DtTerrainEditorInterface.h:413
boost::signalslib::signal< void()> signal_addOceanLayerButtonReleased
The signal emitted when user clicks on the add ocean layer button.
Definition: DtTerrainEditorInterface.h:430
Definition: DtTerrainEditorInterface.h:98
Definition: DtTerrainEditorInterface.h:103
boost::signalslib::signal< void(const TerrainContentItemKey &key, double maxRange)> signal_visibleLayerMaxVisibleRangeChanged
The signal emitted when the maximum visible range of the layer has changed.
Definition: DtTerrainEditorInterface.h:488
boost::signalslib::signal< void(const TerrainContentItemKey &key, int lod)> signal_oceanLayerLodChanged
Signal emitted when the lod of the ocean layer has changed.
Definition: DtTerrainEditorInterface.h:527
Definition: DtTerrainEditorInterface.h:74
boost::signalslib::signal< void(const std::string &key)> signal_osgEarthFragmentTreeWidget_currentItemChanged
The signal emitted when the current item of the osgEarth fragment tree has changed.
Definition: DtTerrainEditorInterface.h:397
std::string myName
Gets the type of the key.
Definition: DtTerrainEditorInterface.h:206
Definition: DtTerrainEditorInterface.h:93
bool operator==(const DtTextureAtlasIndexParser::StringOrFloatAttrib &lhs, const DtTextureAtlasIndexParser::StringOrFloatAttrib &rhs)
needed for search comparison code
Definition: DtTextureAtlasIndexParser.h:160
boost::signalslib::signal< void()> signal_saveOsgEarthTerrain
The signal emitted when receive the request to save the osgEarth terrain through the context menu...
Definition: DtTerrainEditorInterface.h:454
Definition: DtTerrainEditorInterface.h:102
Definition: DtTerrainEditorInterface.h:66
boost::signalslib::signal< void()> signal_generateCacheButtonReleased
The signal emitted when user clicks on the generate cache button.
Definition: DtTerrainEditorInterface.h:460
Definition: DtTerrainEditorInterface.h:90
TerrainContentItemKey.
Definition: DtTerrainEditorInterface.h:110
boost::signalslib::signal< void()> signal_saveTerrain
The signal emitted when receive the request to save the terrain(MTF terrain) through the context menu...
Definition: DtTerrainEditorInterface.h:457
Definition: DtTerrainEditorInterface.h:87
Definition: DtTerrainEditorInterface.h:71
boost::signalslib::signal< void(const TerrainContentItemKey &key)> signal_deleteTerrainContentTreeWidgetItem
The signal emitted when the user clicks save on the terrain content item.
Definition: DtTerrainEditorInterface.h:417
Definition: DtTerrainEditorInterface.h:82
Definition: DtTerrainEditorInterface.h:94
Definition: DtTerrainEditorInterface.h:91
Definition: DtTerrainEditorInterface.h:88
boost::signalslib::signal< void(const DtUnicode &fileName, bool toFrontEnd, bool toSimEngine)> signal_addFeatureLayerButtonReleased
The signal emitted when user clicks on the add feature layer button(MAK Terrain Toolkit feature layer...
Definition: DtTerrainEditorInterface.h:426
#define DT_DLL_VRVTERRAINEDITOR
Definition: vrvTerrainEditor.h:25
boost::signalslib::signal< void(const TerrainContentItemKey &key, bool enabled)> signal_osgEarthDebugModeStateChanged
Signal emitted when the osgEarth debug mode state has changed.
Definition: DtTerrainEditorInterface.h:493
boost::signalslib::signal< void(const TerrainContentItemKey &key)> signal_terrainContentTreeWidget_itemDoubleClicked
The signal emitted when double click on the terrain content item.
Definition: DtTerrainEditorInterface.h:393
Definition: DtTerrainEditorInterface.h:79
Definition: DtTerrainEditorInterface.h:68
Definition: DtTerrainEditorInterface.h:86
Definition: DtTerrainEditorInterface.h:75
boost::signalslib::signal< void(const TerrainContentItemKey &key)> signal_terrainPropertyTreeWidgetItem_currentItemChanged
boost signals
Definition: DtTerrainEditorInterface.h:389
Definition: DtTerrainEditorInterface.h:96
Definition: DtTerrainEditorInterface.h:67
Definition: DtTerrainEditorInterface.h:69

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)