/usr/include/paraview/vtkPVContextView.h is in paraview-dev 5.0.1+dfsg1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | /*=========================================================================
Program: ParaView
Module: vtkPVContextView.h
Copyright (c) Kitware, Inc.
All rights reserved.
See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkPVContextView
// .SECTION Description
// vtkPVContextView adopts vtkContextView so that it can be used in ParaView
// configurations.
#ifndef vtkPVContextView_h
#define vtkPVContextView_h
#include "vtkPVClientServerCoreRenderingModule.h" //needed for exports
#include "vtkPVView.h"
#include "vtkSmartPointer.h" // needed for vtkSmartPointer.
#include "vtkNew.h" // needed for vtkNew.
class vtkAbstractContextItem;
class vtkChart;
class vtkChartRepresentation;
class vtkContextInteractorStyle;
class vtkContextView;
class vtkCSVExporter;
class vtkInformationIntegerKey;
class vtkRenderWindow;
class vtkRenderWindowInteractor;
class vtkSelection;
class VTKPVCLIENTSERVERCORERENDERING_EXPORT vtkPVContextView : public vtkPVView
{
public:
vtkTypeMacro(vtkPVContextView, vtkPVView);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Triggers a high-resolution render.
// @CallOnAllProcessess
virtual void StillRender();
// Description:
// Triggers a interactive render. Based on the settings on the view, this may
// result in a low-resolution rendering or a simplified geometry rendering.
// @CallOnAllProcessess
virtual void InteractiveRender();
// Description:
// Get the context view.
vtkGetObjectMacro(ContextView, vtkContextView);
// Description:
// Get the context item.
virtual vtkAbstractContextItem* GetContextItem() = 0;
// Description:
vtkGetObjectMacro(RenderWindow, vtkRenderWindow);
// Description:
// Set the interactor. Client applications must set the interactor to enable
// interactivity. Note this method will also change the interactor styles set
// on the interactor.
virtual void SetupInteractor(vtkRenderWindowInteractor*);
vtkRenderWindowInteractor* GetInteractor();
// Description:
// Initialize the view with an identifier. Unless noted otherwise, this method
// must be called before calling any other methods on this class.
// @CallOnAllProcessess
virtual void Initialize(unsigned int id);
// Description:
// Overridden to ensure that in multi-client configurations, same set of
// representations are "dirty" on all processes to avoid race conditions.
virtual void Update();
// Description:
// Set or get whether offscreen rendering should be used during
// CaptureWindow calls. On Apple machines, this flag has no effect.
vtkSetMacro(UseOffscreenRenderingForScreenshots, bool);
vtkBooleanMacro(UseOffscreenRenderingForScreenshots, bool);
vtkGetMacro(UseOffscreenRenderingForScreenshots, bool);
// Description:
// Get/Set whether to use offscreen rendering for all rendering. This is
// merely a suggestion. If --use-offscreen-rendering command line option is
// specified, then setting this flag to 0 on that process has no effect.
// Setting it to true, however, will ensure that even is
// --use-offscreen-rendering is not specified, it will use offscreen
// rendering.
virtual void SetUseOffscreenRendering(bool);
vtkBooleanMacro(UseOffscreenRendering, bool);
vtkGetMacro(UseOffscreenRendering, bool);
// Description:
// Representations can use this method to set the selection for a particular
// representation. Subclasses override this method to pass on the selection to
// the chart using annotation link. Note this is meant to pass selection for
// the local process alone. The view does not manage data movement for the
// selection.
virtual void SetSelection(vtkChartRepresentation* repr,
vtkSelection* selection) = 0;
// Description:
// Get the current selection created in the view. This will call
// this->MapSelectionToInput() to transform the selection every time a new
// selection is available. Subclasses should override MapSelectionToInput() to
// convert the selection, as appropriate.
vtkSelection* GetSelection();
// Description:
// Export the contents of this view using the exporter.
// Called vtkChartRepresentation::Export() on all visible representations.
// This is expected to called only on the client side after a render/update.
// Thus all data is expected to available on the local process.
virtual bool Export(vtkCSVExporter* exporter);
//BTX
protected:
vtkPVContextView();
~vtkPVContextView();
// Description:
// Actual rendering implementation.
virtual void Render(bool interactive);
// Description:
// Called to transform the selection. This is only called on the client-side.
// Subclasses should transform the selection in place as needed. Default
// implementation simply goes to the first visible representation and asks it
// to transform (by calling vtkChartRepresentation::MapSelectionToInput()).
// We need to extend the infrastructrue to work properly when making
// selections in views showing multiple representations, but until that
// happens, this naive approach works for most cases.
// Return false on failure.
virtual bool MapSelectionToInput(vtkSelection*);
// Description:
// Callbacks called when the primary "renderer" in the vtkContextView
// starts/ends rendering. Note that this is called on the renderer, hence
// before the rendering cleanup calls like SwapBuffers called by the
// render-window.
void OnStartRender();
void OnEndRender();
vtkContextView* ContextView;
vtkRenderWindow* RenderWindow;
bool UseOffscreenRenderingForScreenshots;
bool UseOffscreenRendering;
private:
vtkPVContextView(const vtkPVContextView&); // Not implemented
void operator=(const vtkPVContextView&); // Not implemented
// Used in GetSelection to avoid modifying the selection obtained from the
// annotation link.
vtkSmartPointer<vtkSelection> SelectionClone;
vtkNew<vtkContextInteractorStyle> InteractorStyle;
template <class T>
vtkSelection* GetSelectionImplementation(T* chart);
//ETX
};
#endif
|