00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00050
#ifndef __vtkProgrammableSource_h
00051
#define __vtkProgrammableSource_h
00052
00053
#include "vtkSource.h"
00054
00055
class vtkPolyData;
00056
class vtkStructuredPoints;
00057
class vtkStructuredGrid;
00058
class vtkUnstructuredGrid;
00059
class vtkRectilinearGrid;
00060
00061 class VTK_GRAPHICS_EXPORT vtkProgrammableSource :
public vtkSource
00062 {
00063
public:
00064
static vtkProgrammableSource *
New();
00065 vtkTypeRevisionMacro(vtkProgrammableSource,
vtkSource);
00066
00069
void SetExecuteMethod(
void (*f)(
void *),
void *arg);
00070
00072
void SetExecuteMethodArgDelete(
void (*f)(
void *));
00073
00078
vtkPolyData *GetPolyDataOutput();
00079
00081
vtkStructuredPoints *GetStructuredPointsOutput();
00082
00084
vtkStructuredGrid *GetStructuredGridOutput();
00085
00087
vtkUnstructuredGrid *GetUnstructuredGridOutput();
00088
00090
vtkRectilinearGrid *GetRectilinearGridOutput();
00091
00092
void UpdateInformation();
00093
void UpdateData(
vtkDataObject *output);
00094
00095
protected:
00096 vtkProgrammableSource();
00097 ~vtkProgrammableSource();
00098
00099
void Execute();
00100
00101 void (*ExecuteMethod)(
void *);
00102 void (*ExecuteMethodArgDelete)(
void *);
00103 void *ExecuteMethodArg;
00104
00105 vtkTimeStamp ExecuteTime;
00106
private:
00107 vtkProgrammableSource(
const vtkProgrammableSource&);
00108
void operator=(
const vtkProgrammableSource&);
00109 };
00110
00111
#endif
00112