VR-Forces 4.10 Class Documentation
 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 namespace osgEarth
15 {
16  class MapOptions;
17  class MapNodeOptions;
18  class TerrainOptions;
19  class ImageLayerOptions;
20  class ElevationLayerOptions;
21  class ModelLayerOptions;
22  class MaskLayerOptions;
23  class LandCoverLayerOptions;
24  namespace Buildings
25  {
26  class BuildingLayerOptions;
27  }
28  namespace Splat
29  {
30  class GroundCoverLayerOptions;
31  class GroundCoverOptions;
32  class RoadSurfaceLayerOptions;
33  class SplatLayerOptions;
34  }
35 }
36 
37 namespace makArchives
38 {
39  class DtModelDefinitionRecord;
40  class DtFeatureLayerRecord;
41  class DtOceanLayerRecord;
42  class DtTerrainRecord;
43 }
44 
45 namespace makVrv
46 {
47  class DtOsgEarthXmlReference;
48  class DtOsgEarthFileParser;
49  class DtTerrainEditorProperties;
50 
57  {
58  public:
59 
60  //Type of the terrain content item.
62  {
101  UnknownType
102  };
103 
108  {
109  public:
110 
113 
118  TerrainContentItemKey(int type, int id, const TerrainContentItemKey& parentKey);
119 
124  TerrainContentItemKey(int type, const std::string& name, const TerrainContentItemKey& parentKey);
125 
131  TerrainContentItemKey(int type, const std::string& name, int parentType, int parentId);
132 
138  TerrainContentItemKey(int type, int id, int parentType, int parentId);
139 
141  void invalid();
142 
145  void setType(int type);
146 
149  void setId(int id);
150 
153  void setParentType(int type);
154 
157  void setParentId(int id);
158 
161  void setParentKey(const TerrainContentItemKey& parentKey);
162 
166  void setName(const std::string& name);
167 
170  const int type() const;
171 
174  const int id() const;
175 
178  const int parentType() const;
179 
182  const int parentId() const;
183 
186  std::string name() const;
187 
189  const bool useName() const;
190 
192  bool operator<(const TerrainContentItemKey&) const;
193 
195  bool operator==(const TerrainContentItemKey&) const;
196 
197  protected:
198  int myType;
199  int myId;
202  bool myUseName;
203  std::string myName;
204  };
205 
209  virtual void addTerrainContentTopLevelItem(const TerrainContentItemKey& key, const std::string& displayName) = 0;
210 
217  virtual void addTerrainContentItem(const TerrainContentItemKey& key, const TerrainContentItemKey& parentKey, const std::string& displayName,
218  int index=-1, bool editable = false, bool checked = true ) = 0;
219 
223  virtual void addOsgEarthFragmentContentTopLevelItem(const std::string& key, const std::string& displayName) = 0;
224 
229  virtual void addOsgEarthFragmentContentItem(const std::string& key, const std::string& parentKey, const std::string& displayName) = 0;
230 
232  virtual void clearTreeWidgets() = 0;
233 
237  virtual void setFocusOnTerrainContentTreeWidgetItem(const TerrainContentItemKey& key, bool expanded = true) = 0;
238 
241  virtual void removeTerrainContentTreeWidgetItem(const TerrainContentItemKey& key) = 0;
242 
245  virtual bool hasTerrainContentTreeWidgetItem(const TerrainContentItemKey& key) = 0;
246 
249  virtual bool hasTerrainPropertyTreeWidgetItem(const TerrainContentItemKey& key) = 0;
250 
252  virtual void cleanOsgEarthFragmentTreeWidget() = 0;
253 
256  virtual void setSelectedOsgEarthFragmentKeys(const std::vector<TerrainContentItemKey>& keys) = 0;
257 
261  virtual void moveTerrainContentTreeWidgetItem( TerrainContentItemKey key, bool up) = 0;
262 
265  virtual void setGenerateCacheButtonEnabled(bool enabled) = 0;
266 
269  virtual void setGenerateBoundaryButtonEnabled(bool enabled) = 0;
270 
273  virtual void setSaveTerrainButtonEnabled(bool enabled) = 0;
274 
277  virtual void setCommitChangeButtonEnabled(bool enabled) = 0;
278 
281  virtual void setRevertChangeButtonEnabled(bool enabled) = 0;
282 
285  virtual void enableOsgEarthFragmentTabWidget(bool enabled) = 0;
286 
288  virtual void resizeTerrainPropertyTreeWidget() = 0;
289 
291  virtual void resizeTerrainFragmentTreeWidget() = 0;
292 
294  virtual void setTerrainPropertyTreeItemName(const TerrainContentItemKey& key, const std::string& name) = 0;
295 
297  virtual void setTerrainPropertyTreeItemVisibility(const TerrainContentItemKey& key, bool visible) = 0;
298 
300  virtual void setTerrainContentTreeItemName(const TerrainContentItemKey& key, const std::string& name) = 0;
301 
303  virtual void setTerrainContentTreeItemVisibility(const TerrainContentItemKey& key, bool visible) = 0;
304 
307  virtual void showTerrainPropertyTreeWidgetItem(const TerrainContentItemKey& key) = 0;
308 
311  virtual void showTerrainPropertyTreeWidgetItems(const std::vector<TerrainContentItemKey>& keys) = 0;
312 
316  virtual void setProperties(const TerrainContentItemKey& key, const DtTerrainEditorProperties* props) = 0;
317 
321  virtual bool properties(const TerrainContentItemKey& key, DtTerrainEditorProperties* props) = 0;
322 
325  virtual void showCacheDialog(const std::string& osgEarthTerrainDefinition) = 0;
326 
329  virtual DtUnicode showSaveMtfFileDialog(const DtUnicode& directory) = 0;
330 
333  virtual DtUnicode showSaveOsgEarthFileDialog(const DtUnicode& directory) = 0;
334 
337  virtual void showSaveFileConfirmationMessageBox(const DtUnicode& fileName) = 0;
338 
341  virtual bool showWarnReloadTerrainMessageBox(bool& checked) = 0;
342 
345  virtual bool showReloadTerrainAfterGenerateMaskMessageBox(const std::string& terrainPatch) = 0;
346 
351  virtual bool showChooseLayerTypeMessageBox(const DtUnicode& url, int& type) = 0;
352 
356  virtual void showFileExtensionNotSupportedMessageBox(const DtUnicode& fileName) = 0;
357 
360  virtual void setGenerateBoundaryModels(const std::vector<std::string>& models) = 0;
361 
363  virtual void expandTerrainContentTreeWidget() = 0;
364 
366  virtual void expandOsgEarthFragmentTreeWidget() = 0;
367 
371  virtual int getIndexOfTerrainContentItem(const TerrainContentItemKey& key) = 0;
372 
377  virtual bool checkIfNameDuplicate(const TerrainContentItemKey& key, const std::string& name) = 0;
378 
379  public:
380 
382 
386  boost::signalslib::signal<void(const TerrainContentItemKey& key)> signal_terrainPropertyTreeWidgetItem_currentItemChanged;
387 
390  boost::signalslib::signal<void(const TerrainContentItemKey& key)> signal_terrainContentTreeWidget_itemDoubleClicked;
391 
394  boost::signalslib::signal<void(const std::string& key)> signal_osgEarthFragmentTreeWidget_currentItemChanged;
395 
398  boost::signalslib::signal<void(const TerrainContentItemKey& key)> signal_terrainContentCommitChangesButtonReleased;
399 
402  boost::signalslib::signal<void(const TerrainContentItemKey& key)> signal_terrainContentRevertChangesButtonReleased;
403 
406  boost::signalslib::signal<void(const std::vector<TerrainContentItemKey>& keys)> signal_osgEarthFragmentCommitChangesButtonReleased;
407 
410  boost::signalslib::signal<void(const TerrainContentItemKey& key)> signal_saveTerrainContentTreeWidgetItem;
411 
414  boost::signalslib::signal<void(const TerrainContentItemKey& key)> signal_deleteTerrainContentTreeWidgetItem;
415 
417  boost::signalslib::signal<void()> signal_generateBoundaryButton_released;
418 
423  boost::signalslib::signal<void(const DtUnicode& fileName, bool toFrontEnd, bool toSimEngine)> signal_addFeatureLayerButtonReleased;
424 
427  boost::signalslib::signal<void()> signal_addOceanLayerButtonReleased;
428 
434  boost::signalslib::signal<void(int type, const std::string& name, const std::string& driver, const DtUnicode& url)> signal_osgEarthTerrainLayerRequestAdded;
435 
441  boost::signalslib::signal<void(const std::string& name, const std::string& driver, const DtUnicode& url, const std::string& wfsType)> signal_osgEarthModelLayerRequestAdded;
442 
448  boost::signalslib::signal<void(const std::string& definition, const std::string& name, bool geocentric, bool convexHull)> signal_generateBoundary;
449 
451  boost::signalslib::signal<void()> signal_saveOsgEarthTerrain;
452 
454  boost::signalslib::signal<void()> signal_saveTerrain;
455 
457  boost::signalslib::signal<void()> signal_generateCacheButtonReleased;
458 
460  boost::signalslib::signal<void(std::vector<std::string>)> signal_addData;
461 
463 
465  //| Signals used to change the runtime property(visibility, visible range, etc) of the terrain content item.
466 
470  boost::signalslib::signal<void(const TerrainContentItemKey& key, bool visible)> signal_visibleLayerVisiblityChanged;
471 
475  boost::signalslib::signal<void(const TerrainContentItemKey& key, double opacity)> signal_visibleLayerOpacityChanged;
476 
480  boost::signalslib::signal<void(const TerrainContentItemKey& key, double minRange)> signal_visibleLayerMinVisibleRangeChanged;
481 
485  boost::signalslib::signal<void(const TerrainContentItemKey& key, double maxRange)> signal_visibleLayerMaxVisibleRangeChanged;
486 
490  boost::signalslib::signal<void(const TerrainContentItemKey& key, bool enabled)> signal_osgEarthDebugModeStateChanged;
491 
495  boost::signalslib::signal<void(const TerrainContentItemKey& key, const std::string& description)> signal_terrainDescriptionChanged;
496 
500  boost::signalslib::signal<void(const TerrainContentItemKey& key, int maxPagedLODs)> signal_terrainMaxPagedLODsChanged;
501 
504  boost::signalslib::signal<void(const TerrainContentItemKey& key, const std::string& name)> signal_oceanLayerNameChanged;
505 
509  boost::signalslib::signal<void(const TerrainContentItemKey& key, double height)> signal_oceanLayerHeightChanged;
510 
514  boost::signalslib::signal<void(const TerrainContentItemKey& key, int lod)> signal_oceanLayerLodChanged;
515 
517  };
518 }
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:434
Definition: DtTerrainEditorInterface.h:82
boost::signalslib::signal< void()> signal_generateBoundaryButton_released
The signal emitted when user clicks on the generate boundary button.
Definition: DtTerrainEditorInterface.h:417
Definition: DtTerrainEditorInterface.h:74
Contains DLL export macros.
A unicode string.
Definition: DtUnicode.h:33
Definition: DtTerrainEditorInterface.h:75
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:470
Definition: DtTerrainEditorInterface.h:97
Definition: DtTerrainEditorInterface.h:81
Definition: DtTerrainEditorInterface.h:98
Definition: DtTerrainEditorInterface.h:86
Definition: DtTerrainEditorInterface.h:94
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:475
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:500
int myParentType
Definition: DtTerrainEditorInterface.h:200
Definition: DtTerrainEditorInterface.h:92
Definition: DtTerrainEditorInterface.h:69
Definition: DtTerrainEditorInterface.h:67
int myType
Definition: DtTerrainEditorInterface.h:198
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:441
Definition: DtTerrainEditorInterface.h:96
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:504
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:480
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:448
bool myUseName
Definition: DtTerrainEditorInterface.h:202
DtTerrainEditorInterface.
Definition: DtTerrainEditorInterface.h:56
Definition: DtTerrainEditorInterface.h:73
Definition: DtTerrainEditorInterface.h:70
Definition: DtTerrainEditorInterface.h:89
boost::signalslib::signal< void(const TerrainContentItemKey &key)> signal_terrainContentRevertChangesButtonReleased
The signal emitted when user hits the revert changes button.
Definition: DtTerrainEditorInterface.h:402
Definition: DtTerrainEditorInterface.h:77
boost::signalslib::signal< void(const TerrainContentItemKey &key)> signal_terrainContentCommitChangesButtonReleased
The signal emitted when user hits the commit changes button.
Definition: DtTerrainEditorInterface.h:398
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:495
Definition: DtTerrainEditorInterface.h:78
int myParentId
Definition: DtTerrainEditorInterface.h:201
Definition: DtTerrainEditorInterface.h:80
int myId
Definition: DtTerrainEditorInterface.h:199
TerrainContentItemType
Definition: DtTerrainEditorInterface.h:61
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:509
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:410
boost::signalslib::signal< void()> signal_addOceanLayerButtonReleased
The signal emitted when user clicks on the add ocean layer button.
Definition: DtTerrainEditorInterface.h:427
Definition: DtTerrainEditorInterface.h:95
Definition: DtTerrainEditorInterface.h:100
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:485
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:514
Definition: DtTerrainEditorInterface.h:71
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:394
std::string myName
Definition: DtTerrainEditorInterface.h:203
Definition: DtTerrainEditorInterface.h:90
bool operator==(const DtTextureAtlasIndexParser::StringOrFloatAttrib &lhs, const DtTextureAtlasIndexParser::StringOrFloatAttrib &rhs)
needed for search comparison code
Definition: DtTextureAtlasIndexParser.h:153
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:451
Definition: DtTerrainEditorInterface.h:99
Definition: DtTerrainEditorInterface.h:63
boost::signalslib::signal< void()> signal_generateCacheButtonReleased
The signal emitted when user clicks on the generate cache button.
Definition: DtTerrainEditorInterface.h:457
Definition: DtTerrainEditorInterface.h:87
TerrainContentItemKey.
Definition: DtTerrainEditorInterface.h:107
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:454
Definition: DtTerrainEditorInterface.h:84
Definition: DtTerrainEditorInterface.h:68
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:414
Definition: DtTerrainEditorInterface.h:79
Definition: DtTerrainEditorInterface.h:91
Definition: DtTerrainEditorInterface.h:88
Definition: DtTerrainEditorInterface.h:85
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:423
#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:490
boost::signalslib::signal< void(const TerrainContentItemKey &key)> signal_terrainContentTreeWidget_itemDoubleClicked
The signal emitted when double click on the terrain content item.
Definition: DtTerrainEditorInterface.h:390
Definition: DtTerrainEditorInterface.h:76
Definition: DtTerrainEditorInterface.h:65
Definition: DtTerrainEditorInterface.h:83
Definition: DtTerrainEditorInterface.h:72
boost::signalslib::signal< void(const TerrainContentItemKey &key)> signal_terrainPropertyTreeWidgetItem_currentItemChanged
boost signals
Definition: DtTerrainEditorInterface.h:386
Definition: DtTerrainEditorInterface.h:93
Definition: DtTerrainEditorInterface.h:64
Definition: DtTerrainEditorInterface.h:66

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)