ParaView
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkPVDataDeliveryManager Class Reference

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...
 
vtkPVDataRepresentationGetRepresentation (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...
 
vtkPVRenderViewGetRenderView ()
 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 vtkPVDataDeliveryManagerNew ()
 
static int IsTypeOf (const char *type)
 
static vtkPVDataDeliveryManagerSafeDownCast (vtkObject *o)
 

Protected Member Functions

 vtkPVDataDeliveryManager ()
 
 ~vtkPVDataDeliveryManager ()
 

Protected Attributes

vtkWeakPointer< vtkPVRenderViewRenderView
 
vtkSmartPointer< vtkPKdTree > KdTree
 
vtkTimeStamp RedistributionTimeStamp
 

Detailed Description

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.

Member Typedef Documentation

§ Superclass

Definition at line 48 of file vtkPVDataDeliveryManager.h.

Constructor & Destructor Documentation

§ vtkPVDataDeliveryManager()

vtkPVDataDeliveryManager::vtkPVDataDeliveryManager ( )
protected

§ ~vtkPVDataDeliveryManager()

vtkPVDataDeliveryManager::~vtkPVDataDeliveryManager ( )
protected

Member Function Documentation

§ New()

static vtkPVDataDeliveryManager* vtkPVDataDeliveryManager::New ( )
static

§ GetClassName()

virtual const char* vtkPVDataDeliveryManager::GetClassName ( )
virtual

§ IsTypeOf()

static int vtkPVDataDeliveryManager::IsTypeOf ( const char *  type)
static

§ IsA()

virtual int vtkPVDataDeliveryManager::IsA ( const char *  type)
virtual

§ SafeDownCast()

static vtkPVDataDeliveryManager* vtkPVDataDeliveryManager::SafeDownCast ( vtkObject *  o)
static

§ PrintSelf()

void vtkPVDataDeliveryManager::PrintSelf ( ostream &  os,
vtkIndent  indent 
)

§ GetSynchronizationMagicNumber()

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.

§ RegisterRepresentation()

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.

§ UnRegisterRepresentation()

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.

§ GetRepresentation()

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.

§ SetPiece() [1/2]

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.

§ SetPiece() [2/2]

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.

§ GetProducer() [1/2]

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.

§ GetProducer() [2/2]

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.

§ SetDeliverToAllProcesses()

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()).

§ SetDeliverToClientAndRenderingProcesses()

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.

§ MarkAsRedistributable()

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.

§ GetVisibleDataSize()

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.

§ GetKdTree()

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.

§ SetRenderView()

void vtkPVDataDeliveryManager::SetRenderView ( vtkPVRenderView )

Get/Set the render-view.

The view is not reference counted.

§ GetRenderView()

vtkPVRenderView* vtkPVDataDeliveryManager::GetRenderView ( )

Get/Set the render-view.

The view is not reference counted.

§ RedistributeDataForOrderedCompositing()

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.

§ ClearRedistributedData()

void vtkPVDataDeliveryManager::ClearRedistributedData ( bool  use_load)

Removes all redistributed data that may have been redistributed for ordered compositing earlier when using KdTree based redistribution.

§ SetOrderedCompositingInformation()

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.

§ NeedsDelivery()

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().

§ Deliver()

void vtkPVDataDeliveryManager::Deliver ( int  use_low_res,
unsigned int  size,
unsigned int *  keys 
)

Triggers delivery for the geometries of indicated representations.

§ SetStreamable()

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.

§ SetNextStreamedPiece()

void vtkPVDataDeliveryManager::SetNextStreamedPiece ( vtkPVDataRepresentation repr,
vtkDataObject *  piece 
)

Passes the current streamed piece.

This is the piece that will be delivered to the rendering node.

§ GetCurrentStreamedPiece()

vtkDataObject* vtkPVDataDeliveryManager::GetCurrentStreamedPiece ( vtkPVDataRepresentation repr)

Passes the current streamed piece.

This is the piece that will be delivered to the rendering node.

§ ClearStreamedPieces()

void vtkPVDataDeliveryManager::ClearStreamedPieces ( )

Passes the current streamed piece.

This is the piece that will be delivered to the rendering node.

§ DeliverStreamedPieces()

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.

§ GetRepresentationsReadyToStreamPieces()

bool vtkPVDataDeliveryManager::GetRepresentationsReadyToStreamPieces ( std::vector< unsigned int > &  keys)

Fills up the vector with the keys for representations that have non-null streaming pieces.

Member Data Documentation

§ RenderView

vtkWeakPointer<vtkPVRenderView> vtkPVDataDeliveryManager::RenderView
protected

Definition at line 221 of file vtkPVDataDeliveryManager.h.

§ KdTree

vtkSmartPointer<vtkPKdTree> vtkPVDataDeliveryManager::KdTree
protected

Definition at line 222 of file vtkPVDataDeliveryManager.h.

§ RedistributionTimeStamp

vtkTimeStamp vtkPVDataDeliveryManager::RedistributionTimeStamp
protected

Definition at line 224 of file vtkPVDataDeliveryManager.h.


The documentation for this class was generated from the following file: