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