vtkPVRenderViewDataDeliveryManager.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: vtkPVRenderViewDataDeliveryManager
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 =========================================================================*/
23 #ifndef vtkPVRenderViewDataDeliveryManager_h
24 #define vtkPVRenderViewDataDeliveryManager_h
25 
27 #include "vtkRemotingViewsModule.h" //needed for exports
28 #include "vtkSmartPointer.h" // needed for iVar.
29 #include "vtkTuple.h" // needed for vtkTuple.
30 #include "vtkWeakPointer.h" // needed for iVar.
31 
32 class vtkAlgorithmOutput;
33 class vtkDataObject;
35 class vtkInformation;
36 class vtkPKdTree;
38 class vtkPVView;
39 
40 #include <vector>
41 
42 class VTKREMOTINGVIEWS_EXPORT vtkPVRenderViewDataDeliveryManager : public vtkPVDataDeliveryManager
43 {
44 public:
47  void PrintSelf(ostream& os, vtkIndent indent) override;
48 
56  void SetDeliverToAllProcesses(vtkPVDataRepresentation*, bool flag, bool low_res, int port = 0);
57 
68  void SetDeliverToClientAndRenderingProcesses(vtkPVDataRepresentation*, bool deliver_to_client,
69  bool gather_before_delivery, bool low_res, int port = 0);
70 
79  void MarkAsRedistributable(vtkPVDataRepresentation*, bool value = true, int port = 0);
80 
82 
90  void SetRedistributionMode(vtkPVDataRepresentation*, int mode, int port = 0);
91  void SetRedistributionModeToSplitBoundaryCells(vtkPVDataRepresentation* repr, int port = 0);
92  void SetRedistributionModeToDuplicateBoundaryCells(vtkPVDataRepresentation* repr, int port = 0);
94 
100  vtkPKdTree* GetKdTree();
101 
106  void RedistributeDataForOrderedCompositing(bool use_lod);
107 
112  void ClearRedistributedData(bool use_load);
113 
118  void SetOrderedCompositingInformation(vtkPVDataRepresentation* repr,
119  vtkExtentTranslator* translator, const int whole_extents[6], const double origin[3],
120  const double spacing[3], int port = 0);
121 
122  // *******************************************************************
123  // UNDER CONSTRUCTION STREAMING API
124  // *******************************************************************
125 
131  void SetStreamable(vtkPVDataRepresentation*, bool, int port = 0);
132 
134 
138  void SetNextStreamedPiece(vtkPVDataRepresentation* repr, vtkDataObject* piece, int port = 0);
139  vtkDataObject* GetCurrentStreamedPiece(vtkPVDataRepresentation* repr, int port = 0);
140  void ClearStreamedPieces();
142 
148  void DeliverStreamedPieces(unsigned int size, unsigned int* keys);
149 
154  bool GetRepresentationsReadyToStreamPieces(std::vector<unsigned int>& keys);
155 
157 
161  vtkGetMacro(UseRedistributedDataAsDeliveredData, bool);
162  vtkSetMacro(UseRedistributedDataAsDeliveredData, bool);
164 
165  int GetDeliveredDataKey(bool low_res) const override;
166 
167 protected:
170 
171  void MoveData(vtkPVDataRepresentation* repr, bool low_res, int port) override;
172 
173  int GetViewDataDistributionMode(bool low_res) const;
174  int GetMoveMode(vtkInformation* info, int viewMode) const;
175 
179  bool UseRedistributedDataAsDeliveredData = false;
180 
181 private:
183  void operator=(const vtkPVRenderViewDataDeliveryManager&) = delete;
184 };
185 
186 #endif
187 
188 // VTK-HeaderTest-Exclude: vtkPVRenderViewDataDeliveryManager.h
manager for data-delivery.
virtual int GetDeliveredDataKey(bool low_res) const
Views that support changing of which ranks do the rendering at runtime based on things like data size...
vtkPVDataRepresentation adds some ParaView specific API to data representations.
baseclass for all ParaView views.
Definition: vtkPVView.h:44
vtkPVRenderView specific subclass of vtkPVDataDeliveryManager.
virtual void MoveData(vtkPVDataRepresentation *repr, bool low_res, int port)=0
This method is called to request that the subclass do appropriate transfer for the indicated represen...
static vtkObject * New()
void PrintSelf(ostream &os, vtkIndent indent) override