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

implements a coverage based priority queue for vtkOverlappingAMR dataset. More...

#include <vtkAMRStreamingPriorityQueue.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)
 
void Initialize (vtkAMRInformation *amr)
 Initializes the queue. More...
 
void Reinitialize ()
 Re-initializes the priority queue using the amr structure given to the most recent call to Initialize(). More...
 
bool IsEmpty ()
 Returns if the queue is empty. More...
 
unsigned int Pop ()
 Pops and returns of composite id for the block at the top of the queue. More...
 
void SetController (vtkMultiProcessController *)
 If the controller is specified, the queue can be used in parallel. More...
 
virtual vtkMultiProcessController * GetController ()
 If the controller is specified, the queue can be used in parallel. More...
 
void Update (const double view_planes[24], const double clamp_bounds[6])
 Updates the priorities of blocks based on the new view frustum planes. More...
 
void Update (const double view_planes[24])
 Updates the priorities of blocks based on the new view frustum planes. More...
 

Static Public Member Functions

static vtkAMRStreamingPriorityQueueNew ()
 
static int IsTypeOf (const char *type)
 
static vtkAMRStreamingPriorityQueueSafeDownCast (vtkObject *o)
 

Protected Member Functions

 vtkAMRStreamingPriorityQueue ()
 
 ~vtkAMRStreamingPriorityQueue ()
 

Protected Attributes

vtkMultiProcessController * Controller
 

Detailed Description

implements a coverage based priority queue for vtkOverlappingAMR dataset.

vtkAMRStreamingPriorityQueue is used by representations supporting streaming of AMR datasets to determine the priorities for blocks in the dataset. This class relies on the bounds information provided by the AMR meta-data i.e. vtkAMRInformation. This class support view-based priority computation. Simply provide the view planes (returned by vtkCamera::GetFrustumPlanes()) to the vtkAMRStreamingPriorityQueue::Update() call to update the prorities for the blocks currently in the queue.

See also
vtkAMROutlineRepresentation, vtkAMRStreamingVolumeRepresentation.

Definition at line 40 of file vtkAMRStreamingPriorityQueue.h.

Member Typedef Documentation

◆ Superclass

Definition at line 44 of file vtkAMRStreamingPriorityQueue.h.

Constructor & Destructor Documentation

◆ vtkAMRStreamingPriorityQueue()

vtkAMRStreamingPriorityQueue::vtkAMRStreamingPriorityQueue ( )
protected

◆ ~vtkAMRStreamingPriorityQueue()

vtkAMRStreamingPriorityQueue::~vtkAMRStreamingPriorityQueue ( )
protected

Member Function Documentation

◆ New()

static vtkAMRStreamingPriorityQueue* vtkAMRStreamingPriorityQueue::New ( )
static

◆ GetClassName()

virtual const char* vtkAMRStreamingPriorityQueue::GetClassName ( )
virtual

◆ IsTypeOf()

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

◆ IsA()

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

◆ SafeDownCast()

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

◆ PrintSelf()

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

◆ SetController()

void vtkAMRStreamingPriorityQueue::SetController ( vtkMultiProcessController *  )

If the controller is specified, the queue can be used in parallel.

So long as Initialize(), Update() and Pop() methods are called on all processes (need not be synchronized) and all process get the same amr tree and view_planes (which is generally true with ParaView), the blocks are distributed among the processes. By default, this is set to the vtkMultiProcessController::GetGlobalController();

◆ GetController()

virtual vtkMultiProcessController* vtkAMRStreamingPriorityQueue::GetController ( )
virtual

If the controller is specified, the queue can be used in parallel.

So long as Initialize(), Update() and Pop() methods are called on all processes (need not be synchronized) and all process get the same amr tree and view_planes (which is generally true with ParaView), the blocks are distributed among the processes. By default, this is set to the vtkMultiProcessController::GetGlobalController();

◆ Initialize()

void vtkAMRStreamingPriorityQueue::Initialize ( vtkAMRInformation *  amr)

Initializes the queue.

All information about items in the is lost.

◆ Reinitialize()

void vtkAMRStreamingPriorityQueue::Reinitialize ( )

Re-initializes the priority queue using the amr structure given to the most recent call to Initialize().

◆ Update() [1/2]

void vtkAMRStreamingPriorityQueue::Update ( const double  view_planes[24],
const double  clamp_bounds[6] 
)

Updates the priorities of blocks based on the new view frustum planes.

Information about blocks "popped" from the queue is preserved and those blocks are not reinserted in the queue.

◆ Update() [2/2]

void vtkAMRStreamingPriorityQueue::Update ( const double  view_planes[24])

Updates the priorities of blocks based on the new view frustum planes.

Information about blocks "popped" from the queue is preserved and those blocks are not reinserted in the queue.

◆ IsEmpty()

bool vtkAMRStreamingPriorityQueue::IsEmpty ( )

Returns if the queue is empty.

◆ Pop()

unsigned int vtkAMRStreamingPriorityQueue::Pop ( )

Pops and returns of composite id for the block at the top of the queue.

Test if the queue is empty before calling this method.

Member Data Documentation

◆ Controller

vtkMultiProcessController* vtkAMRStreamingPriorityQueue::Controller
protected

Definition at line 97 of file vtkAMRStreamingPriorityQueue.h.


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