-
Notifications
You must be signed in to change notification settings - Fork 0
/
WorldEditorView.h
599 lines (567 loc) · 23.5 KB
/
WorldEditorView.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
/* Copyright (c) 2002-2012 Croteam Ltd.
This program is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License as published by
the Free Software Foundation
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
// WorldEditorView.h : interface of the CWorldEditorView class
//
/////////////////////////////////////////////////////////////////////////////
#ifndef WORLDEDITORVIEW_H
#define WORLDEDITORVIEW_H 1
extern BOOL MyChooseColor( COLORREF &clrNewColor, CWnd &wndOwner);
#define WM_CHANGE_EDITING_MODE WM_USER
#define GRID_DISCRETE_VALUES (theApp.m_bDecadicGrid ? 10:8)
// mip modes (modes for setting or changing mip switch factors)
#define MM_NONE 0 // not active
#define MM_SETTING 1 // setting mip switch factor for current brush
#define MM_MANUAL 2 // setting manual mip factor
#define OVXF_CLOSEST (1L<<8)
#define OVXF_SELECTED (1L<<9)
enum InputAction {
IA_NONE = 0,
IA_DRAG_VERTEX_ON_PRIMITIVE,
IA_DRAG_VERTEX_ON_PRIMITIVE_BASE,
IA_SELECT_SINGLE_BRUSH_VERTEX,
IA_SELECT_LASSO_BRUSH_VERTEX,
IA_DRAG_BRUSH_VERTEX_IN_FLOOR_PLANE,
IA_DRAG_BRUSH_VERTEX_IN_VIEW_PLANE,
IA_ROTATE_BRUSH_VERTEX,
IA_STRETCH_BRUSH_VERTEX,
IA_STRETCHING_PRIMITIVE,
IA_SHEARING_PRIMITIVE,
IA_TERRAIN_EDITING_LMB,
IA_TERRAIN_EDITING_CTRL_LMB,
IA_MOVING_VIEWER_IN_FLOOR_PLANE,
IA_MOVING_VIEWER_IN_VIEW_PLANE,
IA_MOVING_SECOND_LAYER_IN_FLOOR_PLANE,
IA_MOVING_SECOND_LAYER_IN_VIEW_PLANE,
IA_MOVING_ENTITY_SELECTION_IN_FLOOR_PLANE,
IA_MOVING_ENTITY_SELECTION_IN_VIEW_PLANE,
IA_MOVING_POLYGON_MAPPING,
IA_ROTATING_VIEWER,
IA_ROTATING_ENTITY_SELECTION,
IA_ROTATING_SECOND_LAYER,
IA_ROTATING_POLYGON_MAPPING,
IA_MEASURING,
IA_CUT_MODE,
IA_MOVING_CUT_LINE_START,
IA_MOVING_CUT_LINE_END,
IA_SIZING_SELECT_BY_VOLUME_BOX,
IA_SELECTING_POLYGONS,
IA_SELECTING_SECTORS,
IA_SELECTING_ENTITIES,
IA_SELECT_LASSO_ENTITY,
IA_MIP_SETTING,
IA_MANUAL_MIP_SWITCH_FACTOR_CHANGING,
IA_CHANGING_RANGE_PROPERTY,
IA_CHANGING_ANGLE3D_PROPERTY,
};
class CWorldEditorView : public CView
{
protected: // create from serialization only
CWorldEditorView();
DECLARE_DYNCREATE(CWorldEditorView)
// Attributes
public:
InputAction m_iaInputAction;
InputAction m_iaLastInputAction;
BOOL m_bTestGameOn;
CBrushMip *m_pbmToSetMipSwitch;
COleDataSource m_DataSource; // to enable drag and drop
CTimerValue m_tvLastTime; // last time view was refreshed
CViewPrefs m_vpViewPrefs; // current rendering preferences
CTextureObject m_toBcgPicture;// used for background texture
CTString m_strMeasuring;
CChangeableRT m_chViewChanged;// when view has been rendered
BOOL m_bCutMode; // if we are in cut mode
// type of view
enum CSlaveViewer::ProjectionType m_ptProjectionType;
BOOL m_bWeDeselectedFirstPolygon;
BOOL m_bWeDeselectedFirstSector;
CPoint m_ptMouseDown; // mouse position at mouse down time
CStaticStackArray<PIX2D> m_avpixLaso; // coordinates for laso
BOOL m_bRequestVtxClickSelect; // if vertex select test requested from renderer
BOOL m_bRequestVtxLassoSelect; // if vertex laso select test requested from renderer
BOOL m_bRequestEntityLassoSelect; // if vertex laso select test requested from renderer
BOOL m_bOnSelectVertexAltDown; // if alt was down during vertex select start
BOOL m_bOnSelectVertexShiftDown; // if shift was down during vertex select start
BOOL m_bOnSelectEntityAltDown; // if alt was down during entity lasso select start
BOOL m_bOnSelectEntityShiftDown; // if shift was down during entity lasso select start
FLOAT3D m_vHitOnMouseDown;
CPoint m_ptMouse; // current mouse position
FLOAT m_fpixGridSteep; // steep in float pixels f of grid line
FLOAT3D m_f3dRotationOrigin; // used as rotation origin while changing mapping coordinates
FLOATplane3D m_plTranslationPlane; // plane used for polgon mapping translation
CPlacement3D m_plMouseMove; // used for continous mouse editting
CPlacement3D m_plMouseOffset; // used for offseted mouse editting
CBrushPolygon *m_pbpoTranslationPlane;
// current grid in meters
FLOAT m_fGridInMeters;
FLOAT m_fGridX;
FLOAT m_fGridY;
CTString m_strTest;
BOOL m_bEntityHitedOnContext;
CPlacement3D m_plEntityHitOnContext;
CEntity *m_penEntityHitOnContext;
CBrushPolygon *m_pbpoRightClickedPolygon;
CTString m_strTerrainDataPaneText;
// index of vertice on primitive base that user is currently dragging
INDEX m_iDragVertice;
INDEX m_iDragEdge;
// index of size control vertice
INDEX m_iSizeControlVertice;
FLOAT3D m_vMouseDownSecondLayer;
// position of vertice on primitive base before drag started
DOUBLE3D m_vStartDragVertice;
// position of edge center on primitive base before drag started
DOUBLE3D m_vStartDragEdge;
// position of vertice of object 3D before drag started
DOUBLE3D m_vStartDragO3DVertice;
// values for primitive are remembered here when LMB is pressed (for latere continous moving)
CValuesForPrimitive m_VFPMouseDown;
CDrawPort *m_pdpDrawPort;
CViewPort *m_pvpViewPort;
COleDropTarget m_DropTarget;
CTFileName m_fnWinBcgTexture;
COLORREF m_SelectionColor;
COLORREF m_PaperColor;
COLORREF m_InkColor;
BOOL m_IsWinBcgTexture;
// Operations
public:
// obtain draw port
inline CDrawPort *GetDrawPort( void) {
if( theApp.m_bChangeDisplayModeInProgress)
return NULL;
else
return m_pdpDrawPort;
};
// obtain view port
inline CViewPort *GetViewPort( void)
{
if( theApp.m_bChangeDisplayModeInProgress)
return NULL;
else
return m_pvpViewPort;
};
void GetToolTipText( char *pToolTipText);
// renders one picture
void RenderView( CDrawPort *pDP);
// obtain information about what was hit with mouse
CCastRay GetMouseHitInformation( CPoint point, BOOL bHitPortals = FALSE,
BOOL bHitModels = TRUE, BOOL bHitFields = TRUE, CEntity *penSourceEntity = NULL, BOOL bHitBrushes=TRUE);
FLOAT3D GetMouseHitOnPlane( CPoint point, const FLOATplane3D &plPlane);
// Start and stop functions that are called for start moving/rotating
void ToggleHittedPolygon( CCastRay &crRayHit);
void ToggleHittedSector( CCastRay &crRayHit);
void StartMouseInput( CPoint point);
void StopMouseInput( void);
void MarkClosestVtxOnPrimitive( BOOL bToggleSelection);
void MarkClosestVtxAndEdgeOnPrimitiveBase(CPoint point);
void DragVerticesOnPrimitive(FLOAT fDX,FLOAT fDY,FLOAT fDZ, BOOL bAbsolute, BOOL bSnap=TRUE);
void DragBrushVertex(FLOAT fDX,FLOAT fDY,FLOAT fDZ);
void RotateOrStretchBrushVertex(FLOAT fDX, FLOAT fDY, BOOL bRotate);
// Fills status line's editing data info pane
void SetEditingDataPaneInfo(BOOL bImidiateRepainting);
CWorldEditorDoc* GetDocument(void);
/* gets pointer to MDIFrameWnd main frame of application */
CMainFrame *GetMainFrame(void);
/* set parameters for projection depending on current rendering preferences. */
void SetProjection(CDrawPort *pDP);
/* called by document at the beginning of CSG */
void AtStartCSG(void);
/* called by document at the end of CSG */
void AtStopCSG(void);
/* get pointer to the child frame of this view */
CChildFrame *GetChildFrame(void);
/* if delete entity operation is allowed returns true */
BOOL IsDeleteEntityEnabled(void);
// remove given entity from linked chain
void RemoveFromLinkedChain(CEntity *pen);
/* Returns curently active mip factor (auto or manual one) */
FLOAT GetCurrentlyActiveMipFactor(void);
/* obtain point in the world where mouse pointed last time it was moved */
CPlacement3D GetMouseInWorldPlacement(void);
void CreatePrimitiveCalledFromPopup();
void RenderBackdropTexture(CDrawPort *pDP,FLOAT3D v0, FLOAT3D v1, FLOAT3D v2, FLOAT3D v3,
CTextureObject &to);
void OnAlignPrimitive(void);
void CenterSelected(void);
void AllignBox( FLOATaabbox3D bbox);
void AllignPolygon( CBrushPolygon *pbpo);
void EditCopy( BOOL bAlternative);
void CopyMapping(CBrushPolygon *pbpo);
void PasteMappingOnOnePolygon(CBrushPolygon *pbpo, BOOL bAsProjected);
void PasteMapping(CBrushPolygon *pbpo, BOOL bAsProjected);
void PasteOneLayerMapping(INDEX iLayer, CMappingDefinition &md,
FLOATplane3D &pl, CBrushPolygon *pbpo, BOOL bAsProjected);
void PasteTexture( CBrushPolygon *pbpoPolygon);
void CopySectorAmbient( CBrushSector *pbscSector);
void PasteSectorAmbient( CBrushSector *pbscSector);
void StorePolygonSelection(CBrushPolygonSelection &selPolygons,
CDynamicContainer<CBrushPolygon> &dcPolygons);
void RestorePolygonSelection(CBrushPolygonSelection &selPolygons,
CDynamicContainer<CBrushPolygon> &dcPolygons);
void DiscardShadows( CEntity *penEntity);
void DiscardShadows( CBrushSector *pbscSector);
void DiscardShadows( CBrushPolygon *pbpoPolygon);
void ApplyDefaultMapping(CBrushPolygon *pbpo, BOOL bRotation, BOOL bOffset, BOOL bStretch);
// get current brush mip of current csg target brush
CBrushMip *GetCurrentBrushMip(void);
void SetMipBrushFactor(void);
void OnAddMorePreciseMip(BOOL bClone);
void OnAddRougherMipLevel(BOOL bClone);
void OnNextPolygon(void);
void OnPreviousPolygon(void);
void Rotate( FLOAT fAngleLR, FLOAT fAngleUD, BOOL bSmooth=FALSE);
void MultiplyMappingOnPolygon( FLOAT fFactor);
void CallPopupMenu(CPoint point);
void DrawArrowAndTypeText( CProjection3D &prProjection,
const FLOAT3D &v0, const FLOAT3D &v1, COLOR colColor, CTString strText);
void DrawAxis( const PIX2D &pixC, PIX len, COLOR colColor, COLOR colTextColor, CTString strU, CTString strV);
void SnapVector(FLOAT3D &vToSnap);
void SnapVector(DOUBLE3D &vToSnap);
FLOAT3D ProjectVectorToWorldSpace(FLOAT fDX,FLOAT fDY,FLOAT fDZ);
FLOAT3D Get3DCoordinateFrom2D( POINT &pt);
POINT Get2DCoordinateFrom3D( FLOAT3D vPoint);
BOOL IsCutEnabled(CTString &strError);
void SelectAllTargetsOfEntity(CEntity *pen);
void SelectAllTargetsOfSelectedEntities(void);
BOOL IsSelectClonesOnContextEnabled( void);
BOOL IsSelectOfSameClassOnContextEnabled( void);
void ApplyFreeModeControls( CPlacement3D &pl, ANGLE3D &a, FLOAT &fSpeedMultiplier, BOOL bPrescan);
void PumpWindowsMessagesInFreeMode(BOOL &bRunning, FLOAT &fSpeedMultiplier);
void SelectWhoTargets( CDynamicContainer<CEntity> &dcTargetedEntities);
void OnRemainSelectedByOrientation(BOOL bBothSides);
void OnDropMarker(CPlacement3D plMarker);
// functions for mapping fitting
void AutoFitMapping(CBrushPolygon *pbpo, BOOL bInvert=FALSE, BOOL bFitBoth=FALSE);
void AutoFitMappingOnPolygon(CBrushPolygon &bpo, BOOL bInvert=FALSE, BOOL bFitBoth=FALSE);
void SetAsCsgTarget(CEntity *pen);
void ShowLinkTree(CEntity *pen, BOOL bWhoTargets=FALSE, BOOL bPropertyNames=FALSE);
BOOL SaveAutoTexture(FLOATaabbox3D boxBrush, CTFileName &fnTex);
void AutoApplyTexture(FLOATaabbox3D boxBrush, CTFileName &fnTex);
void AutoApplyTextureOntoPolygon(CBrushPolygon &bpo, FLOATaabbox3D boxBrush, CTFileName &fnTex);
BOOL SetAutoTextureBoxParams(FLOATaabbox3D boxBrush, CTFileName &fnTex);
void Align(BOOL bX,BOOL bY,BOOL bZ,BOOL bH,BOOL bP,BOOL bB);
void PolygonsToBrush(CBrushPolygonSelection &selPolygons, BOOL bDeleteSectors, BOOL bZoning);
void SnapSelectedVerticesToPlane(void);
void RenderAndApplyTerrainEditBrush(FLOAT3D vHit);
void InvokeSelectLayerCombo(void);
void OnIdle(void);
void UpdateCursor(void);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CWorldEditorView)
public:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
virtual void OnInitialUpdate();
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);
virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CWorldEditorView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
public:
//{{AFX_MSG(CWorldEditorView)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnKillFocus(CWnd* pNewWnd);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
afx_msg void OnDropFiles(HDROP hDropInfo);
afx_msg void OnIsometricFront();
afx_msg void OnIsometricBack();
afx_msg void OnIsometricBottom();
afx_msg void OnIsometricLeft();
afx_msg void OnIsometricRight();
afx_msg void OnIsometricTop();
afx_msg void OnPerspective();
afx_msg void OnZoomLess();
afx_msg void OnZoomMore();
afx_msg void OnMoveDown();
afx_msg void OnMoveUp();
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
afx_msg void OnMeasurementTape();
afx_msg void OnUpdateMeasurementTape(CCmdUI* pCmdUI);
afx_msg void OnCircleModes();
afx_msg void OnUpdateCircleModes(CCmdUI* pCmdUI);
afx_msg void OnDeselectAll();
afx_msg void OnDeleteEntities();
afx_msg void OnUpdateDeleteEntities(CCmdUI* pCmdUI);
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
afx_msg void OnTakeSs();
afx_msg void OnUpdateEntityMode(CCmdUI* pCmdUI);
afx_msg void OnSectorMode();
afx_msg void OnUpdateSectorMode(CCmdUI* pCmdUI);
afx_msg void OnPolygonMode();
afx_msg void OnUpdatePolygonMode(CCmdUI* pCmdUI);
afx_msg void OnEditPaste();
afx_msg void OnEditCopy();
afx_msg void OnCloneCSG();
afx_msg void OnUpdateCloneCsg(CCmdUI* pCmdUI);
afx_msg void OnMeasureOn();
afx_msg void OnUpdateMeasureOn(CCmdUI* pCmdUI);
afx_msg void OnResetViewer();
afx_msg void OnCopyTexture();
afx_msg void OnPasteTexture();
afx_msg void OnCenterEntity();
afx_msg void OnFunction();
afx_msg void OnUpdateCenterEntity(CCmdUI* pCmdUI);
afx_msg void OnDropMarker();
afx_msg void OnUpdateDropMarker(CCmdUI* pCmdUI);
afx_msg void OnTestConnections();
afx_msg void OnUpdateTestConnections(CCmdUI* pCmdUI);
afx_msg void OnAlignVolume();
afx_msg void OnUpdateAlignVolume(CCmdUI* pCmdUI);
afx_msg void OnCurrentViewProperties();
afx_msg void OnDeleteMip();
afx_msg void OnUpdateDeleteMip(CCmdUI* pCmdUI);
afx_msg void OnPreviousMipBrush();
afx_msg void OnUpdatePreviousMipBrush(CCmdUI* pCmdUI);
afx_msg void OnNextMipBrush();
afx_msg void OnUpdateNextMipBrush(CCmdUI* pCmdUI);
afx_msg void OnCrossroadForC();
afx_msg void OnChooseColor();
afx_msg void OnUpdateChooseColor(CCmdUI* pCmdUI);
afx_msg void OnMenuCopyMapping();
afx_msg void OnMenuPasteMapping();
afx_msg void OnSetAsCsgTarget();
afx_msg void OnKeyPaste();
afx_msg void OnRButtonDblClk(UINT nFlags, CPoint point);
afx_msg void OnSelectByTextureAdjacent();
afx_msg void OnSelectByTextureInSector();
afx_msg void OnSelectByColorInSector();
afx_msg void OnConusPrimitive();
afx_msg void OnTorusPrimitive();
afx_msg void OnTerrainPrimitive();
afx_msg void OnSpherePrimitive();
afx_msg void OnStaircasePrimitive();
afx_msg void OnUpdateConusPrimitive(CCmdUI* pCmdUI);
afx_msg void OnUpdateSpherePrimitive(CCmdUI* pCmdUI);
afx_msg void OnUpdateTerrainPrimitive(CCmdUI* pCmdUI);
afx_msg void OnUpdateTorusPrimitive(CCmdUI* pCmdUI);
afx_msg void OnUpdateStaircasePrimitive(CCmdUI* pCmdUI);
afx_msg void OnPopupConus();
afx_msg void OnPopupSphere();
afx_msg void OnPopupStairs();
afx_msg void OnPopupTerrain();
afx_msg void OnPopupTorus();
afx_msg void OnUpdateMoveDown(CCmdUI* pCmdUI);
afx_msg void OnUpdateMoveUp(CCmdUI* pCmdUI);
afx_msg void OnSelectLights();
afx_msg void OnDiscardShadows();
afx_msg void OnCopySectorAmbient();
afx_msg void OnPasteSectorAmbient();
afx_msg void OnSelectAllPolygons();
afx_msg void OnCopySectors();
afx_msg void OnDeleteSectors();
afx_msg void OnPasteSectors();
afx_msg void OnCenterBcgViewer();
afx_msg void OnMenuPasteAsProjectedMapping();
afx_msg void OnKeyPasteAsProjected();
afx_msg void OnSelectAllEntitiesInSectors();
afx_msg void OnSelectAllSectors();
afx_msg void OnLastPrimitive();
afx_msg void OnUpdateLastPrimitive(CCmdUI* pCmdUI);
afx_msg void OnCloneToMorePreciseMip();
afx_msg void OnCloneToRougherMipLevel();
afx_msg void OnCreateEmptyMorePreciseMip();
afx_msg void OnCreateEmptyRougherMip();
afx_msg void OnUpdateCloneToMorePreciseMip(CCmdUI* pCmdUI);
afx_msg void OnUpdateCloneToRougherMipLevel(CCmdUI* pCmdUI);
afx_msg void OnUpdateCreateEmptyMorePreciseMip(CCmdUI* pCmdUI);
afx_msg void OnUpdateCreateEmptyRougherMip(CCmdUI* pCmdUI);
afx_msg void OnEditPasteAlternative();
afx_msg void OnSelectAllEntitiesInWorld();
afx_msg void OnUpdateEditPasteAlternative(CCmdUI* pCmdUI);
afx_msg void OnEntityMode();
afx_msg void OnFindTexture();
afx_msg void OnSelectSectorsWithSameName();
afx_msg void OnSelectSectorsArroundEntity();
afx_msg void OnSelectSectorsArroundEntityOnContext();
afx_msg void OnInsertVertex();
afx_msg void OnDeleteVertex();
afx_msg void OnSavePicturesForEnvironment();
afx_msg void OnUpdateSavePicturesForEnvironment(CCmdUI* pCmdUI);
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnCsgSelectSector();
afx_msg void OnMenuAlignMappingU();
afx_msg void OnMenuAlignMappingV();
afx_msg void OnDestroy();
afx_msg void OnFallDown();
afx_msg void OnPrevious();
afx_msg void OnNext();
afx_msg void OnUpdatePrevious(CCmdUI* pCmdUI);
afx_msg void OnUpdateNext(CCmdUI* pCmdUI);
afx_msg void OnRemoveUnusedTextures();
afx_msg void OnRotate();
afx_msg void OnRotateBack();
afx_msg void OnSelectVisibleSectors();
afx_msg void OnEditCopyAlternative();
afx_msg void OnRotateLeft();
afx_msg void OnRotateRight();
afx_msg void OnRotateUp();
afx_msg void OnRotateDown();
afx_msg void OnSelectWhoTargets();
afx_msg void OnSelectInvalidTris();
afx_msg void OnTestConnectionsBack();
afx_msg void OnUpdateTestConnectionsBack(CCmdUI* pCmdUI);
afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
afx_msg void OnSelectSectorsOtherSide();
afx_msg void OnSelectLinksToSector();
afx_msg void OnRemainSelectedByOrientation();
afx_msg void OnDeselectByOrientation();
afx_msg void OnVertexMode();
afx_msg void OnReoptimizeBrushes();
afx_msg void OnMergeVertices();
afx_msg void OnExportDisplaceMap();
afx_msg void OnCutMode();
afx_msg void OnUpdateCutMode(CCmdUI* pCmdUI);
afx_msg void OnSelectAllTargets();
afx_msg void OnSelectAllTargetsOnContext();
afx_msg void OnSelectClones();
afx_msg void OnSelectClonesOnContext();
afx_msg void OnUpdateSelectClones(CCmdUI* pCmdUI);
afx_msg void OnSelectAllVertices();
afx_msg void OnSelectOfSameClass();
afx_msg void OnSelectOfSameClassOnContext();
afx_msg void OnAlternativeMovingMode();
afx_msg void OnReTriple();
afx_msg void OnSelectWhoTargetsOnContext();
afx_msg void OnClearAllTargets();
afx_msg void OnSelectCsgTarget();
afx_msg void OnUpdateSelectCsgTarget(CCmdUI* pCmdUI);
afx_msg void OnRemainSelectedbyOrientationSingle();
afx_msg void OnUpdateReTriple(CCmdUI* pCmdUI);
afx_msg void OnTriangularizePolygon();
afx_msg void OnEntityContextHelp();
afx_msg void OnPopupAutoFitMapping();
afx_msg void OnTriangularizeSelection();
afx_msg void OnUpdateTriangularizeSelection(CCmdUI* pCmdUI);
afx_msg void OnPopupAutoFitMappingSmall();
afx_msg void OnPopupAutoFitMappingBoth();
afx_msg void OnResetMappingOffset();
afx_msg void OnResetMappingRotation();
afx_msg void OnResetMappingStretch();
afx_msg void OnCrossroadForL();
afx_msg void OnSelectUsingTargetTree();
afx_msg void OnTargetTree();
afx_msg void OnUpdateTargetTree(CCmdUI* pCmdUI);
afx_msg void OnSwapLayers12();
afx_msg void OnSwapLayers23();
afx_msg void OnSelectDescendants();
afx_msg void OnCrossroadForCtrlF();
afx_msg void OnRotateToTargetCenter();
afx_msg void OnRotateToTargetOrigin();
afx_msg void OnCopyOrientation();
afx_msg void OnCopyPlacement();
afx_msg void OnCopyPosition();
afx_msg void OnPasteOrientation();
afx_msg void OnPastePlacement();
afx_msg void OnPastePosition();
afx_msg void OnAlignB();
afx_msg void OnAlignH();
afx_msg void OnAlignP();
afx_msg void OnAlignX();
afx_msg void OnAlignY();
afx_msg void OnAlignZ();
afx_msg void OnAutotexturizeMips();
afx_msg void OnUpdateAutotexturizeMips(CCmdUI* pCmdUI);
afx_msg void OnRandomOffsetU();
afx_msg void OnRandomOffsetV();
afx_msg void OnStretchRelativeOffset();
afx_msg void OnDeselectHidden();
afx_msg void OnSelectHidden();
afx_msg void OnSectorsToBrush();
afx_msg void OnPolygonsToBrush();
afx_msg void OnClonePolygons();
afx_msg void OnDeletePolygons();
afx_msg void OnKeyU();
afx_msg void OnKeyD();
afx_msg void OnFlipPolygon();
afx_msg void OnKeyM();
afx_msg void OnKeyBackslash();
afx_msg void OnKeyO();
afx_msg void OnUpdateKeyO(CCmdUI* pCmdUI);
afx_msg void OnKeyCtrlShiftE();
afx_msg void OnKeyCtrlShiftG();
afx_msg void OnUpdateKeyCtrlShiftG(CCmdUI* pCmdUI);
afx_msg void OnKeyCtrlShiftK();
#if SE1_TERRAINS
afx_msg void OnTerrainMode();
afx_msg void OnUpdateTerrainMode(CCmdUI* pCmdUI);
afx_msg void OnSelectBrush();
afx_msg void OnSelectTerrain();
afx_msg void OnAltitudeEditMode();
afx_msg void OnLayerTextureEditMode();
afx_msg void OnTbrushAltitude();
afx_msg void OnTbrushEquilaze();
afx_msg void OnTbrushErase();
afx_msg void OnTbrushNoise();
afx_msg void OnTbrushSmooth();
afx_msg void OnOptimizeTerrain();
afx_msg void OnRecalculateTerrainShadows();
afx_msg void OnViewHeightmap();
afx_msg void OnImportHeightmap();
afx_msg void OnExportHeightmap();
afx_msg void OnImportHeightmap16();
afx_msg void OnExportHeightmap16();
afx_msg void OnExportB2WHeightmap(); // [Cecil]
afx_msg void OnSelectLayer();
afx_msg void OnPickLayer();
afx_msg void OnPosterize();
afx_msg void OnFlatten();
afx_msg void OnApplyFilter();
afx_msg void OnTeSmooth();
afx_msg void OnEditTerrainPrefs();
afx_msg void OnUpdateEditTerrainPrefs(CCmdUI* pCmdUI);
afx_msg void OnTerrainLayerOptions();
afx_msg void OnUpdateTerrainLayerOptions(CCmdUI* pCmdUI);
afx_msg void OnApplyContinousNoise();
afx_msg void OnApplyMinimum();
afx_msg void OnApplyMaximum();
afx_msg void OnApplyFlatten();
afx_msg void OnApplyPosterize();
afx_msg void OnOptimizeLayers();
afx_msg void OnTbrushContinousNoise();
afx_msg void OnTbrushFilter();
afx_msg void OnTbrushFlatten();
afx_msg void OnTbrushMaximum();
afx_msg void OnTbrushMinimum();
afx_msg void OnTbrushPosterize();
afx_msg void OnTerrainProperties();
#endif
//}}AFX_MSG
afx_msg void OnKeyBuffer(UINT nID);
afx_msg void OnKeyEditBuffer(UINT nID);
DECLARE_MESSAGE_MAP()
};
#ifndef _DEBUG // debug version in WorldEditorView.cpp
inline CWorldEditorDoc* CWorldEditorView::GetDocument()
{ return (CWorldEditorDoc*)m_pDocument; }
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // WORLDEDITORVIEW_H