00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00037 #ifndef __vtkLegendBoxActor_h
00038 #define __vtkLegendBoxActor_h
00039
00040 #include "vtkActor2D.h"
00041
00042 class vtkActor;
00043 class vtkDoubleArray;
00044 class vtkPolyData;
00045 class vtkPolyDataMapper2D;
00046 class vtkPolyDataMapper;
00047 class vtkTextMapper;
00048 class vtkTextProperty;
00049 class vtkTransform;
00050 class vtkTransformPolyDataFilter;
00051 class vtkProperty2D;
00052
00053 class VTK_HYBRID_EXPORT vtkLegendBoxActor : public vtkActor2D
00054 {
00055 public:
00056 vtkTypeRevisionMacro(vtkLegendBoxActor,vtkActor2D);
00057 void PrintSelf(ostream& os, vtkIndent indent);
00058
00061 static vtkLegendBoxActor *New();
00062
00064
00065 void SetNumberOfEntries(int num);
00066 int GetNumberOfEntries()
00067 {return this->NumberOfEntries;}
00069
00071
00079 void SetEntry(int i, vtkPolyData *symbol, const char* string, double color[3]);
00080 void SetEntrySymbol(int i, vtkPolyData *symbol);
00081 void SetEntryString(int i, const char* string);
00082 void SetEntryColor(int i, double color[3]);
00083 void SetEntryColor(int i, double r, double g, double b);
00084 vtkPolyData *GetEntrySymbol(int i);
00085 const char* GetEntryString(int i);
00086 double *GetEntryColor(int i);
00088
00090
00091 virtual void SetEntryTextProperty(vtkTextProperty *p);
00092 vtkGetObjectMacro(EntryTextProperty,vtkTextProperty);
00094
00096
00098 vtkSetMacro(Border, int);
00099 vtkGetMacro(Border, int);
00100 vtkBooleanMacro(Border, int);
00102
00104
00110 vtkSetMacro(LockBorder, int);
00111 vtkGetMacro(LockBorder, int);
00112 vtkBooleanMacro(LockBorder, int);
00114
00116
00118 vtkSetMacro(Box, int);
00119 vtkGetMacro(Box, int);
00120 vtkBooleanMacro(Box, int);
00122
00124 vtkProperty2D* GetBoxProperty() { return this->BoxActor->GetProperty(); };
00125
00127
00129 vtkSetClampMacro(Padding, int, 0, 50);
00130 vtkGetMacro(Padding, int);
00132
00134
00137 vtkSetMacro(ScalarVisibility,int);
00138 vtkGetMacro(ScalarVisibility,int);
00139 vtkBooleanMacro(ScalarVisibility,int);
00141
00144 void ShallowCopy(vtkProp *prop);
00145
00146
00151 virtual void ReleaseGraphicsResources(vtkWindow *);
00152
00154
00157 int RenderOpaqueGeometry(vtkViewport* viewport);
00158 int RenderTranslucentGeometry(vtkViewport* ) {return 0;};
00159 int RenderOverlay(vtkViewport* viewport);
00161
00162
00163 protected:
00164 vtkLegendBoxActor();
00165 ~vtkLegendBoxActor();
00166
00167 void InitializeEntries();
00168
00169
00170 int Border;
00171 int Box;
00172 int Padding;
00173 int LockBorder;
00174 int ScalarVisibility;
00175 double BoxOpacity;
00176
00177
00178 int NumberOfEntries;
00179 int Size;
00180 vtkDoubleArray *Colors;
00181 vtkTextMapper **TextMapper;
00182 vtkActor2D **TextActor;
00183 vtkPolyData **Symbol;
00184 vtkTransform **Transform;
00185 vtkTransformPolyDataFilter **SymbolTransform;
00186 vtkPolyDataMapper2D **SymbolMapper;
00187 vtkActor2D **SymbolActor;
00188 vtkPolyData *BorderPolyData;
00189 vtkPolyDataMapper2D *BorderMapper;
00190 vtkActor2D *BorderActor;
00191 vtkPolyData *BoxPolyData;
00192 vtkPolyDataMapper2D *BoxMapper;
00193 vtkActor2D *BoxActor;
00194 vtkTextProperty *EntryTextProperty;
00195
00196
00197 int LegendEntriesVisible;
00198 int CachedSize[2];
00199 vtkTimeStamp BuildTime;
00200
00201 private:
00202 vtkLegendBoxActor(const vtkLegendBoxActor&);
00203 void operator=(const vtkLegendBoxActor&);
00204 };
00205
00206
00207 #endif
00208