VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtAddTerrainPatchManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtHeaderParser.h>
14 
17 #include <vrvUtil/signalslib.h>
18 #include <vrvUtil/DtUnicode.h>
19 
20 namespace makVrv
21 {
22  class DtSetVisibilityInterface;
23  class DtTerrainPatchObject;
24 
33  : public DtVirtualBaseClass
34  {
35  public:
36 
39  {
40  USE_GLOBAL, // use the global setting
41  FORCE_OFF, // force alpha to coverage off
42  FORCE_ON // force alpha to coverage on for this model
43  };
44 
47  {
48  None,
49  Geocentric,
50  UTM,
51  Lambert,
52  FlatEarth,
53  Cartesian
54  };
55 
59  {
60  NoError,
61  LimitedSupportFileType,
62  UnsupportedFileType,
63  ProcessHeaderFailed,
64  MoreThanOneOsgEarthTerrainPatch
65  };
66 
70  {
71  public:
73  : myStatus(AddTerrainPatchStatus::NoError)
74  {
75  // intentional no-op
76  }
77 
80  };
81 
82  public:
88  virtual void addFilePaths(const std::vector<std::string>& filePaths);
89 
96  virtual bool terrainPatchAddStatus(const std::string filePath, AddTerrainPatchStatus& status) const;
97 
100  virtual void removeFilePaths(const std::vector<std::string>& filePaths);
101 
103  virtual void removeAllFilePaths();
104 
106  virtual std::vector<std::string> filePathsToAdd() const;
107 
113  virtual void setDdsFlip(const std::string& filePath, bool ddsFlip);
114 
120  virtual void setAlphaToCoverage(const std::string& filePath, AlphaToCoverageState a2cState);
121 
127  virtual void setIndirectEnabled(const std::string& filePath, bool enabled);
128 
133  virtual void addTerrainPatches();
134 
135  boost::signalslib::signal<void(std::map<std::string, TerrainPatchFile> filesToAdd)> signal_terrainPatchesToAddUpdated;
136  boost::signalslib::signal<void(const std::string& filePath, bool flipDds)> signal_ddsFlipEnabledUpdated;
137  boost::signalslib::signal<void(const std::string& filePath, bool indirectEnabled)> signal_indirectRenderingEnabledUpdated;
138  boost::signalslib::signal<void(const std::string& filePath, AlphaToCoverageState a2cState)> signal_alphaToCoverageStateUpdated;
139  boost::signalslib::signal<void(const std::string& coordSysType, const std::string& coordSysParams)> signal_coordinateSystemUpdated;
140 
141  public:
143  static DtAddTerrainPatchManager& instance(DtDe& de);
144 
146  static void registerInstance(DtDe& de, DtAddTerrainPatchManager* instance);
147 
149  static DtAddTerrainPatchManager::TerrainCoordinateSystemEnum coordSysStrToEnum(const std::string& coordSys);
150 
152  static DtUnicode statusDisplayText(AddTerrainPatchStatus addStatus);
153 
154  protected:
155 
158 
161  virtual bool isOsgEarthTerrain(const std::string& fileName);
162 
172  virtual bool processTerrainPatchHeader(const std::string& filePath,
173  AddTerrainPatchStatus& msg);
174 
177  virtual void slot_terrainPatchCreated(DtTerrainPatchObject& terrainPatchObject);
178 
181  virtual void slot_terrainPatchAboutToBeDeleted(DtTerrainPatchObject& terrainPatchObject);
182 
187  virtual void enforceOnlyOneOsgEarthTerrainPatchConstraint();
188 
189  protected:
191 
193 
196 
197  std::map<std::string, TerrainPatchFile> myFilesToAdd;
198  };
199 
200 }
Virtual base class.
Definition: DtVirtualBaseClass.h:19
A unicode string.
Definition: DtUnicode.h:33
DtSignalConnectionManager myConnections
Definition: DtAddTerrainPatchManager.h:192
AddTerrainPatchStatus
An enumeration for the possible statuses a terrain patch can have when being added.
Definition: DtAddTerrainPatchManager.h:58
AddTerrainPatchStatus myStatus
Definition: DtAddTerrainPatchManager.h:78
TerrainCoordinateSystemEnum
An enumeration for the possible coordinate systems for the terrain.
Definition: DtAddTerrainPatchManager.h:46
Contains makVrv::DtHeaderParser class declaration.
A DtTerrainPatchObject contains the methods for loading a file as a terrain.
Definition: DtTerrainPatchObject.h:37
boost::signalslib::signal< void(const std::string &coordSysType, const std::string &coordSysParams)> signal_coordinateSystemUpdated
Definition: DtAddTerrainPatchManager.h:139
TerrainPatchFile()
Definition: DtAddTerrainPatchManager.h:72
Contains makVrv::DtVirtualBaseClass class.
std::map< std::string, TerrainPatchFile > myFilesToAdd
Definition: DtAddTerrainPatchManager.h:197
boost::signalslib::signal< void(const std::string &filePath, bool flipDds)> signal_ddsFlipEnabledUpdated
Definition: DtAddTerrainPatchManager.h:136
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
AlphaToCoverageState
The possible states of alpha to coverage for a terrain patch.
Definition: DtAddTerrainPatchManager.h:38
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
A class that maintains the terrain patch records and add status for a terrain patch file...
Definition: DtAddTerrainPatchManager.h:69
std::list< makArchives::DtTerrainPatchRecord > TerrainPatchRecords
Definition: DtHeaderParser.h:47
bool myTerrainHasOsgEarthTerrainPatch
Definition: DtAddTerrainPatchManager.h:195
The add terrain patch manager is used to add one or more terrain patches to the current terrain...
Definition: DtAddTerrainPatchManager.h:32
DtDe & myDe
Definition: DtAddTerrainPatchManager.h:190
DtHeaderParser::TerrainPatchRecords myTerrainPatchRecords
Definition: DtAddTerrainPatchManager.h:79
Base class to provide boost signal/slot management.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
boost::signalslib::signal< void(const std::string &filePath, bool indirectEnabled)> signal_indirectRenderingEnabledUpdated
Definition: DtAddTerrainPatchManager.h:137
bool myOsgEarthTerrainPatchToBeAdded
Definition: DtAddTerrainPatchManager.h:194
boost::signalslib::signal< void(const std::string &filePath, AlphaToCoverageState a2cState)> signal_alphaToCoverageStateUpdated
Definition: DtAddTerrainPatchManager.h:138
Contains DLL export macros.

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)