00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00027 #ifndef __vtkChooserPainter_h
00028 #define __vtkChooserPainter_h
00029
00030 #include "vtkPolyDataPainter.h"
00031
00032 class VTK_RENDERING_EXPORT vtkChooserPainter : public vtkPolyDataPainter
00033 {
00034 public:
00035 static vtkChooserPainter *New();
00036 vtkTypeRevisionMacro(vtkChooserPainter, vtkPolyDataPainter);
00037 void PrintSelf(ostream &os, vtkIndent indent);
00038
00043 protected:
00044 vtkChooserPainter();
00045 ~vtkChooserPainter();
00046
00047 vtkPolyDataPainter *VertPainter;
00048 vtkPolyDataPainter *LinePainter;
00049 vtkPolyDataPainter *PolyPainter;
00050 vtkPolyDataPainter *StripPainter;
00051
00052 void SetVertPainter(vtkPolyDataPainter*);
00053 void SetLinePainter(vtkPolyDataPainter*);
00054 void SetPolyPainter(vtkPolyDataPainter*);
00055 void SetStripPainter(vtkPolyDataPainter*);
00056
00062 virtual void PrepareForRendering(vtkRenderer*, vtkActor*);
00063
00066 virtual void ChoosePainters(vtkRenderer *renderer, vtkActor*);
00067
00069
00071 virtual void SelectPainters(vtkRenderer *renderer, vtkActor* actor,
00072 const char *&vertpaintertype,
00073 const char *&linepaintertype,
00074 const char *&polypaintertype,
00075 const char *&strippaintertype);
00077
00079 virtual void UpdateChoosenPainters();
00080
00082 virtual vtkPolyDataPainter *CreatePainter(const char *paintertype);
00083
00085
00090 virtual void RenderInternal(vtkRenderer* renderer, vtkActor* actor,
00091 unsigned long typeflags);
00093
00095 virtual void ReportReferences(vtkGarbageCollector *collector);
00096
00097 vtkRenderer *LastRenderer;
00098 vtkTimeStamp PaintersChoiceTime;
00099 private:
00100 vtkChooserPainter(const vtkChooserPainter &);
00101 void operator=(const vtkChooserPainter &);
00102 };
00103
00104 #endif //_vtkChooserPainter_h
00105