00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00039 #ifndef __vtkRenderView_h
00040 #define __vtkRenderView_h
00041
00042 #include "vtkRenderViewBase.h"
00043 #include "vtkSmartPointer.h"
00044
00045 class vtkAbstractTransform;
00046 class vtkActor2D;
00047 class vtkAlgorithmOutput;
00048 class vtkArrayCalculator;
00049 class vtkBalloonRepresentation;
00050 class vtkDynamic2DLabelMapper;
00051 class vtkHardwareSelector;
00052 class vtkHoverWidget;
00053 class vtkInteractorObserver;
00054 class vtkLabelPlacementMapper;
00055 class vtkPolyDataMapper2D;
00056 class vtkSelection;
00057 class vtkTextProperty;
00058 class vtkTexture;
00059 class vtkTexturedActor2D;
00060 class vtkTransformCoordinateSystems;
00061
00062 class VTK_VIEWS_EXPORT vtkRenderView : public vtkRenderViewBase
00063 {
00064 public:
00065 static vtkRenderView* New();
00066 vtkTypeMacro(vtkRenderView, vtkRenderViewBase);
00067 void PrintSelf(ostream& os, vtkIndent indent);
00068
00072 virtual void SetInteractor(vtkRenderWindowInteractor *interactor);
00073
00075 virtual void SetInteractorStyle(vtkInteractorObserver* style);
00076
00078 virtual vtkInteractorObserver* GetInteractorStyle();
00079
00083 virtual void SetRenderWindow(vtkRenderWindow *win);
00084
00085
00086 enum
00087 {
00088 INTERACTION_MODE_2D,
00089 INTERACTION_MODE_3D,
00090 INTERACTION_MODE_UNKNOWN
00091 };
00092
00093 void SetInteractionMode(int mode);
00094 vtkGetMacro(InteractionMode, int);
00095
00097
00100 virtual void SetInteractionModeTo2D()
00101 { this->SetInteractionMode(INTERACTION_MODE_2D); }
00102 virtual void SetInteractionModeTo3D()
00103 { this->SetInteractionMode(INTERACTION_MODE_3D); }
00105
00108 virtual void Render();
00109
00111 virtual void ApplyViewTheme(vtkViewTheme* theme);
00112
00114
00116 virtual void SetTransform(vtkAbstractTransform* transform);
00117 vtkGetObjectMacro(Transform, vtkAbstractTransform);
00119
00121
00122 virtual void SetDisplayHoverText(bool b);
00123 vtkGetMacro(DisplayHoverText, bool);
00124 vtkBooleanMacro(DisplayHoverText, bool);
00126
00127
00128 enum {
00129 SURFACE = 0,
00130 FRUSTUM = 1
00131 };
00132
00133
00135
00139 vtkSetClampMacro(SelectionMode, int, 0, 1);
00140 vtkGetMacro(SelectionMode, int);
00141 void SetSelectionModeToSurface() { this->SetSelectionMode(SURFACE); }
00142 void SetSelectionModeToFrustum() { this->SetSelectionMode(FRUSTUM); }
00144
00148 virtual void AddLabels(vtkAlgorithmOutput* conn);
00149
00151 virtual void RemoveLabels(vtkAlgorithmOutput* conn);
00152
00154
00155 virtual void SetIconTexture(vtkTexture* texture);
00156 vtkGetObjectMacro(IconTexture, vtkTexture);
00158
00160
00161 vtkSetVector2Macro(IconSize, int);
00162 vtkGetVector2Macro(IconSize, int);
00164
00166
00169 vtkSetVector2Macro(DisplaySize, int);
00170 int* GetDisplaySize();
00171 void GetDisplaySize(int &dsx, int &dsy);
00173
00174
00175 enum
00176 {
00177 NO_OVERLAP,
00178 ALL
00179 };
00180
00181
00183
00187 virtual void SetLabelPlacementMode(int mode);
00188 virtual int GetLabelPlacementMode();
00189 virtual void SetLabelPlacementModeToNoOverlap()
00190 { this->SetLabelPlacementMode(NO_OVERLAP); }
00191 virtual void SetLabelPlacementModeToAll()
00192 { this->SetLabelPlacementMode(ALL); }
00194
00195
00196 enum
00197 {
00198 FREETYPE,
00199 QT
00200 };
00201
00202
00204
00206 virtual void SetLabelRenderMode(int mode);
00207 virtual int GetLabelRenderMode();
00208 virtual void SetLabelRenderModeToFreetype()
00209 { this->SetLabelRenderMode(FREETYPE); }
00210 virtual void SetLabelRenderModeToQt()
00211 { this->SetLabelRenderMode(QT); }
00213
00215
00216 void SetRenderOnMouseMove(bool b);
00217 vtkGetMacro(RenderOnMouseMove, bool);
00218 vtkBooleanMacro(RenderOnMouseMove, bool);
00219 protected:
00220 vtkRenderView();
00221 ~vtkRenderView();
00223
00225
00228 virtual void ProcessEvents(vtkObject* caller, unsigned long eventId,
00229 void* callData);
00231
00233
00235 virtual void GenerateSelection(
00236 void* callData, vtkSelection* selection);
00238
00240 virtual void PrepareForRendering();
00241
00243 virtual void UpdateHoverText();
00244
00247 virtual void UpdateHoverWidgetState();
00248
00251 void UpdatePickRender();
00252
00253 int SelectionMode;
00254 int LabelRenderMode;
00255 bool DisplayHoverText;
00256 bool Interacting;
00257 bool InHoverTextRender;
00258 bool InPickRender;
00259 bool PickRenderNeedsUpdate;
00260
00261 vtkAbstractTransform* Transform;
00262 vtkTexture* IconTexture;
00263 int IconSize[2];
00264 int DisplaySize[2];
00265
00266 int InteractionMode;
00267 bool RenderOnMouseMove;
00268
00269
00270 vtkSmartPointer<vtkRenderer> LabelRenderer;
00271 vtkSmartPointer<vtkBalloonRepresentation> Balloon;
00272 vtkSmartPointer<vtkLabelPlacementMapper> LabelPlacementMapper;
00273 vtkSmartPointer<vtkTexturedActor2D> LabelActor;
00274 vtkSmartPointer<vtkHoverWidget> HoverWidget;
00275 vtkSmartPointer<vtkHardwareSelector> Selector;
00276
00277
00278 private:
00279 vtkRenderView(const vtkRenderView&);
00280 void operator=(const vtkRenderView&);
00281 };
00282
00283 #endif