VR-Forces Developer's Guide
 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 setIsPageable(const std::string& filePath, bool isPageable);
134 
139  virtual void addTerrainPatches();
140 
141  boost::signalslib::signal<void(std::map<std::string, TerrainPatchFile> filesToAdd)> signal_terrainPatchesToAddUpdated;
142  boost::signalslib::signal<void(const std::string& filePath, bool flipDds)> signal_ddsFlipEnabledUpdated;
143  boost::signalslib::signal<void(const std::string& filePath, bool indirectEnabled)> signal_indirectRenderingEnabledUpdated;
144  boost::signalslib::signal<void(const std::string& filePath, bool isPageable) > signal_isPageableUpdated;
145  boost::signalslib::signal<void(const std::string& filePath, AlphaToCoverageState a2cState)> signal_alphaToCoverageStateUpdated;
146  boost::signalslib::signal<void(const std::string& coordSysType, const std::string& coordSysParams)> signal_coordinateSystemUpdated;
147 
148  public:
150  static DtAddTerrainPatchManager& instance(DtDe& de);
151 
153  static void registerInstance(DtDe& de, DtAddTerrainPatchManager* instance);
154 
156  static DtAddTerrainPatchManager::TerrainCoordinateSystemEnum coordSysStrToEnum(const std::string& coordSys);
157 
159  static DtUnicode statusDisplayText(AddTerrainPatchStatus addStatus);
160 
161  protected:
162 
165 
168  virtual bool isOsgEarthTerrain(const std::string& fileName);
169 
179  virtual bool processTerrainPatchHeader(const std::string& filePath,
180  AddTerrainPatchStatus& msg);
181 
184  virtual void slot_terrainPatchCreated(DtTerrainPatchObject& terrainPatchObject);
185 
188  virtual void slot_terrainPatchAboutToBeDeleted(DtTerrainPatchObject& terrainPatchObject);
189 
194  virtual void enforceOnlyOneOsgEarthTerrainPatchConstraint();
195 
196  protected:
198 
200 
203 
204  std::map<std::string, TerrainPatchFile> myFilesToAdd;
205  };
206 
207 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
DtSignalConnectionManager myConnections
Definition: DtAddTerrainPatchManager.h:199
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. When loading a file as a...
Definition: DtTerrainPatchObject.h:35
boost::signalslib::signal< void(const std::string &coordSysType, const std::string &coordSysParams)> signal_coordinateSystemUpdated
Definition: DtAddTerrainPatchManager.h:146
TerrainPatchFile()
Definition: DtAddTerrainPatchManager.h:72
Contains makVrv::DtVirtualBaseClass class.
std::map< std::string, TerrainPatchFile > myFilesToAdd
Definition: DtAddTerrainPatchManager.h:204
boost::signalslib::signal< void(const std::string &filePath, bool flipDds)> signal_ddsFlipEnabledUpdated
Definition: DtAddTerrainPatchManager.h:142
#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:202
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:197
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. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
boost::signalslib::signal< void(const std::string &filePath, bool indirectEnabled)> signal_indirectRenderingEnabledUpdated
Definition: DtAddTerrainPatchManager.h:143
bool myOsgEarthTerrainPatchToBeAdded
Definition: DtAddTerrainPatchManager.h:201
boost::signalslib::signal< void(const std::string &filePath, AlphaToCoverageState a2cState)> signal_alphaToCoverageStateUpdated
Definition: DtAddTerrainPatchManager.h:145
boost::signalslib::signal< void(const std::string &filePath, bool isPageable) > signal_isPageableUpdated
Definition: DtAddTerrainPatchManager.h:144
Contains DLL export macros.

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)