/usr/include/VTKEdge/vtkKWEGPUImageAlgorithmDriver.h is in libvtkedge-dev 0.2.0~20110819-1build2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 | //=============================================================================
// This file is part of VTKEdge. See vtkedge.org for more information.
//
// Copyright (c) 2010 Kitware, Inc.
//
// VTKEdge may be used under the terms of the BSD License
// Please see the file Copyright.txt in the root directory of
// VTKEdge for further information.
//
// Alternatively, you may see:
//
// http://www.vtkedge.org/vtkedge/project/license.html
//
//
// For custom extensions, consulting services, or training for
// this or any other Kitware supported open source project, please
// contact Kitware at sales@kitware.com.
//
//
//=============================================================================
// .NAME vtkKWEGPUImageAlgorithmDriver
// .SECTION Description
// vtkKWEGPUImageAlgorithmDriver is a the driver for all image processing
// algorithms that use the GPU to do the work.
#ifndef __vtkKWEGPUImageAlgorithmDriver_h
#define __vtkKWEGPUImageAlgorithmDriver_h
#include "vtkImageAlgorithm.h"
#include "VTKEdgeConfigure.h" // include configuration header
#include "vtkStructuredData.h" // for VTK_XY_PLANE, ...
#include "vtkWeakPointer.h" // needed for vtkWeakPointer
#include "vtkSmartPointer.h" // needed for vtkWeakPointer
//BTX
#include <vtkstd/vector>
//ETX
class vtkRenderWindow;
class vtkDataTransferHelper;
class vtkKWEExtentCalculator;
class VTKEdge_HYBRID_EXPORT vtkKWEGPUImageAlgorithmDriver : public vtkImageAlgorithm
{
public:
vtkTypeRevisionMacro(vtkKWEGPUImageAlgorithmDriver, vtkImageAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Get/Set the context. Note that the context is not reference counted.
vtkRenderWindow* GetContext();
virtual void SetContext(vtkRenderWindow*);
//BTX
enum ExtentTypes
{
INVALID=0,
XY_PLANE = VTK_XY_PLANE,
YZ_PLANE = VTK_YZ_PLANE,
XZ_PLANE = VTK_XZ_PLANE,
XYZ_GRID = VTK_XYZ_GRID
};
protected:
class vtkBuses;
vtkKWEGPUImageAlgorithmDriver();
~vtkKWEGPUImageAlgorithmDriver();
// Description:
// The method should return how the streamer should break up extents.
// This is not much different from the split mode specified on
// vtkExtentTranslator.
virtual ExtentTypes GetSplitMode(vtkInformation* request,
vtkInformationVector** inputVector,
vtkInformationVector* outputVector) = 0;
// Description:
// Given the output_extent that we need to
// produce, what extents does the subclass need from the input on the
// indicated (port, connection). Return value is a an int indicating the
// minimum dimensionality of the texture created for the corresponding input.
// Returns value 0 (or less) indicates error.
virtual int MapOutputExtentToInput(int input_extent[6],
int port, int connection,
vtkInformation* inInfo, const int output_extent[6]) = 0;
// Description:
// Gives the subclasses an opportunity to do some initialization before the
// looping begins.
virtual bool InitializeExecution(
vtkInformation* vtkNotUsed(request),
vtkInformationVector** vtkNotUsed(inputVector),
vtkInformationVector* vtkNotUsed(outputVector)) {return true;}
// Description:
// Actual execution method.
virtual bool Execute(vtkBuses* upBuses,
vtkDataTransferHelper* downBus) = 0;
virtual void Execute() { this->Superclass::Execute(); }
// Description:
// Gives the subclasses an opportunity to do some cleanup after the
// looping ends.
virtual bool FinalizeExecution(
vtkInformation* vtkNotUsed(request),
vtkInformationVector** vtkNotUsed(inputVector),
vtkInformationVector* vtkNotUsed(outputVector)) {return true;}
// Description:
// Actual execution. Subclasses should not override this method. They should
// override Execute() instead.
virtual int RequestData(vtkInformation* request,
vtkInformationVector** inputVector,
vtkInformationVector* outputVector);
// Description:
// RequestUpdateExtent.
int RequestUpdateExtent (
vtkInformation *request,
vtkInformationVector **inputVector,
vtkInformationVector *outputVector);
bool ComputeTCoordsRange(double tcoords[6],
const int inputExt[6], const int outputExt[6]);
vtkWeakPointer<vtkRenderWindow> Context;
bool OwnContext;
private:
vtkKWEGPUImageAlgorithmDriver(const vtkKWEGPUImageAlgorithmDriver&); // Not implemented.
void operator=(const vtkKWEGPUImageAlgorithmDriver&); // Not implemented.
class vtkPipe;
friend class vtkPipe;
// Description:
// Internal method that uploads the current chunk for all inputs to the GPU.
vtkBuses* Upload(vtkKWEExtentCalculator* extentCalculator,
vtkInformationVector** inputVector,
vtkPipe& pipe);
bool SetupOutputTexture(ExtentTypes chunkType, vtkDataTransferHelper* down_bus);
//ETX
};
//BTX
class vtkKWEGPUImageAlgorithmDriver::vtkBuses : public vtkObjectBase
{
public:
vtkTypeRevisionMacro(vtkBuses, vtkObjectBase);
static vtkBuses* New();
void SetNumberOfPorts(unsigned int num);
void SetNumberOfConnections(unsigned int port, unsigned int num);
vtkDataTransferHelper* GetBus(unsigned int port, unsigned int conn);
void SetBus(unsigned int port, unsigned int conn, vtkDataTransferHelper* bus);
private:
vtkBuses() { }
virtual ~vtkBuses() { }
typedef vtkstd::vector<vtkSmartPointer<vtkDataTransferHelper> > XferHelperVector;
typedef vtkstd::vector<XferHelperVector> VectorOfXferHelperVector;
VectorOfXferHelperVector Buses;
};
//ETX
#endif
|