00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00034
#ifndef __vtkViewport_h
00035
#define __vtkViewport_h
00036
00037
#include "vtkObject.h"
00038
00039
class vtkActor2DCollection;
00040
class vtkAssemblyPath;
00041
class vtkProp;
00042
class vtkPropCollection;
00043
class vtkWindow;
00044
00045 class VTK_COMMON_EXPORT vtkViewport :
public vtkObject
00046 {
00047
public:
00048 vtkTypeRevisionMacro(vtkViewport,
vtkObject);
00049
void PrintSelf(ostream& os,
vtkIndent indent);
00050
00053
void AddProp(
vtkProp *);
00054
00056 vtkPropCollection *GetProps() {
return this->Props;};
00057
00059
int HasProp(
vtkProp *);
00060
00062
void RemoveProp(
vtkProp *);
00063
00065
void RemoveAllProps(
void);
00066
00068
00071 void AddActor2D(
vtkProp* p) {this->AddProp(p);};
00072
void RemoveActor2D(
vtkProp* p);
00073
vtkActor2DCollection *GetActors2D();
00075
00077
00079 vtkSetVector3Macro(Background,
double);
00080 vtkGetVectorMacro(Background,
double,3);
00082
00084
00086 vtkSetVector2Macro(Aspect,
double);
00087 vtkGetVectorMacro(Aspect,
double,2);
00088
virtual void ComputeAspect();
00090
00092
00095 vtkSetVector2Macro(PixelAspect,
double);
00096 vtkGetVectorMacro(PixelAspect,
double,2);
00098
00100
00103 vtkSetVector4Macro(Viewport,
double);
00104 vtkGetVectorMacro(Viewport,
double,4);
00106
00108
00111 vtkSetVector3Macro(DisplayPoint,
double);
00112 vtkGetVectorMacro(DisplayPoint,
double,3);
00114
00116
00119 vtkSetVector3Macro(ViewPoint,
double);
00120 vtkGetVectorMacro(ViewPoint,
double,3);
00122
00124
00126 vtkSetVector4Macro(WorldPoint,
double);
00127 vtkGetVectorMacro(WorldPoint,
double,4);
00129
00131
virtual double *GetCenter();
00132
00134
virtual int IsInViewport(
int x,
int y);
00135
00137
virtual vtkWindow *GetVTKWindow() = 0;
00138
00140
virtual void DisplayToView();
00141
00143
virtual void ViewToDisplay();
00144
00146
virtual void WorldToView();
00147
00149
virtual void ViewToWorld();
00150
00152 void DisplayToWorld() {this->DisplayToView(); this->ViewToWorld();};
00153
00155 void WorldToDisplay() {this->WorldToView(); this->ViewToDisplay();};
00156
00158
00163
virtual void LocalDisplayToDisplay(
double &x,
double &y);
00164
virtual void DisplayToNormalizedDisplay(
double &u,
double &v);
00165
virtual void NormalizedDisplayToViewport(
double &x,
double &y);
00166
virtual void ViewportToNormalizedViewport(
double &u,
double &v);
00167
virtual void NormalizedViewportToView(
double &x,
double &y,
double &z);
00168 virtual void ViewToWorld(
double &,
double &,
double &) {};
00169
virtual void DisplayToLocalDisplay(
double &x,
double &y);
00170
virtual void NormalizedDisplayToDisplay(
double &u,
double &v);
00171
virtual void ViewportToNormalizedDisplay(
double &x,
double &y);
00172
virtual void NormalizedViewportToViewport(
double &u,
double &v);
00173
virtual void ViewToNormalizedViewport(
double &x,
double &y,
double &z);
00174 virtual void WorldToView(
double &,
double &,
double &) {};
00176
00178
00181
int *GetSize();
00182
int *GetOrigin();
00183
void GetTiledSize(
int *width,
int *height);
00185
00186
00187
00188
00194
virtual vtkAssemblyPath* PickProp(
double selectionX,
double selectionY) = 0;
00195
00197
00200
vtkAssemblyPath* PickPropFrom(
double selectionX,
double selectionY,
00201
vtkPropCollection*);
00203
00205
00207 vtkGetMacro(PickX,
double);
00208 vtkGetMacro(PickY,
double);
00209 vtkGetMacro(IsPicking,
int);
00211
00213
virtual double GetPickedZ() = 0;
00214
00215
protected:
00216
00217
00218
00219 vtkViewport();
00220 ~vtkViewport();
00221
00222
00223
00224
00225
virtual void DevicePickRender() = 0;
00226
00227
virtual void StartPick(
unsigned int pickFromSize) = 0;
00228
00229
virtual void UpdatePickId() = 0;
00230
00231
virtual void DonePick() = 0;
00232
00233
virtual unsigned int GetPickedId() = 0;
00234
00235
00236
00237
00238 vtkAssemblyPath* PickedProp;
00239 vtkPropCollection* PickFromProps;
00240
00241 int IsPicking;
00242 unsigned int CurrentPickId;
00243 double PickX;
00244 double PickY;
00245
00246
00247 vtkPropCollection *Props;
00248 vtkActor2DCollection *Actors2D;
00249 vtkWindow *VTKWindow;
00250 double Background[3];
00251 double Viewport[4];
00252 double Aspect[2];
00253 double PixelAspect[2];
00254 double Center[2];
00255
00256 int Size[2];
00257 int Origin[2];
00258 double DisplayPoint[3];
00259 double ViewPoint[3];
00260 double WorldPoint[4];
00261
00262
private:
00263 vtkViewport(
const vtkViewport&);
00264
void operator=(
const vtkViewport&);
00265 };
00266
00267
00268
00269
#endif