00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00063 #ifndef __vtkProgrammableGlyphFilter_h
00064 #define __vtkProgrammableGlyphFilter_h
00065
00066 #define VTK_COLOR_BY_INPUT 0
00067 #define VTK_COLOR_BY_SOURCE 1
00068
00069 #include "vtkPolyDataAlgorithm.h"
00070
00071 class vtkPointData;
00072
00073 class VTK_GRAPHICS_EXPORT vtkProgrammableGlyphFilter : public vtkPolyDataAlgorithm
00074 {
00075 public:
00076 vtkTypeMacro(vtkProgrammableGlyphFilter,vtkPolyDataAlgorithm);
00077 void PrintSelf(ostream& os, vtkIndent indent);
00078
00081 static vtkProgrammableGlyphFilter *New();
00082
00084
00086 void SetSource(vtkPolyData *source);
00087 vtkPolyData *GetSource();
00089
00096 typedef void (*ProgrammableMethodCallbackType)(void *arg);
00097
00099 void SetGlyphMethod(void (*f)(void *), void *arg);
00100
00103 void SetGlyphMethodArgDelete(void (*f)(void *));
00104
00106
00109 vtkGetMacro(PointId, vtkIdType);
00111
00113
00116 vtkGetVector3Macro(Point,double);
00118
00120
00123 vtkGetObjectMacro(PointData,vtkPointData);
00125
00127
00128 vtkSetMacro(ColorMode,int);
00129 vtkGetMacro(ColorMode,int);
00130 void SetColorModeToColorByInput()
00131 {this->SetColorMode(VTK_COLOR_BY_INPUT);};
00132 void SetColorModeToColorBySource()
00133 {this->SetColorMode(VTK_COLOR_BY_SOURCE);};
00134 const char *GetColorModeAsString();
00136
00137 protected:
00138 vtkProgrammableGlyphFilter();
00139 ~vtkProgrammableGlyphFilter();
00140
00141 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00142 virtual int FillInputPortInformation(int, vtkInformation *);
00143
00144 double Point[3];
00145 vtkIdType PointId;
00146 vtkPointData *PointData;
00147 int ColorMode;
00148
00149 ProgrammableMethodCallbackType GlyphMethod;
00150 ProgrammableMethodCallbackType GlyphMethodArgDelete;
00151 void *GlyphMethodArg;
00152
00153 private:
00154 vtkProgrammableGlyphFilter(const vtkProgrammableGlyphFilter&);
00155 void operator=(const vtkProgrammableGlyphFilter&);
00156 };
00157
00158 #endif