ParaView
|
manager for data-delivery. More...
#include <vtkPVDataDeliveryManager.h>
Inherits vtkObject.
Public Types | |
typedef vtkObject | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
void | PrintSelf (ostream &os, vtkIndent indent) |
int | GetSynchronizationMagicNumber () |
Returned a hash number that can be used to verify that both client and server side are in synch representation wise for delivery. More... | |
void | SetDeliverToAllProcesses (vtkPVDataRepresentation *, bool flag, bool low_res) |
By default, this class only delivers geometries to nodes that are doing the rendering at a given stage. More... | |
void | SetDeliverToClientAndRenderingProcesses (vtkPVDataRepresentation *, bool deliver_to_client, bool gather_before_delivery, bool low_res) |
By default, this class only delivers geometries to nodes that are doing the rendering at a given stage. More... | |
void | MarkAsRedistributable (vtkPVDataRepresentation *, bool value=true) |
Under certain cases, e.g. More... | |
unsigned long | GetVisibleDataSize (bool low_res) |
Returns the size for all visible geometry. More... | |
vtkPKdTree * | GetKdTree () |
Provides access to the partitioning kd-tree that was generated using the data provided by the representations. More... | |
void | RedistributeDataForOrderedCompositing (bool use_lod) |
Called by the view on every render when ordered compositing is to be used to ensure that the geometries are redistributed, as needed. More... | |
void | ClearRedistributedData (bool use_load) |
Removes all redistributed data that may have been redistributed for ordered compositing earlier when using KdTree based redistribution. More... | |
void | SetOrderedCompositingInformation (vtkPVDataRepresentation *repr, vtkExtentTranslator *translator, const int whole_extents[6], const double origin[3], const double spacing[3]) |
Pass the structured-meta-data for determining rendering order for ordered compositing. More... | |
bool | NeedsDelivery (unsigned long timestamp, std::vector< unsigned int > &keys_to_deliver, bool use_low_res) |
Internal method used to determine the list of representations that need their geometry delivered. More... | |
void | Deliver (int use_low_res, unsigned int size, unsigned int *keys) |
Triggers delivery for the geometries of indicated representations. More... | |
void | SetStreamable (vtkPVDataRepresentation *, bool) |
Mark a representation as streamable. More... | |
void | DeliverStreamedPieces (unsigned int size, unsigned int *keys) |
Deliver streamed pieces. More... | |
bool | GetRepresentationsReadyToStreamPieces (std::vector< unsigned int > &keys) |
Fills up the vector with the keys for representations that have non-null streaming pieces. More... | |
void | RegisterRepresentation (vtkPVDataRepresentation *repr) |
View uses these methods to register a representation with the storage. More... | |
void | UnRegisterRepresentation (vtkPVDataRepresentation *) |
View uses these methods to register a representation with the storage. More... | |
vtkPVDataRepresentation * | GetRepresentation (unsigned int) |
View uses these methods to register a representation with the storage. More... | |
void | SetPiece (vtkPVDataRepresentation *repr, vtkDataObject *data, bool low_res, unsigned long trueSize=0) |
Representations (indirectly via vtkPVRenderView::SetPiece()) call this method to register the geometry type they are rendering. More... | |
void | SetPiece (unsigned int repr_id, vtkDataObject *data, bool low_res) |
Representations (indirectly via vtkPVRenderView::SetPiece()) call this method to register the geometry type they are rendering. More... | |
vtkAlgorithmOutput * | GetProducer (vtkPVDataRepresentation *, bool low_res) |
Provides access to the producer port for the geometry of a registered representation. More... | |
vtkAlgorithmOutput * | GetProducer (unsigned int, bool low_res) |
Provides access to the producer port for the geometry of a registered representation. More... | |
void | SetRenderView (vtkPVRenderView *) |
Get/Set the render-view. More... | |
vtkPVRenderView * | GetRenderView () |
Get/Set the render-view. More... | |
void | SetNextStreamedPiece (vtkPVDataRepresentation *repr, vtkDataObject *piece) |
Passes the current streamed piece. More... | |
vtkDataObject * | GetCurrentStreamedPiece (vtkPVDataRepresentation *repr) |
Passes the current streamed piece. More... | |
void | ClearStreamedPieces () |
Passes the current streamed piece. More... | |
Static Public Member Functions | |
static vtkPVDataDeliveryManager * | New () |
static int | IsTypeOf (const char *type) |
static vtkPVDataDeliveryManager * | SafeDownCast (vtkObject *o) |
Protected Member Functions | |
vtkPVDataDeliveryManager () | |
~vtkPVDataDeliveryManager () | |
Protected Attributes | |
vtkWeakPointer< vtkPVRenderView > | RenderView |
vtkSmartPointer< vtkPKdTree > | KdTree |
vtkTimeStamp | RedistributionTimeStamp |
manager for data-delivery.
vtkPVDataDeliveryManager manages geometry delivering for rendering. It is used by vtkPVRenderView to manage the delivery of geometry to the nodes where rendering is happening. This class helps us consolidate all the code for delivering different types of geometries to all the nodes involved as well we a managing idiosyncrasies like requiring delivering to all nodes, redistributing for ordered compositing, etc.
Definition at line 44 of file vtkPVDataDeliveryManager.h.
typedef vtkObject vtkPVDataDeliveryManager::Superclass |
Definition at line 48 of file vtkPVDataDeliveryManager.h.
|
protected |
|
protected |
|
static |
|
virtual |
|
static |
|
virtual |
|
static |
void vtkPVDataDeliveryManager::PrintSelf | ( | ostream & | os, |
vtkIndent | indent | ||
) |
int vtkPVDataDeliveryManager::GetSynchronizationMagicNumber | ( | ) |
Returned a hash number that can be used to verify that both client and server side are in synch representation wise for delivery.
void vtkPVDataDeliveryManager::RegisterRepresentation | ( | vtkPVDataRepresentation * | repr | ) |
View uses these methods to register a representation with the storage.
This makes it possible for representations to communicate with the storage directly using a self pointer, while enables views on different processes to communicate information about representations using their unique ids.
void vtkPVDataDeliveryManager::UnRegisterRepresentation | ( | vtkPVDataRepresentation * | ) |
View uses these methods to register a representation with the storage.
This makes it possible for representations to communicate with the storage directly using a self pointer, while enables views on different processes to communicate information about representations using their unique ids.
vtkPVDataRepresentation* vtkPVDataDeliveryManager::GetRepresentation | ( | unsigned | int | ) |
View uses these methods to register a representation with the storage.
This makes it possible for representations to communicate with the storage directly using a self pointer, while enables views on different processes to communicate information about representations using their unique ids.
void vtkPVDataDeliveryManager::SetPiece | ( | vtkPVDataRepresentation * | repr, |
vtkDataObject * | data, | ||
bool | low_res, | ||
unsigned long | trueSize = 0 |
||
) |
Representations (indirectly via vtkPVRenderView::SetPiece()) call this method to register the geometry type they are rendering.
Every representation that requires delivering of any geometry must register with the vtkPVDataDeliveryManager and never manage the delivery on its own.
void vtkPVDataDeliveryManager::SetPiece | ( | unsigned int | repr_id, |
vtkDataObject * | data, | ||
bool | low_res | ||
) |
Representations (indirectly via vtkPVRenderView::SetPiece()) call this method to register the geometry type they are rendering.
Every representation that requires delivering of any geometry must register with the vtkPVDataDeliveryManager and never manage the delivery on its own.
vtkAlgorithmOutput* vtkPVDataDeliveryManager::GetProducer | ( | vtkPVDataRepresentation * | , |
bool | low_res | ||
) |
Provides access to the producer port for the geometry of a registered representation.
Representations use these methods (indirectly via vtkPVRenderView::GetPieceProducer() and GetPieceProducerLOD()) to obtain the geometry producer for the geometry to be rendered.
vtkAlgorithmOutput* vtkPVDataDeliveryManager::GetProducer | ( | unsigned | int, |
bool | low_res | ||
) |
Provides access to the producer port for the geometry of a registered representation.
Representations use these methods (indirectly via vtkPVRenderView::GetPieceProducer() and GetPieceProducerLOD()) to obtain the geometry producer for the geometry to be rendered.
void vtkPVDataDeliveryManager::SetDeliverToAllProcesses | ( | vtkPVDataRepresentation * | , |
bool | flag, | ||
bool | low_res | ||
) |
By default, this class only delivers geometries to nodes that are doing the rendering at a given stage.
However, certain representations, such as data-label representation, or cube-axes representation, need to the geometry to be delivered to all nodes always. That can be done by using this method (via vtkPVRenderView::SetDeliverToAllProcesses()).
void vtkPVDataDeliveryManager::SetDeliverToClientAndRenderingProcesses | ( | vtkPVDataRepresentation * | , |
bool | deliver_to_client, | ||
bool | gather_before_delivery, | ||
bool | low_res | ||
) |
By default, this class only delivers geometries to nodes that are doing the rendering at a given stage.
However, certain representations, such as text-source representation, need to the geometry to be delivered to the client as well. That can be done by using this method (via vtkPVRenderView::SetDeliverToAllProcesses()). The different between SetDeliverToAllProcesses() and this is that the former gather-and-scatters the data on the server nodes, while the latter will optionally gather the data to deliver to the client and never scatter.
void vtkPVDataDeliveryManager::MarkAsRedistributable | ( | vtkPVDataRepresentation * | , |
bool | value = true |
||
) |
Under certain cases, e.g.
when remote rendering in parallel with translucent geometry, the geometry may need to be redistributed to ensure ordered compositing can be employed correctly. Marking geometry provided by a representation as redistributable makes it possible for this class to redistribute the geometry as needed. Only vtkPolyData, vtkUnstructuredGrid or a multi-block comprising of vtkPolyData is currently supported.
unsigned long vtkPVDataDeliveryManager::GetVisibleDataSize | ( | bool | low_res | ) |
Returns the size for all visible geometry.
If low_res is true, and low-res data is not available for a particular representation, then it's high-res data size will be used assuming that the representation is going to render the high-res geometry for low-res rendering as well.
vtkPKdTree* vtkPVDataDeliveryManager::GetKdTree | ( | ) |
Provides access to the partitioning kd-tree that was generated using the data provided by the representations.
The view uses this kd-tree to decide on the compositing order when ordered compositing is being used.
void vtkPVDataDeliveryManager::SetRenderView | ( | vtkPVRenderView * | ) |
Get/Set the render-view.
The view is not reference counted.
vtkPVRenderView* vtkPVDataDeliveryManager::GetRenderView | ( | ) |
Get/Set the render-view.
The view is not reference counted.
void vtkPVDataDeliveryManager::RedistributeDataForOrderedCompositing | ( | bool | use_lod | ) |
Called by the view on every render when ordered compositing is to be used to ensure that the geometries are redistributed, as needed.
void vtkPVDataDeliveryManager::ClearRedistributedData | ( | bool | use_load | ) |
Removes all redistributed data that may have been redistributed for ordered compositing earlier when using KdTree based redistribution.
void vtkPVDataDeliveryManager::SetOrderedCompositingInformation | ( | vtkPVDataRepresentation * | repr, |
vtkExtentTranslator * | translator, | ||
const int | whole_extents[6], | ||
const double | origin[3], | ||
const double | spacing[3] | ||
) |
Pass the structured-meta-data for determining rendering order for ordered compositing.
bool vtkPVDataDeliveryManager::NeedsDelivery | ( | unsigned long | timestamp, |
std::vector< unsigned int > & | keys_to_deliver, | ||
bool | use_low_res | ||
) |
Internal method used to determine the list of representations that need their geometry delivered.
This is done on the "client" side, with the client decide what geometries it needs and then requests those from the server-sides using Deliver().
void vtkPVDataDeliveryManager::Deliver | ( | int | use_low_res, |
unsigned int | size, | ||
unsigned int * | keys | ||
) |
Triggers delivery for the geometries of indicated representations.
void vtkPVDataDeliveryManager::SetStreamable | ( | vtkPVDataRepresentation * | , |
bool | |||
) |
Mark a representation as streamable.
Any representation can indicate that it is streamable i.e. the view can call streaming passses on it and it will deliver data incrementally.
void vtkPVDataDeliveryManager::SetNextStreamedPiece | ( | vtkPVDataRepresentation * | repr, |
vtkDataObject * | piece | ||
) |
Passes the current streamed piece.
This is the piece that will be delivered to the rendering node.
vtkDataObject* vtkPVDataDeliveryManager::GetCurrentStreamedPiece | ( | vtkPVDataRepresentation * | repr | ) |
Passes the current streamed piece.
This is the piece that will be delivered to the rendering node.
void vtkPVDataDeliveryManager::ClearStreamedPieces | ( | ) |
Passes the current streamed piece.
This is the piece that will be delivered to the rendering node.
void vtkPVDataDeliveryManager::DeliverStreamedPieces | ( | unsigned int | size, |
unsigned int * | keys | ||
) |
Deliver streamed pieces.
Unlike regular data, streamed pieces are delivered and released. Representations are expected to manage the pieces once they are delivered to them.
bool vtkPVDataDeliveryManager::GetRepresentationsReadyToStreamPieces | ( | std::vector< unsigned int > & | keys | ) |
Fills up the vector with the keys for representations that have non-null streaming pieces.
|
protected |
Definition at line 221 of file vtkPVDataDeliveryManager.h.
|
protected |
Definition at line 222 of file vtkPVDataDeliveryManager.h.
|
protected |
Definition at line 224 of file vtkPVDataDeliveryManager.h.