Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 namespace mudbox {
00030
00031
00032
00033 class ViewPortFilter;
00034
00035
00036
00038
00039 struct ViewPortState
00040
00041 {
00042
00043 Texture *m_pColor;
00044
00045 Texture *m_pDepth;
00046
00047 Texture *m_pPosition;
00048
00049 Texture *m_pNormal;
00050
00051 Texture *m_pLinearDepth;
00052
00053 Texture *m_pFaceNormal;
00054
00055 bool m_bHDRNeeded;
00056
00057 };
00058
00059
00060
00062
00064
00066
00068
00070
00072
00073 class MBDLL_DECL ViewPortFilter : public Layer
00074
00075 {
00076
00077 DECLARE_CLASS;
00078
00079 public:
00080
00081
00082
00084
00086
00088
00090
00091 typedef int RequirementValue;
00092
00093 enum
00094
00095 {
00096
00097 eNone = 0,
00098
00099 eColor = 1,
00100
00101 eHDR = 2,
00102
00103 eDepth24 = 4,
00104
00105
00106
00107 eNormal16 = 16,
00108
00109 ePosition32 = 32,
00110
00111
00112
00113 eNormalDepth16 = 128,
00114
00115
00116
00117 eLinearDepth = 512,
00118
00119 eFaceNormal = 1024,
00120
00121 };
00122
00123
00124
00126
00127 virtual QString StringID( const ClassDesc *pClass = 0 ) const;
00128
00129
00130
00132
00133 virtual QString DisplayName( void ) const;
00134
00135
00136
00138
00139 virtual void Initialize(void);
00140
00141
00142
00144
00146
00148
00150
00152
00154
00155 virtual RequirementValue Requirement( void ) const;
00156
00157
00158
00160
00162
00164
00166
00168
00170
00172
00173 virtual void Process(
00174
00175 ViewPortState &sState
00176
00177 );
00178
00179
00180
00182
00183 virtual float Transparency( void ) const;
00184
00185
00186
00188
00189 virtual void SetTransparency(float fTransparency);
00190
00191
00192
00194
00195 virtual Layer *Children( void ) const;
00196
00197
00198
00200
00201 virtual Layer *Next( void ) const;
00202
00203
00204
00206
00207 virtual Layer *Prev( void ) const;
00208
00209
00210
00212
00213 virtual class LayerContainer *Container( void ) const;
00214
00215
00216
00218
00219 void SetVisible(
00220
00221 bool bVisible
00222
00223 );
00224
00225
00226
00228
00230
00232
00234
00236
00238
00240
00242
00244
00246
00248
00250
00252
00254
00255 virtual void LockCalibration(
00256
00257 bool bLock
00258
00259 );
00260
00261
00262
00264
00265 bool CalibrationLocked(void);
00266
00267
00268
00270
00271 class ViewPort *m_pViewPort;
00272
00273
00274
00275 protected:
00276
00277 bool m_bCalibrationLocked;
00278
00279 };
00280
00281
00282
00283
00284
00286
00287 class MBDLL_DECL ViewPort : public LayerContainer
00288
00289 {
00290
00291 DECLARE_CLASS;
00292
00293
00294
00295 protected:
00296
00298
00300
00302
00304
00306
00308
00310
00312
00313 ViewPort( void );
00314
00315 public:
00316
00317
00318
00320
00321 virtual unsigned int FilterCount( void ) const;
00322
00323
00324
00326
00327 virtual ViewPortFilter *Filter(
00328
00329 unsigned int iIndex
00330
00331 ) const;
00332
00333
00334
00336
00337 virtual void AddFilter(
00338
00339 ViewPortFilter *pFilter
00340
00341 );
00342
00343
00344
00346
00347 virtual void RemoveFilter(
00348
00349 unsigned int iIndex
00350
00351 );
00352
00353
00354
00356
00357 void LockFilterCalibration(
00358
00359 bool bLocked
00360
00361 );
00362
00363
00364
00366
00368
00370
00372
00374
00376
00377 virtual void SaveScreenshot(
00378
00379 const QString &sFileName
00380
00381 ) const;
00382
00383
00384
00386
00387 virtual int Width( void );
00388
00389
00390
00392
00393 virtual int Height( void );
00394
00395
00396
00398
00399 class ImagePlaneInterface *ActiveImagePlane();
00400
00401
00402
00404
00405 virtual float CursorXPosition( void ) const;
00406
00407
00408
00410
00411 virtual float CursorYPosition( void ) const;
00412
00413
00414
00416
00417 const SurfacePoint *CursorSurfacePoint(
00418
00419 bool bMirrored = false
00420
00421 ) const;
00422
00423
00424
00426
00427 unsigned int LayerCount( void ) const;
00428
00429
00430
00432
00433 class Layer *Layer(
00434
00435 unsigned int iLayerIndex
00436
00437 ) const;
00438
00439
00440
00442
00443 void UnlinkLayer(
00444
00445 class Layer *pLayer
00446
00447 );
00448
00449
00450
00452
00453 class Layer *CreateLayer( void );
00454
00455
00456
00458
00459 void AddLayer(
00460
00461 class Layer *pLayer
00462
00463 );
00464
00465
00466
00468
00469 class Layer *ActiveLayer( void ) const;
00470
00471
00472
00474
00475 void SetActiveLayer(
00476
00477 class Layer *pLayer
00478
00479 );
00480
00481
00482
00484
00485 ViewPortFilter::RequirementValue ViewPortFilterRequirements( void ) const;
00486
00487
00488
00490
00491 enum RedrawType
00492
00493 {
00494
00495 eFull,
00496
00497 eArea,
00498
00499 eOverlayOnly
00500
00501 };
00502
00503
00504
00506
00507 void Redraw(
00508
00509 RedrawType eType = eFull,
00510
00511 float fXStart = 0,
00512
00513 float fYStart = 0,
00514
00515 float fXEnd = 0,
00516
00517 float fYEnd = 0
00518
00519 );
00520
00522
00523 virtual struct ViewPortState ViewPortState( void );
00524
00525
00526
00527 aevent MouseMoveEvent;
00528
00529 aevent LeftMouseButtonPressEvent;
00530
00531 aevent LeftMouseButtonReleaseEvent;
00532
00533 };
00534
00535
00536
00537 };
00538