ParaView
vtkPVDataDeliveryManager.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: $RCSfile$
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 =========================================================================*/
27 #ifndef vtkPVDataDeliveryManager_h
28 #define vtkPVDataDeliveryManager_h
29 
30 #include "vtkObject.h"
31 #include "vtkPVClientServerCoreRenderingModule.h" //needed for exports
32 #include "vtkSmartPointer.h" // needed for iVar.
33 #include "vtkWeakPointer.h" // needed for iVar.
34 
35 class vtkAlgorithmOutput;
36 class vtkDataObject;
37 class vtkExtentTranslator;
38 class vtkPKdTree;
40 class vtkPVRenderView;
41 
42 #include <vector>
43 
44 class VTKPVCLIENTSERVERCORERENDERING_EXPORT vtkPVDataDeliveryManager : public vtkObject
45 {
46 public:
47  static vtkPVDataDeliveryManager* New();
48  vtkTypeMacro(vtkPVDataDeliveryManager, vtkObject);
49  void PrintSelf(ostream& os, vtkIndent indent);
50 
55  int GetSynchronizationMagicNumber();
56 
58 
64  void RegisterRepresentation(vtkPVDataRepresentation* repr);
65  void UnRegisterRepresentation(vtkPVDataRepresentation*);
66  vtkPVDataRepresentation* GetRepresentation(unsigned int);
68 
70 
76  void SetPiece(
77  vtkPVDataRepresentation* repr, vtkDataObject* data, bool low_res, unsigned long trueSize = 0);
78  void SetPiece(unsigned int repr_id, vtkDataObject* data, bool low_res);
80 
82 
88  vtkAlgorithmOutput* GetProducer(vtkPVDataRepresentation*, bool low_res);
89  vtkAlgorithmOutput* GetProducer(unsigned int, bool low_res);
91 
99  void SetDeliverToAllProcesses(vtkPVDataRepresentation*, bool flag, bool low_res);
100 
111  void SetDeliverToClientAndRenderingProcesses(
112  vtkPVDataRepresentation*, bool deliver_to_client, bool gather_before_delivery, bool low_res);
113 
122  void MarkAsRedistributable(vtkPVDataRepresentation*, bool value = true);
123 
130  unsigned long GetVisibleDataSize(bool low_res);
131 
137  vtkPKdTree* GetKdTree();
138 
140 
143  void SetRenderView(vtkPVRenderView*);
144  vtkPVRenderView* GetRenderView();
146 
151  void RedistributeDataForOrderedCompositing(bool use_lod);
152 
157  void ClearRedistributedData(bool use_load);
158 
163  void SetOrderedCompositingInformation(vtkPVDataRepresentation* repr,
164  vtkExtentTranslator* translator, const int whole_extents[6], const double origin[3],
165  const double spacing[3]);
166 
173  bool NeedsDelivery(
174  unsigned long timestamp, std::vector<unsigned int>& keys_to_deliver, bool use_low_res);
175 
179  void Deliver(int use_low_res, unsigned int size, unsigned int* keys);
180 
181  // *******************************************************************
182  // UNDER CONSTRUCTION STREAMING API
183  // *******************************************************************
184 
190  void SetStreamable(vtkPVDataRepresentation*, bool);
191 
193 
197  void SetNextStreamedPiece(vtkPVDataRepresentation* repr, vtkDataObject* piece);
198  vtkDataObject* GetCurrentStreamedPiece(vtkPVDataRepresentation* repr);
199  void ClearStreamedPieces();
201 
207  void DeliverStreamedPieces(unsigned int size, unsigned int* keys);
208 
213  bool GetRepresentationsReadyToStreamPieces(std::vector<unsigned int>& keys);
214 
215  // *******************************************************************
216 
217 protected:
220 
221  vtkWeakPointer<vtkPVRenderView> RenderView;
222  vtkSmartPointer<vtkPKdTree> KdTree;
223 
225 
226 private:
227  vtkPVDataDeliveryManager(const vtkPVDataDeliveryManager&) VTK_DELETE_FUNCTION;
228  void operator=(const vtkPVDataDeliveryManager&) VTK_DELETE_FUNCTION;
229 
230  class vtkInternals;
231  vtkInternals* Internals;
232 };
233 
234 #endif
235 
236 // VTK-HeaderTest-Exclude: vtkPVDataDeliveryManager.h
manager for data-delivery.
vtkPVDataRepresentation adds some ParaView specific API to data representations.
vtkWeakPointer< vtkPVRenderView > RenderView
vtkSmartPointer< vtkPKdTree > KdTree
Render View for ParaView.