/usr/include/paraview/vtkPVDataRepresentation.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 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 | /*=========================================================================
Program: ParaView
Module: vtkPVDataRepresentation.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 vtkPVDataRepresentation
// .SECTION Description
// vtkPVDataRepresentation adds some ParaView specific API to data
// representations.
// .SECTION See Also
// vtkPVDataRepresentationPipeline
#ifndef vtkPVDataRepresentation_h
#define vtkPVDataRepresentation_h
#include "vtkPVClientServerCoreRenderingModule.h" //needed for exports
#include "vtkDataRepresentation.h"
#include "vtkWeakPointer.h" // needed for vtkWeakPointer
class vtkInformationRequestKey;
class VTKPVCLIENTSERVERCORERENDERING_EXPORT vtkPVDataRepresentation : public vtkDataRepresentation
{
public:
vtkTypeMacro(vtkPVDataRepresentation, vtkDataRepresentation);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// vtkAlgorithm::ProcessRequest() equivalent for rendering passes. This is
// typically called by the vtkView to request meta-data from the
// representations or ask them to perform certain tasks e.g.
// PrepareForRendering.
// Overridden to skip processing when visibility if off.
virtual int ProcessViewRequest(vtkInformationRequestKey* request_type,
vtkInformation* inInfo, vtkInformation* outInfo);
// Description:
// This is one of the most important functions. In VTK pipelines, it's very
// easy for the pipeline to decide when it needs to re-execute.
// vtkAlgorithm::Update() can go up the entire pipeline to see if any filters
// MTime changed (among other things) and if so, it can re-execute the pipeline.
// However in case of representations, the real input connection may only be
// present on the data-server nodes. In that case the
// vtkPVDataRepresentation::RequestData() will only get called on the
// data-server nodes. That means that representations won't be able to any
// data-delivery in RequestData(). We'd need some other mechanisms to
// synchronize data-delivery among processes. To avoid that conundrum, the
// vtkSMRepresentationProxy calls MarkModified() on all processes whenever any
// filter in the pipeline is modified. In this method, the
// vtkPVDataRepresentation subclasses should ensure that they mark all
// delivery related filters dirty in their RequestData to ensure they execute
// then next time they are updated. The vtkPVDataRepresentation also uses a
// special executive which avoids updating the representation unless
// MarkModified() was called since the last Update(), thus acting as a
// update-suppressor.
virtual void MarkModified();
// Description:
// Initialize the representation with an identifier range so each internal
// representation can own a unique ID.
// If a representation requires more IDs than the set of ids provided,
// the representation MUST complains by an error or abort explaining how many
// ids where expected so the number of reserved ids could be easily adjust.
// Unless noted otherwise, this method must be called before calling any
// other methods on this class.
// @CallOnAllProcessess
// Internally you can pick an id that follow that condition
// minIdAvailable <= id <= maxIdAvailable
// Return the minIdAvailable after initialization so that new range could be used
virtual unsigned int Initialize(unsigned int minIdAvailable, unsigned int maxIdAvailable);
// Description:
// Return 0 if the Initialize() method was not called otherwise a unique ID
// that will be shared across the processes for that same object.
unsigned int GetUniqueIdentifier() { return this->UniqueIdentifier; }
// Description:
// Get/Set the visibility for this representation. When the visibility of
// representation of false, all view passes are ignored.
virtual void SetVisibility(bool val)
{ this->Visibility = val; }
vtkGetMacro(Visibility, bool);
// Description:
// Returns the data object that is rendered from the given input port.
virtual vtkDataObject* GetRenderedDataObject(int vtkNotUsed(port))
{ return this->GetInputDataObject(0, 0); }
// Description:
// Set the update time.
virtual void SetUpdateTime(double time);
vtkGetMacro(UpdateTime, double);
// Description:
// Set whether the UpdateTime is valid.
vtkGetMacro(UpdateTimeValid, bool);
// Description:
// @deprecated No longer needed. Simply remove these methods from your
// subclass implementation.
VTK_LEGACY(virtual void SetUseCache(bool));
VTK_LEGACY(virtual void SetCacheKey(double val));
// Description:
// Typically a representation decides whether to use cache based on the view's
// values for UseCache and CacheKey.
// However in some cases we may want to
// force a representation to cache irrespective of the view (e.g. comparative
// views). In which case these ivars can up set. If ForcedCacheKey is true, it
// overrides UseCache and CacheKey. Instead, ForcedCacheKey is used.
virtual void SetForcedCacheKey(double val)
{ this->ForcedCacheKey = val; }
virtual void SetForceUseCache(bool val)
{ this->ForceUseCache = val; }
// Description:
// Returns whether caching is used and what key to use when caching is
// enabled.
virtual double GetCacheKey();
virtual bool GetUseCache();
// Description:
// Called by vtkPVDataRepresentationPipeline to see if using cache is valid
// and will be used for the update. If so, it bypasses all pipeline passes.
// Subclasses should override IsCached(double) to indicate if a particular
// entry is cached.
bool GetUsingCacheForUpdate();
vtkGetMacro(NeedUpdate, bool);
// Description:
// Making these methods public. When constructing composite representations,
// we need to call these methods directly on internal representations.
virtual bool AddToView(vtkView* view);
virtual bool RemoveFromView(vtkView* view);
// Description:
// Retrieves an output port for the input data object at the specified port
// and connection index. This may be connected to the representation's
// internal pipeline.
// Overridden to use vtkPVTrivialProducer instead of vtkTrivialProducer
virtual vtkAlgorithmOutput* GetInternalOutputPort()
{ return this->GetInternalOutputPort(0); }
virtual vtkAlgorithmOutput* GetInternalOutputPort(int port)
{ return this->GetInternalOutputPort(port, 0); }
virtual vtkAlgorithmOutput* GetInternalOutputPort(int port, int conn);
// Description:
// Provides access to the view.
vtkView* GetView() const;
//BTX
protected:
vtkPVDataRepresentation();
~vtkPVDataRepresentation();
// Description:
// Subclasses should override this method when they support caching to
// indicate if the particular key is cached. Default returns false.
virtual bool IsCached(double cache_key)
{ (void)cache_key; return false; }
// Description:
// Create a default executive.
virtual vtkExecutive* CreateDefaultExecutive();
// Description:
// Overridden to invoke vtkCommand::UpdateDataEvent.
virtual int RequestData(vtkInformation*,
vtkInformationVector**, vtkInformationVector*);
virtual int RequestUpdateExtent(vtkInformation* request,
vtkInformationVector** inputVector,
vtkInformationVector* outputVector);
virtual int RequestUpdateTime (vtkInformation*,
vtkInformationVector**,
vtkInformationVector*);
double UpdateTime;
bool UpdateTimeValid;
unsigned int UniqueIdentifier;
private:
vtkPVDataRepresentation(const vtkPVDataRepresentation&); // Not implemented
void operator=(const vtkPVDataRepresentation&); // Not implemented
bool Visibility;
bool ForceUseCache;
double ForcedCacheKey;
bool NeedUpdate;
class Internals;
Internals* Implementation;
vtkWeakPointer<vtkView> View;
//ETX
};
#endif
|