vtkSMPVRepresentationProxy.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-License-Identifier: BSD-3-Clause
22 #ifndef vtkSMPVRepresentationProxy_h
23 #define vtkSMPVRepresentationProxy_h
24 
25 #include "vtkRemotingViewsModule.h" //needed for exports
27 #include "vtkSmartPointer.h" // For LastLUTProxy
28 
29 #include <set> // needed for std::set
30 #include <unordered_map> // needed for std::unordered_map
31 
33 
35 {
36 public:
39  void PrintSelf(ostream& os, vtkIndent indent) override;
40 
42 
46  void SetLastLookupTable(vtkSMProxy* proxy);
47  vtkSMProxy* GetLastLookupTable();
48  void SetLastBlockLookupTable(const std::string& blockSelector, vtkSMProxy* proxy)
49  {
50  this->SetLastBlocksLookupTable({ blockSelector }, proxy);
51  }
52  void SetLastBlocksLookupTable(const std::vector<std::string>& blockSelectors, vtkSMProxy* proxy);
53  vtkSMProxy* GetLastBlockLookupTable(const std::string& blockSelector)
54  {
55  return this->GetLastBlocksLookupTables({ blockSelector }).front();
56  }
57  std::vector<vtkSMProxy*> GetLastBlocksLookupTables(
58  const std::vector<std::string>& blockSelectors);
60 
62 
67  virtual bool GetUsingScalarColoring();
68  virtual bool GetBlockUsingScalarColoring(const std::string& blockSelector)
69  {
70  return this->GetBlocksUsingScalarColoring({ blockSelector }).front();
71  }
72  virtual std::vector<vtkTypeBool> GetBlocksUsingScalarColoring(
73  const std::vector<std::string>& blockSelectors);
74  virtual bool GetAnyBlockUsingScalarColoring();
76 
78 
82  vtkSMProxy* GetLookupTable(vtkSMProxy* view);
83  vtkSMProxy* GetBlockLookupTable(vtkSMProxy* view, const std::string& blockSelector)
84  {
85  return this->GetBlocksLookupTables(view, { blockSelector }).front();
86  }
87  std::vector<vtkSMProxy*> GetBlocksLookupTables(
88  vtkSMProxy* view, const std::vector<std::string>& blockSelectors);
90 
92 
99  bool UpdateScalarBarRange(vtkSMProxy* view, bool deleteRange);
100  std::vector<vtkTypeBool> UpdateBlocksScalarBarRange(vtkSMProxy* view, bool deleteRange);
102 
104 
110  virtual bool SetScalarColoring(const char* arrayName, int attributeType);
112  const std::string& blockSelector, const char* arrayName, int attributeType)
113  {
114  return this->SetBlocksScalarColoring({ blockSelector }, arrayName, attributeType).front();
115  }
116  virtual std::vector<vtkTypeBool> SetBlocksScalarColoring(
117  const std::vector<std::string>& blockSelectors, const char* arrayName, int attributeType);
119 
121 
128  virtual bool SetScalarColoring(const char* arrayName, int attributeType, int component);
130  const std::string& blockSelector, const char* arrayName, int attributeType, int component)
131  {
132  return this->SetBlocksScalarColoring({ blockSelector }, arrayName, attributeType, component)
133  .front();
134  }
135  virtual std::vector<vtkTypeBool> SetBlocksScalarColoring(
136  const std::vector<std::string>& blockSelectors, const char* arrayName, int attributeType,
137  int component);
139 
141 
155  virtual bool RescaleTransferFunctionToDataRange(bool extend = false, bool force = true);
157  const std::string& blockSelector, bool extend = false, bool force = true)
158  {
159  return this->RescaleBlocksTransferFunctionToDataRange({ blockSelector }, extend, force).front();
160  }
161  virtual std::vector<vtkTypeBool> RescaleBlocksTransferFunctionToDataRange(
162  const std::vector<std::string>& blockSelectors, bool extend = false, bool force = true);
164 
166 
183  virtual bool RescaleTransferFunctionToDataRange(
184  const char* arrayName, int attributeType, bool extend = false, bool force = true);
185  virtual bool RescaleBlockTransferFunctionToDataRange(const std::string& blockSelector,
186  const char* arrayName, int attributeType, bool extend = false, bool force = true)
187  {
188  return this
189  ->RescaleBlocksTransferFunctionToDataRange(
190  { blockSelector }, arrayName, attributeType, extend, force)
191  .front();
192  }
193  virtual std::vector<vtkTypeBool> RescaleBlocksTransferFunctionToDataRange(
194  const std::vector<std::string>& blockSelectors, const char* arrayName, int attributeType,
195  bool extend = false, bool force = true);
197 
199 
203  virtual bool RescaleTransferFunctionToDataRangeOverTime();
204  virtual bool RescaleBlockTransferFunctionToDataRangeOverTime(const std::string& blockSelector)
205  {
206  return this->RescaleBlocksTransferFunctionToDataRangeOverTime({ blockSelector }).front();
207  }
208  virtual std::vector<vtkTypeBool> RescaleBlocksTransferFunctionToDataRangeOverTime(
209  const std::vector<std::string>& blockSelectors);
211 
213 
219  virtual bool RescaleTransferFunctionToDataRangeOverTime(const char* arrayName, int attributeType);
221  const std::string& blockSelector, const char* arrayName, int attributeType)
222  {
223  return this
224  ->RescaleBlocksTransferFunctionToDataRangeOverTime(
225  { blockSelector }, arrayName, attributeType)
226  .front();
227  }
228  virtual std::vector<vtkTypeBool> RescaleBlocksTransferFunctionToDataRangeOverTime(
229  const std::vector<std::string>& blockSelectors, const char* arrayName, int attributeType);
231 
233 
237  virtual bool RescaleTransferFunctionToVisibleRange(vtkSMProxy* view);
238  virtual bool RescaleTransferFunctionToVisibleRange(
239  vtkSMProxy* view, const char* arrayName, int attributeType);
241 
243 
247  virtual bool SetScalarBarVisibility(vtkSMProxy* view, bool visible);
249  vtkSMProxy* view, const std::string& blockSelector, bool visible)
250  {
251  return this->SetBlocksScalarBarVisibility(view, { blockSelector }, visible).front();
252  }
253  virtual std::vector<vtkTypeBool> SetBlocksScalarBarVisibility(
254  vtkSMProxy* view, const std::vector<std::string>& blockSelectors, bool visible);
256 
258 
265  virtual bool HideScalarBarIfNotNeeded(vtkSMProxy* view);
266  virtual bool HideBlocksScalarBarIfNotNeeded(vtkSMProxy* view);
268 
270 
274  virtual bool IsScalarBarVisible(vtkSMProxy* view);
275  virtual bool IsBlockScalarBarVisible(vtkSMProxy* view, const std::string& blockSelector)
276  {
277  return this->IsBlocksScalarBarVisible(view, { blockSelector }).front();
278  }
279  virtual std::vector<vtkTypeBool> IsBlocksScalarBarVisible(
280  vtkSMProxy* view, const std::vector<std::string>& blockSelectors);
282 
284 
289  virtual vtkPVArrayInformation* GetArrayInformationForColorArray(bool checkRepresentedData = true);
291  const std::string& blockSelector)
292  {
293  return this->GetBlocksArrayInformationForColorArray({ blockSelector }).front();
294  }
295  virtual std::vector<vtkPVArrayInformation*> GetBlocksArrayInformationForColorArray(
296  const std::vector<std::string>& blockSelectors);
298 
300 
304  virtual vtkPVProminentValuesInformation* GetProminentValuesInformationForColorArray(
305  double uncertaintyAllowed = 1e-6, double fraction = 1e-3, bool force = false);
307  const std::string& blockSelector, double uncertaintyAllowed = 1e-6, double fraction = 1e-3,
308  bool force = false)
309  {
310  return this
311  ->GetBlocksProminentValuesInformationForColorArray(
312  { blockSelector }, uncertaintyAllowed, fraction, force)
313  .front();
314  }
315  virtual std::vector<vtkPVProminentValuesInformation*>
316  GetBlocksProminentValuesInformationForColorArray(const std::vector<std::string>& blockSelectors,
317  double uncertaintyAllowed = 1e-6, double fraction = 1e-3, bool force = false);
319 
321 
324  int GetEstimatedNumberOfAnnotationsOnScalarBar(vtkSMProxy* view);
326  vtkSMProxy* view, const std::string& blockSelector)
327  {
328  return this->GetBlocksEstimatedNumberOfAnnotationsOnScalarBars(view, { blockSelector }).front();
329  }
330  std::vector<int> GetBlocksEstimatedNumberOfAnnotationsOnScalarBars(
331  vtkSMProxy* view, const std::vector<std::string>& blockSelectors);
333 
339  bool SetRepresentationType(const char* type) override;
340 
345  bool GetVolumeIndependentRanges();
346 
348 
357  int IsScalarBarStickyVisible(vtkSMProxy* view);
358  int IsBlockScalarBarStickyVisible(vtkSMProxy* view, const std::string& blockSelector)
359  {
360  return this->IsBlocksScalarBarStickyVisible(view, { blockSelector }).front();
361  }
362  std::vector<int> IsBlocksScalarBarStickyVisible(
363  vtkSMProxy* view, const std::vector<std::string>& blockSelectors);
365 
369  void ViewUpdated(vtkSMProxy* view) override;
370 
372 
375  std::pair<int, std::string> GetBlockColorArray(const std::string& blockSelector)
376  {
377  return this->GetBlocksColorArrays({ blockSelector }).front();
378  }
379  std::vector<std::pair<int, std::string>> GetBlocksColorArrays(
380  const std::vector<std::string>& blockSelectors);
381  int GetBlockColorArrayAssociation(const std::string& blockSelector)
382  {
383  return this->GetBlockColorArray(blockSelector).first;
384  }
385  std::string GetBlockColorArrayName(const std::string& blockSelector)
386  {
387  return this->GetBlockColorArray(blockSelector).second;
388  }
390 
392 
395  void SetBlockUseSeparateColorMap(const std::string& blockSelector, bool use)
396  {
397  this->SetBlocksUseSeparateColorMap({ blockSelector }, use);
398  }
399  void SetBlocksUseSeparateColorMap(const std::vector<std::string>& blockSelectors, bool use);
400  bool GetBlockUseSeparateColorMap(const std::string& blockSelector)
401  {
402  return this->GetBlocksUseSeparateColorMaps({ blockSelector }).front();
403  }
404  std::vector<vtkTypeBool> GetBlocksUseSeparateColorMaps(
405  const std::vector<std::string>& blockSelectors);
407 
408 protected:
410  ~vtkSMPVRepresentationProxy() override;
411 
416  void CreateVTKObjects() override;
417 
418  // Whenever the "Representation" property is modified, we ensure that the
419  // this->InvalidateDataInformation() is called.
420  void OnPropertyUpdated(vtkObject*, unsigned long, void* calldata);
421 
427  void SetPropertyModifiedFlag(const char* name, int flag) override;
428 
432  int ReadXMLAttributes(vtkSMSessionProxyManager* pm, vtkPVXMLElement* element) override;
433 
440  std::unordered_map<std::string, vtkSmartPointer<vtkSMProxy>> LastBlocksLookupTables;
441 
442 private:
444  void operator=(const vtkSMPVRepresentationProxy&) = delete;
445 
446  bool InReadXMLAttributes;
447  std::set<std::string> RepresentationSubProxies;
448 };
449 
450 #endif
Proxy for a representations.
virtual bool SetBlockScalarBarVisibility(vtkSMProxy *view, const std::string &blockSelector, bool visible)
Set the scalar bar visibility.
virtual bool IsBlockScalarBarVisible(vtkSMProxy *view, const std::string &blockSelector)
Check scalar bar visibility.
void CreateVTKObjects() override
Call superclass&#39; and then assigns a new executive (vtkCompositeDataPipeline)
component
type
virtual bool SetBlockScalarColoring(const std::string &blockSelector, const char *arrayName, int attributeType, int component)
Enable/disable scalar coloring using the specified array.
#define VTKREMOTINGVIEWS_EXPORT
void SetBlockUseSeparateColorMap(const std::string &blockSelector, bool use)
Set/Get if we should use a separate color map for this block.
representation for "Render View" like views in ParaView.
virtual bool RescaleBlockTransferFunctionToDataRange(const std::string &blockSelector, const char *arrayName, int attributeType, bool extend=false, bool force=true)
Rescales the color transfer function and opacity transfer function using the current data range for t...
void SetLastBlockLookupTable(const std::string &blockSelector, vtkSMProxy *proxy)
Set/get last LUT proxy.
virtual bool RescaleBlockTransferFunctionToDataRangeOverTime(const std::string &blockSelector, const char *arrayName, int attributeType)
Rescales the color transfer function and opacity transfer function using the current data range over ...
int GetBlockColorArrayAssociation(const std::string &blockSelector)
Set/Get the block color array name.
virtual void SetPropertyModifiedFlag(const char *name, int flag)
Note on property modified flags: The modified flag of each property associated with a proxy is stored...
virtual vtkPVArrayInformation * GetBlockArrayInformationForColorArray(const std::string &blockSelector)
Returns the array information for the data array used for scalar coloring, from input data...
bool GetBlockUseSeparateColorMap(const std::string &blockSelector)
Set/Get if we should use a separate color map for this block.
std::unordered_map< std::string, vtkSmartPointer< vtkSMProxy > > LastBlocksLookupTables
name
virtual vtkPVProminentValuesInformation * GetBlockProminentValuesInformationForColorArray(const std::string &blockSelector, double uncertaintyAllowed=1e-6, double fraction=1e-3, bool force=false)
Call vtkSMRepresentationProxy::GetProminentValuesInformation() for the array used for scalar color...
int GetBlockEstimatedNumberOfAnnotationsOnScalarBar(vtkSMProxy *view, const std::string &blockSelector)
Get an estimated number of annotation shown on this representation scalar bar.
virtual bool SetRepresentationType(const char *type)
Set the representation type.
int IsBlockScalarBarStickyVisible(vtkSMProxy *view, const std::string &blockSelector)
Checks if the scalar bar of this representation in view is sticky visible, i.e.
Prominent values a data array takes on.
void PrintSelf(ostream &os, vtkIndent indent) override
vtkSMProxy * GetLastBlockLookupTable(const std::string &blockSelector)
Set/get last LUT proxy.
virtual bool SetBlockScalarColoring(const std::string &blockSelector, const char *arrayName, int attributeType)
Enable/disable scalar coloring using the specified array.
The vtkSMSessionProxyManager is esponsible for creating and managing proxies for a given session...
std::string GetBlockColorArrayName(const std::string &blockSelector)
Set/Get the block color array name.
proxy for a VTK object(s) on a server
Definition: vtkSMProxy.h:140
provides meta data about arrays.
vtkSMProxy * GetBlockLookupTable(vtkSMProxy *view, const std::string &blockSelector)
Returns the lut proxy of this representation in the given view.
std::pair< int, std::string > GetBlockColorArray(const std::string &blockSelector)
Set/Get the block color array name.
virtual bool RescaleBlockTransferFunctionToDataRange(const std::string &blockSelector, bool extend=false, bool force=true)
Rescales the color transfer function and opacity transfer function using the current data range...
int ReadXMLAttributes(vtkSMSessionProxyManager *pm, vtkPVXMLElement *element) override
Read attributes from an XML element.
This is used by vtkPVXMLParser to represent an XML document starting at the root element.
virtual bool GetBlockUsingScalarColoring(const std::string &blockSelector)
Returns true if scalar coloring is enabled.
static vtkSMRepresentationProxy * New()
virtual void ViewUpdated(vtkSMProxy *view)
Called after the view updates.
virtual bool RescaleBlockTransferFunctionToDataRangeOverTime(const std::string &blockSelector)
Rescales the color transfer function and opacity transfer function using the current data range over ...
vtkSmartPointer< vtkSMProxy > LastLookupTable
Used as a memory of what was the last LUT proxy linked to this representation.