13#ifndef vtkPSurfaceLICComposite_h 
   14#define vtkPSurfaceLICComposite_h 
   19#include "vtkRenderingParallelLICModule.h"  
   26VTK_ABI_NAMESPACE_BEGIN
 
   32class vtkPPixelExtentOps;
 
   96  double EstimateCommunicationCost(
const std::deque<std::deque<vtkPixelExtent>>& srcExts,
 
   97    const std::deque<std::deque<vtkPixelExtent>>& destExts);
 
  104  double EstimateDecompEfficiency(
const std::deque<std::deque<vtkPixelExtent>>& exts,
 
  105    const std::deque<std::deque<vtkPixelExtent>>& guardExts);
 
  111  int DecomposeScreenExtent(std::deque<std::deque<vtkPixelExtent>>& newExts, 
float* vectors);
 
  117  int DecomposeExtent(
vtkPixelExtent& in, 
int nPieces, std::list<vtkPixelExtent>& out);
 
  128    std::deque<std::deque<vtkPixelExtent>>& out, 
float* vectors);
 
  131  int MakeDecompLocallyDisjoint(
 
  132    const std::deque<std::deque<vtkPixelExtent>>& in, std::deque<std::deque<vtkPixelExtent>>& out);
 
  141  int AllGatherExtents(
const std::deque<vtkPixelExtent>& localExts,
 
  142    std::deque<std::deque<vtkPixelExtent>>& remoteExts, 
vtkPixelExtent& dataSetExt);
 
  147  int AllReduceVectorMax(
const std::deque<vtkPixelExtent>& originalExts,
 
  148    const std::deque<std::deque<vtkPixelExtent>>& newExts, 
float* vectors,
 
  149    std::vector<std::vector<float>>& vectorMax);
 
  154  int AddGuardPixels(
const std::deque<std::deque<vtkPixelExtent>>& exts,
 
  155    std::deque<std::deque<vtkPixelExtent>>& guardExts,
 
  156    std::deque<std::deque<vtkPixelExtent>>& disjointGuardExts, 
float* vectors);
 
  159  vtkPPixelExtentOps* PixelOps;
 
  168  std::deque<vtkPPixelTransfer> GatherProgram; 
 
  169  std::deque<vtkPPixelTransfer>
 
  179VTKRENDERINGPARALLELLIC_EXPORT
 
dynamic, self-adjusting array of float
 
a simple class to control print indentation
 
Internal class which encapsulates OpenGL FramebufferObject.
 
This class decomposes the image space and shuffles image space data onto the new decomposition with t...
 
~vtkPSurfaceLICComposite() override
 
int Gather(void *pSendPBO, int dataType, int nComps, vtkTextureObject *&newImage) override
Move a single buffer from the geometry decomp to the LIC decomp.
 
void SetCommunicator(vtkPainterCommunicator *comm) override
Set the communicator for parallel communication.
 
void SetContext(vtkOpenGLRenderWindow *rwin) override
Set the rendering context.
 
int BuildProgram(float *vectors) override
Build programs to move data to the new decomp THIS IS A COLLECTIVE OPERATION.
 
vtkPSurfaceLICComposite()
 
vtkOpenGLRenderWindow * GetContext() override
 
int Scatter(void *pSendPBO, int dataType, int nComps, vtkTextureObject *&newImage) override
Move a single buffer from the LIC decomp to the geometry decomp THIS IS A COLLECTIVE OPERATION.
 
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
 
static vtkPSurfaceLICComposite * New()
 
friend VTKRENDERINGPARALLELLIC_EXPORT ostream & operator<<(ostream &os, vtkPSurfaceLICComposite &ss)
 
A communicator that can safely be used inside a painter.
 
Representation of a cartesian pixel plane and common operations on it.
 
create a window for renderers to draw into
 
This class decomposes the image space and shuffles image space data onto the new decomposition with t...
 
int AddGuardPixels(const std::deque< vtkPixelExtent > &exts, std::deque< vtkPixelExtent > &guardExts, std::deque< vtkPixelExtent > &disjointGuardExts, float *vectors)
Add guard pixels (Serial run)
 
static int MakeDecompDisjoint(std::deque< vtkPixelExtent > &in, std::deque< vtkPixelExtent > &out)
Make a decomposition disjoint with respect to itself.
 
abstracts an OpenGL texture object.
 
a weak reference to a vtkObject.
 
VTKRENDERINGPARALLELLIC_EXPORT ostream & operator<<(ostream &os, vtkPSurfaceLICComposite &ss)