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 "vtkView.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 vtkRenderer;
00057 class vtkRenderWindow;
00058 class vtkRenderWindowInteractor;
00059 class vtkSelection;
00060 class vtkTextProperty;
00061 class vtkTexture;
00062 class vtkTexturedActor2D;
00063 class vtkTransformCoordinateSystems;
00064
00065 class VTK_VIEWS_EXPORT vtkRenderView : public vtkView
00066 {
00067 public:
00068 static vtkRenderView* New();
00069 vtkTypeMacro(vtkRenderView, vtkView);
00070 void PrintSelf(ostream& os, vtkIndent indent);
00071
00073
00074 vtkGetObjectMacro(Renderer, vtkRenderer);
00076
00078
00079 vtkGetObjectMacro(RenderWindow, vtkRenderWindow);
00081
00083
00084 virtual vtkRenderWindowInteractor* GetInteractor();
00085 virtual void SetInteractor(vtkRenderWindowInteractor *interactor);
00087
00089
00090 virtual void SetInteractorStyle(vtkInteractorObserver* style);
00091 virtual vtkInteractorObserver* GetInteractorStyle();
00093
00094
00095 enum
00096 {
00097 INTERACTION_MODE_2D,
00098 INTERACTION_MODE_3D,
00099 INTERACTION_MODE_UNKNOWN
00100 };
00101
00102
00104
00107 virtual void SetInteractionMode(int mode);
00108 vtkGetMacro(InteractionMode, int);
00109 virtual void SetInteractionModeTo2D()
00110 { this->SetInteractionMode(INTERACTION_MODE_2D); }
00111 virtual void SetInteractionModeTo3D()
00112 { this->SetInteractionMode(INTERACTION_MODE_3D); }
00114
00116 virtual void ApplyViewTheme(vtkViewTheme* theme);
00117
00119
00121 virtual void SetTransform(vtkAbstractTransform* transform);
00122 vtkGetObjectMacro(Transform, vtkAbstractTransform);
00124
00126
00127 virtual void SetDisplayHoverText(bool b);
00128 vtkGetMacro(DisplayHoverText, bool);
00129 vtkBooleanMacro(DisplayHoverText, bool);
00131
00132
00133 enum {
00134 SURFACE = 0,
00135 FRUSTUM = 1
00136 };
00137
00138
00140
00144 vtkSetClampMacro(SelectionMode, int, 0, 1);
00145 vtkGetMacro(SelectionMode, int);
00146 void SetSelectionModeToSurface() { this->SetSelectionMode(SURFACE); }
00147 void SetSelectionModeToFrustum() { this->SetSelectionMode(FRUSTUM); }
00149
00152 virtual void Render();
00153
00156 virtual void ResetCamera();
00157
00160 virtual void ResetCameraClippingRange();
00161
00165 virtual void AddLabels(vtkAlgorithmOutput* conn);
00166
00168 virtual void RemoveLabels(vtkAlgorithmOutput* conn);
00169
00171
00172 virtual void SetIconTexture(vtkTexture* texture);
00173 vtkGetObjectMacro(IconTexture, vtkTexture);
00175
00177
00178 vtkSetVector2Macro(IconSize, int);
00179 vtkGetVector2Macro(IconSize, int);
00181
00182
00183 enum
00184 {
00185 NO_OVERLAP,
00186 ALL
00187 };
00188
00189
00191
00195 virtual void SetLabelPlacementMode(int mode);
00196 virtual int GetLabelPlacementMode();
00197 virtual void SetLabelPlacementModeToNoOverlap()
00198 { this->SetLabelPlacementMode(NO_OVERLAP); }
00199 virtual void SetLabelPlacementModeToAll()
00200 { this->SetLabelPlacementMode(ALL); }
00202
00203
00204 enum
00205 {
00206 FREETYPE,
00207 QT
00208 };
00209
00210
00212
00214 virtual void SetLabelRenderMode(int mode);
00215 virtual int GetLabelRenderMode();
00216 virtual void SetLabelRenderModeToFreetype()
00217 { this->SetLabelRenderMode(FREETYPE); }
00218 virtual void SetLabelRenderModeToQt()
00219 { this->SetLabelRenderMode(QT); }
00221
00222 protected:
00223 vtkRenderView();
00224 ~vtkRenderView();
00225
00227
00230 virtual void ProcessEvents(vtkObject* caller, unsigned long eventId,
00231 void* callData);
00233
00235
00237 virtual void GenerateSelection(
00238 void* callData, vtkSelection* selection);
00240
00242 virtual void PrepareForRendering();
00243
00245 virtual void UpdateHoverText();
00246
00249 virtual void UpdateHoverWidgetState();
00250
00253 void UpdatePickRender();
00254
00256
00257 void SetRenderOnMouseMove(bool b);
00258 vtkGetMacro(RenderOnMouseMove, bool);
00259 vtkBooleanMacro(RenderOnMouseMove, bool);
00261
00262 vtkRenderer* Renderer;
00263 vtkRenderer* LabelRenderer;
00264 vtkRenderWindow* RenderWindow;
00265 int SelectionMode;
00266 int InteractionMode;
00267 int LabelRenderMode;
00268 bool DisplayHoverText;
00269 bool Interacting;
00270 bool InHoverTextRender;
00271 bool InPickRender;
00272 bool PickRenderNeedsUpdate;
00273
00274 vtkAbstractTransform* Transform;
00275 vtkTexture* IconTexture;
00276 int IconSize[2];
00277
00278
00279 vtkSmartPointer<vtkBalloonRepresentation> Balloon;
00280 vtkSmartPointer<vtkLabelPlacementMapper> LabelPlacementMapper;
00281 vtkSmartPointer<vtkTexturedActor2D> LabelActor;
00282 vtkSmartPointer<vtkHoverWidget> HoverWidget;
00283 vtkSmartPointer<vtkHardwareSelector> Selector;
00284
00285
00286 private:
00287 vtkRenderView(const vtkRenderView&);
00288 void operator=(const vtkRenderView&);
00289
00290 bool RenderOnMouseMove;
00291 };
00292
00293 #endif