11 #include "wx/aui/aui.h"
14 #include "../EnviroEnum.h"
15 #include "vtlib/core/Event.h"
42 #ifdef NVIDIA_PERFORMANCE_MONITORING
48 #define ADD_TOOL2(bar, id, bmp, label, type) \
49 bar->AddTool(id, label, bmp, wxNullBitmap, type, label, label)
58 EnviroFrame(wxFrame *frame,
const wxString& title,
const wxPoint& pos,
const wxSize& size,
59 long style = wxDEFAULT_FRAME_STYLE,
bool bVerticalToolbar =
false,
bool bEnableEarth =
true);
64 virtual void RefreshToolbar();
66 virtual void SetMode(MouseMode mode);
67 void ToggleNavigate();
68 void ChangeFlightSpeed(
float factor);
69 void SetTerrainDetail(
int iMetric);
70 int GetTerrainDetail();
71 void ChangePagingRange(
float prange);
72 void SetFullScreen(
bool bFull);
74 void OpenFenceDialog();
75 void ShowPopupMenu(
const IPoint2 &pos);
77 void Snapshot(
bool bNumbered);
79 void OnDrop(
const wxString &str);
81 virtual void SetTerrainToGUI(
vtTerrain *pTerrain);
82 virtual void EarthPosUpdated(
const DPoint3 &pos);
83 virtual void UpdateStatus();
85 virtual void Setup3DScene() {}
86 virtual bool IsAcceptable(
vtTerrain *pTerr) {
return true; }
87 virtual void OnCreateTerrain(
vtTerrain *pTerr) {}
88 virtual void FrameArgument(
int i,
const char *str) { }
89 virtual void PostConstruction() { }
90 virtual void AddTool(
int id,
const wxBitmap &bmp,
const wxString &tooltip,
bool tog);
92 virtual void SetScenario(
int num) {}
97 void DeleteAllSelected();
99 DriveDlg *GetDriveDlg() {
return m_pDriveDlg; }
102 void OnExit(wxCommandEvent& event);
103 void OnClose(wxCloseEvent &event);
104 void OnIdle(wxIdleEvent& event);
105 void OnChar(wxKeyEvent& event);
106 void OnKeyDown(wxKeyEvent& event);
110 virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
114 void OnFileLayers(wxCommandEvent& event);
116 void OnLayerCreate(wxCommandEvent& event);
117 void OnLayerLoad(wxCommandEvent& event);
118 void OnSaveTerrain(wxCommandEvent& event);
119 void OnSaveTerrainAs(wxCommandEvent& event);
121 void OnUpdateLayerCreate(wxUpdateUIEvent& event);
122 void OnUpdateLayerLoad(wxUpdateUIEvent& event);
123 void OnUpdateSaveTerrain(wxUpdateUIEvent& event);
125 void OnViewMaintain(wxCommandEvent& event);
126 void OnViewWireframe(wxCommandEvent& event);
127 void OnViewFullscreen(wxCommandEvent& event);
128 void OnViewTopDown(wxCommandEvent& event);
129 void OnViewStats(wxCommandEvent& event);
130 void OnViewElevLegend(wxCommandEvent& event);
131 void OnViewCompass(wxCommandEvent& event);
132 void OnViewMapOverView(wxCommandEvent& event);
133 void OnViewDrive(wxCommandEvent& event);
134 void OnViewSettings(wxCommandEvent& event);
135 void OnViewLocations(wxCommandEvent& event);
136 void OnViewReset(wxCommandEvent& event);
137 void OnViewSnapshot(wxCommandEvent& event);
138 void OnViewSnapAgain(wxCommandEvent& event);
139 void OnViewSnapHigh(wxCommandEvent& event);
140 void OnViewStatusBar(wxCommandEvent& event);
141 void OnViewScenarios(wxCommandEvent& event);
142 void OnViewProfile(wxCommandEvent& event);
143 void OnViewToolCulture(wxCommandEvent& event);
144 void OnViewToolSnapshot(wxCommandEvent& event);
145 void OnViewToolTime(wxCommandEvent& event);
147 void OnUpdateViewMaintain(wxUpdateUIEvent& event);
148 void OnUpdateViewWireframe(wxUpdateUIEvent& event);
149 void OnUpdateViewFullscreen(wxUpdateUIEvent& event);
150 void OnUpdateViewTopDown(wxUpdateUIEvent& event);
151 void OnUpdateViewFramerate(wxUpdateUIEvent& event);
152 void OnUpdateViewElevLegend(wxUpdateUIEvent& event);
153 void OnUpdateViewCompass(wxUpdateUIEvent& event);
154 void OnUpdateViewMapOverView(wxUpdateUIEvent& event);
155 void OnUpdateViewDrive(wxUpdateUIEvent& event);
156 void OnUpdateViewLocations(wxUpdateUIEvent& event);
157 void OnUpdateViewStatusBar(wxUpdateUIEvent& event);
158 void OnUpdateViewProfile(wxUpdateUIEvent& event);
159 void OnUpdateViewToolCulture(wxUpdateUIEvent& event);
160 void OnUpdateViewToolSnapshot(wxUpdateUIEvent& event);
161 void OnUpdateViewToolTime(wxUpdateUIEvent& event);
163 void OnViewSlower(wxCommandEvent& event);
164 void OnViewFaster(wxCommandEvent& event);
165 void OnNavNormal(wxCommandEvent& event);
166 void OnNavVelo(wxCommandEvent& event);
167 void OnNavGrabPivot(wxCommandEvent& event);
168 void OnNavPano(wxCommandEvent& event);
170 void OnUpdateViewSlower(wxUpdateUIEvent& event);
171 void OnUpdateViewFaster(wxUpdateUIEvent& event);
172 void OnUpdateNavNormal(wxUpdateUIEvent& event);
173 void OnUpdateNavVelo(wxUpdateUIEvent& event);
174 void OnUpdateNavGrabPivot(wxUpdateUIEvent& event);
175 void OnUpdateNavPano(wxUpdateUIEvent& event);
177 void OnToolsSelect(wxCommandEvent& event);
178 void OnUpdateToolsSelect(wxUpdateUIEvent& event);
179 void OnToolsSelectBox(wxCommandEvent& event);
180 void OnUpdateToolsSelectBox(wxUpdateUIEvent& event);
181 void OnToolsSelectMove(wxCommandEvent& event);
182 void OnUpdateToolsSelectMove(wxUpdateUIEvent& event);
183 void OnToolsFences(wxCommandEvent& event);
184 void OnUpdateToolsFences(wxUpdateUIEvent& event);
185 void OnToolsBuildings(wxCommandEvent& event);
186 void OnUpdateToolsBuildings(wxUpdateUIEvent& event);
187 void OnToolsRoutes(wxCommandEvent& event);
188 void OnUpdateToolsRoutes(wxUpdateUIEvent& event);
189 void OnToolsPlants(wxCommandEvent& event);
190 void OnUpdateToolsPlants(wxUpdateUIEvent& event);
191 void OnToolsPoints(wxCommandEvent& event);
192 void OnUpdateToolsPoints(wxUpdateUIEvent& event);
193 void OnToolsInstances(wxCommandEvent& event);
194 void OnUpdateToolsInstances(wxUpdateUIEvent& event);
195 void OnToolsVehicles(wxCommandEvent& event);
196 void OnUpdateToolsVehicles(wxUpdateUIEvent& event);
197 void OnToolsMove(wxCommandEvent& event);
198 void OnUpdateToolsMove(wxUpdateUIEvent& event);
199 void OnToolsNavigate(wxCommandEvent& event);
200 void OnUpdateToolsNavigate(wxUpdateUIEvent& event);
201 void OnToolsMeasure(wxCommandEvent& event);
202 void OnUpdateToolsMeasure(wxUpdateUIEvent& event);
203 void OnToolsConstrain(wxCommandEvent& event);
204 void OnUpdateToolsConstrain(wxUpdateUIEvent& event);
206 void OnVIACalculate(wxCommandEvent& event);
207 void OnUpdateVIACalculate(wxUpdateUIEvent& event);
208 void OnVIAPlot(wxCommandEvent& event);
209 void OnUpdateVIAPlot(wxUpdateUIEvent& event);
210 void OnVIAClear(wxCommandEvent& event);
211 void OnUpdateVIAClear(wxUpdateUIEvent& event);
214 void OnSceneGraph(wxCommandEvent& event);
215 #ifdef NVIDIA_PERFORMANCE_MONITORING
216 void OnPerformanceMonitor(wxCommandEvent& event);
218 void OnSceneTerrain(wxCommandEvent& event);
219 void OnUpdateSceneTerrain(wxUpdateUIEvent& event);
220 void OnSceneSpace(wxCommandEvent& event);
221 void OnUpdateSceneSpace(wxUpdateUIEvent& event);
222 void OnSceneSave(wxCommandEvent& event);
223 void OnSceneEphemeris(wxCommandEvent& event);
224 void OnUpdateSceneEphemeris(wxUpdateUIEvent& event);
226 void OnTimeDialog(wxCommandEvent& event);
227 void OnTimeStop(wxCommandEvent& event);
228 void OnTimeFaster(wxCommandEvent& event);
230 void OnDynamic(wxCommandEvent& event);
231 void OnCullEvery(wxCommandEvent& event);
232 void OnCullOnce(wxCommandEvent& event);
233 void OnSky(wxCommandEvent& event);
234 void OnHorizon(wxCommandEvent& event);
235 void OnOcean(wxCommandEvent& event);
236 void OnPlants(wxCommandEvent& event);
237 void OnStructures(wxCommandEvent& event);
238 void OnRoads(wxCommandEvent& event);
239 void OnFog(wxCommandEvent& event);
240 void OnIncrease(wxCommandEvent& event);
241 void OnDecrease(wxCommandEvent& event);
242 void OnLOD(wxCommandEvent& event);
243 void OnToggleFoundations(wxCommandEvent& event);
244 void OnTerrainReshade(wxCommandEvent& event);
245 void OnTerrainChangeTexture(wxCommandEvent& event);
246 void OnTerrainDistribVehicles(wxCommandEvent& event);
247 void OnTerrainWriteElevation(wxCommandEvent& event);
248 void OnTerrainAddContour(wxCommandEvent& event);
250 void OnUpdateDynamic(wxUpdateUIEvent& event);
251 void OnUpdateCullEvery(wxUpdateUIEvent& event);
252 void OnUpdateSky(wxUpdateUIEvent& event);
253 void OnUpdateHorizon(wxUpdateUIEvent& event);
254 void OnUpdateOcean(wxUpdateUIEvent& event);
255 void OnUpdatePlants(wxUpdateUIEvent& event);
256 void OnUpdateStructures(wxUpdateUIEvent& event);
257 void OnUpdateRoads(wxUpdateUIEvent& event);
258 void OnUpdateFog(wxUpdateUIEvent& event);
259 void OnUpdateLOD(wxUpdateUIEvent& event);
260 void OnUpdateSaveVeg(wxUpdateUIEvent& event);
261 void OnUpdateSaveStruct(wxUpdateUIEvent& event);
262 void OnUpdateFoundations(wxUpdateUIEvent& event);
263 void OnUpdateIsTerrainView(wxUpdateUIEvent& event);
264 void OnUpdateIsDynTerrain(wxUpdateUIEvent& event);
266 void OnEarthShowShading(wxCommandEvent& event);
267 void OnEarthShowAxes(wxCommandEvent& event);
268 void OnEarthTilt(wxCommandEvent& event);
269 void OnEarthFlatten(wxCommandEvent& event);
270 void OnEarthUnfold(wxCommandEvent& event);
271 void OnEarthClouds(wxCommandEvent& event);
272 void OnEarthClouds2(wxCommandEvent& event);
274 void OnUpdateEarthShowShading(wxUpdateUIEvent& event);
275 void OnUpdateEarthShowAxes(wxUpdateUIEvent& event);
276 void OnUpdateEarthTilt(wxUpdateUIEvent& event);
277 void OnUpdateEarthFlatten(wxUpdateUIEvent& event);
278 void OnUpdateEarthUnfold(wxUpdateUIEvent& event);
279 void OnUpdateInOrbit(wxUpdateUIEvent& event);
280 void OnUpdateInOrbitOrTerrain(wxUpdateUIEvent& event);
281 void OnUpdateEarthClouds(wxUpdateUIEvent& event);
283 virtual void OnHelpAbout(wxCommandEvent& event);
284 virtual void OnHelpDocLocal(wxCommandEvent& event);
285 virtual void OnHelpDocOnline(wxCommandEvent& event);
287 void OnPopupProperties(wxCommandEvent& event);
288 void OnPopupFlip(wxCommandEvent& event);
289 void OnPopupReload(wxCommandEvent& event);
290 void OnPopupShadow(wxCommandEvent& event);
291 void OnPopupAdjust(wxCommandEvent& event);
292 void OnPopupStart(wxCommandEvent& event);
293 void OnPopupDelete(wxCommandEvent& event);
294 void OnPopupURL(wxCommandEvent& event);
295 void OnPopupVIA(wxCommandEvent& event);
296 void OnUpdatePopupVIA(wxUpdateUIEvent& event);
297 void OnPopupVIATarget(wxCommandEvent& event);
298 void OnUpdatePopupVIATarget(wxUpdateUIEvent& event);
301 void LoadClouds(
const char *fname);
302 void CarveTerrainToFitNode(osg::Node *node);
304 void ParseCommandLine(
const char *cmdstart,
char **argv,
char *args,
int *numargs,
int *numchars);
308 wxToolBar *m_pToolbar;
309 wxMenuBar *m_pMenuBar;
313 wxMenu *m_pToolsMenu;
316 wxMenu *m_pEarthMenu;
317 wxMenu *m_pTerrainMenu;
318 wxMenu *m_pSceneMenu;
340 #ifdef NVIDIA_PERFORMANCE_MONITORING
345 MouseMode m_ToggledMode;
348 std::vector<FeatureTableDlg3d*> m_FeatureDlgs;
354 bool m_bCulleveryframe;
359 bool m_bVerticalToolbar;
362 wxString m_strSnapshotFilename;
363 int m_iSnapshotNumber;
367 DECLARE_EVENT_TABLE()
370 #if wxUSE_DRAG_AND_DROP
371 class DnDFile :
public wxFileDropTarget
374 virtual bool OnDropFiles(wxCoord x, wxCoord y,
375 const wxArrayString& filenames);