ParaView
vtkPythonView.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: vtkPythonView.h
5 
6  Copyright (c) Kitware, Inc.
7  All rights reserved.
8  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
22 #ifndef vtkPythonView_h
23 #define vtkPythonView_h
24 
25 #include "vtkPVView.h"
26 
27 #include "vtkImageData.h" // needed for member variable
28 #include "vtkPVClientServerCoreRenderingModule.h" //needed for exports
29 #include "vtkSmartPointer.h" //needed for member variables
30 
31 class vtkImageData;
32 class vtkInformationRequestKey;
34 class vtkRenderer;
35 class vtkRenderWindow;
36 class vtkTexture;
37 
38 struct _object;
39 typedef struct _object PyObject;
40 
41 class VTKPVCLIENTSERVERCORERENDERING_EXPORT vtkPythonView : public vtkPVView
42 {
43 public:
44  static vtkPythonView* New();
45  vtkTypeMacro(vtkPythonView, vtkPVView);
46  void PrintSelf(ostream& os, vtkIndent indent);
47 
51  static vtkInformationRequestKey* REQUEST_DELIVER_DATA_TO_CLIENT();
52 
57  virtual void Update();
58 
62  virtual vtkRenderer* GetRenderer();
63 
64  // Sets the renderer for this view.
65  virtual void SetRenderer(vtkRenderer* ren);
66 
70  virtual vtkRenderWindow* GetRenderWindow();
71 
77  virtual void SetRenderWindow(vtkRenderWindow* win);
78 
80 
83  vtkSetStringMacro(Script);
84  vtkGetStringMacro(Script);
86 
88 
91  vtkSetMacro(Magnification, int);
92  vtkGetMacro(Magnification, int);
94 
98  int GetNumberOfVisibleDataObjects();
99 
103  vtkPythonRepresentation* GetVisibleRepresentation(int visibleObjectIndex);
104 
115  vtkDataObject* GetVisibleDataObjectForSetup(int visibleObjectIndex);
116 
125  vtkDataObject* GetVisibleDataObjectForRendering(int visibleObjectIndex);
126 
132  int GetNumberOfAttributeArrays(int visibleObjectIndex, int attributeType);
133 
138  const char* GetAttributeArrayName(int visibleObjectIndex, int attributeType, int arrayIndex);
139 
147  void SetAttributeArrayStatus(
148  int visibleObjectIndex, int attributeType, const char* name, int status);
149 
155  int GetAttributeArrayStatus(int visibleObjectIndex, int attributeType, const char* name);
156 
160  void EnableAllAttributeArrays();
161 
165  void DisableAllAttributeArrays();
166 
167  virtual void StillRender();
168 
169  virtual void InteractiveRender();
170 
172 
177  vtkSetObjectMacro(ImageData, vtkImageData);
179 
180 protected:
181  vtkPythonView();
182  virtual ~vtkPythonView();
183 
184  vtkSmartPointer<vtkTexture> RenderTexture;
185  vtkSmartPointer<vtkRenderer> Renderer;
186  vtkSmartPointer<vtkRenderWindow> RenderWindow;
187 
188  // Needed to handle rendering at different magnifications
190 
194  bool IsLocalDataAvailable();
195 
196 private:
197  vtkPythonView(const vtkPythonView&) VTK_DELETE_FUNCTION;
198  void operator=(const vtkPythonView&) VTK_DELETE_FUNCTION;
199 
200  // Run Python code with custom local dictionary
201  int RunSimpleStringWithCustomLocals(const char* code);
202 
203  class vtkInternals;
204  vtkInternals* Internals;
205 
206  // The Python script
207  char* Script;
208 
209  // The image data to be displayed in the view
210  vtkImageData* ImageData;
211 };
212 
213 #endif
void PrintSelf(ostream &os, vtkIndent indent)
struct _object PyObject
Definition: vtkPythonView.h:39
vtkSmartPointer< vtkRenderer > Renderer
vtkSmartPointer< vtkRenderWindow > RenderWindow
Representation for showing data in a vtkPythonView.
baseclass for all ParaView views.
Definition: vtkPVView.h:38
vtkPythonView is a view for displaying data via a Python script that uses matplotlib to generate a pl...
Definition: vtkPythonView.h:41
vtkSmartPointer< vtkTexture > RenderTexture
virtual void StillRender()=0
Triggers a high-resolution render.
virtual void Update()
Overridden to not call Update() directly on the input representations, instead use ProcessViewRequest...
virtual void InteractiveRender()=0
Triggers a interactive render.