13#ifndef vtkSurfaceLICComposite_h 
   14#define vtkSurfaceLICComposite_h 
   18#include "vtkRenderingLICOpenGL2Module.h"  
   22VTK_ABI_NAMESPACE_BEGIN
 
   43    int strategy, 
double stepSize, 
int nSteps, 
int normalizeVectors, 
int enhancedLIC,
 
   77    COMPOSITE_INPLACE = 0,
 
   97  const std::deque<vtkPixelExtent>& 
GetGuardExtents()
 const { 
return this->GuardExt; }
 
  105    return this->DisjointGuardExt[i];
 
  193    const std::deque<vtkPixelExtent>& in, std::deque<vtkPixelExtent>& out, 
float* vectors);
 
  204  int VectorMax(
const std::deque<vtkPixelExtent>& exts, 
float* vectors, std::vector<float>& vMax);
 
  209  int AddGuardPixels(
const std::deque<vtkPixelExtent>& exts, std::deque<vtkPixelExtent>& guardExts,
 
  210    std::deque<vtkPixelExtent>& disjointGuardExts, 
float* vectors);
 
dynamic, self-adjusting array of float
 
a simple class to control print indentation
 
abstract base class for most VTK objects
 
A communicator that can safely be used inside a painter.
 
Representation of a cartesian pixel plane and common operations on it.
 
This class decomposes the image space and shuffles image space data onto the new decomposition with t...
 
const vtkPixelExtent & GetCompositeExtent(int i=0) const
Get the extent of the domain over which to compute the LIC.
 
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
 
float GetFudgeFactor(int nx[2])
factor for determining extra padding for guard pixels.
 
void SetStrategy(int val)
 
void GetPixelBounds(float *rgba, int ni, vtkPixelExtent &ext)
shrink pixel extent based on non-zero alpha channel values
 
virtual void SetContext(vtkOpenGLRenderWindow *)
Set the rendering context.
 
~vtkSurfaceLICComposite() override
 
float VectorMax(const vtkPixelExtent &ext, float *vectors)
Compute max(V) on the given extent.
 
const vtkPixelExtent & GetDisjointGuardExtent(int i=0) const
Get the extent of the domain over which to compute the LIC.
 
std::deque< vtkPixelExtent > BlockExts
 
virtual void RestoreDefaultCommunicator()
Set the communicator to the default communicator.
 
const std::deque< vtkPixelExtent > & GetCompositeExtents() const
 
int NumberOfEEGuardPixels
 
int MakeDecompDisjoint(const std::deque< vtkPixelExtent > &in, std::deque< vtkPixelExtent > &out, float *vectors)
For serial run.
 
const vtkPixelExtent & GetDataSetExtent() const
Get the whole dataset extent (all blocks).
 
@ COMPOSITE_INPLACE_DISJOINT
 
std::deque< vtkPixelExtent > DisjointGuardExt
 
int AddGuardPixels(const std::deque< vtkPixelExtent > &exts, std::deque< vtkPixelExtent > &guardExts, std::deque< vtkPixelExtent > &disjointGuardExts, float *vectors)
Add guard pixels (Serial run)
 
int GetNumberOfCompositeExtents() const
Get the number of new extents assigned to this rank after the decomposition.
 
const vtkPixelExtent & GetGuardExtent(int i=0) const
Get the extent of the domain over which to compute the LIC.
 
int NumberOfAAGuardPixels
 
virtual vtkOpenGLRenderWindow * GetContext()
 
const vtkPixelExtent & GetWindowExtent() const
Get the whole window extent.
 
friend ostream & operator<<(ostream &os, vtkSurfaceLICComposite &ss)
 
virtual int Gather(void *, int, int, vtkTextureObject *&)
Move a single buffer from the geometry decomp to the LIC decomp.
 
int VectorMax(const std::deque< vtkPixelExtent > &exts, float *vectors, std::vector< float > &vMax)
Compute max(V) on a set of extents.
 
vtkPixelExtent DataSetExt
 
static int MakeDecompDisjoint(std::deque< vtkPixelExtent > &in, std::deque< vtkPixelExtent > &out)
Make a decomposition disjoint with respect to itself.
 
const std::deque< vtkPixelExtent > & GetDisjointGuardExtents() const
 
int InitializeCompositeExtents(float *vectors)
Set up for a serial run, makes the decomp disjoint and adds requisite guard pixles.
 
virtual void SetCommunicator(vtkPainterCommunicator *)
Set the communicator for parallel communication.
 
std::deque< vtkPixelExtent > CompositeExt
 
virtual int Scatter(void *, int, int, vtkTextureObject *&)
Move a single buffer from the LIC decomp to the geometry decomp In parallel THIS IS A COLLECTIVE OPER...
 
virtual int BuildProgram(float *)
Build programs to move data to the new decomp In parallel THIS IS A COLLECTIVE OPERATION.
 
void Initialize(const vtkPixelExtent &winExt, const std::deque< vtkPixelExtent > &blockExts, int strategy, double stepSize, int nSteps, int normalizeVectors, int enhancedLIC, int anitalias)
Initialize the object based on the following description of the blocks projected onto the render wind...
 
static vtkSurfaceLICComposite * New()
 
const std::deque< vtkPixelExtent > & GetGuardExtents() const
 
std::deque< vtkPixelExtent > GuardExt
 
abstracts an OpenGL texture object.
 
ostream & operator<<(ostream &os, vtkSurfaceLICComposite &ss)