00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00055
#ifndef __vtkCubeAxesActor2D_h
00056
#define __vtkCubeAxesActor2D_h
00057
00058
#include "vtkActor2D.h"
00059
00060 #define VTK_FLY_OUTER_EDGES 0
00061 #define VTK_FLY_CLOSEST_TRIAD 1
00062
00063
class vtkAxisActor2D;
00064
class vtkCamera;
00065
class vtkDataSet;
00066
class vtkTextProperty;
00067
00068 class VTK_HYBRID_EXPORT vtkCubeAxesActor2D :
public vtkActor2D
00069 {
00070
public:
00071 vtkTypeRevisionMacro(vtkCubeAxesActor2D,
vtkActor2D);
00072
void PrintSelf(ostream& os,
vtkIndent indent);
00073
00077
static vtkCubeAxesActor2D *
New();
00078
00080
00081
int RenderOverlay(
vtkViewport*);
00082
int RenderOpaqueGeometry(
vtkViewport*);
00083 int RenderTranslucentGeometry(
vtkViewport *) {
return 0;}
00085
00087
00090
virtual void SetInput(
vtkDataSet*);
00091 vtkGetObjectMacro(Input,
vtkDataSet);
00093
00095
00097
virtual void SetProp(
vtkProp*);
00098 vtkGetObjectMacro(Prop,
vtkProp);
00100
00102
00106 vtkSetVector6Macro(Bounds,
float);
00107
float *
GetBounds();
00108
void GetBounds(
float& xmin,
float& xmax,
float& ymin,
float& ymax,
00109
float& zmin,
float& zmax);
00110
void GetBounds(
float bounds[6]);
00112
00114
00117 vtkSetVector6Macro(Ranges,
float);
00118
float *GetRanges();
00119
void GetRanges(
float& xmin,
float& xmax,
float& ymin,
float& ymax,
00120
float& zmin,
float& zmax);
00121
void GetRanges(
float ranges[6]);
00123
00125
00127 vtkSetMacro(UseRanges,
int);
00128 vtkGetMacro(UseRanges,
int);
00129 vtkBooleanMacro(UseRanges,
int);
00131
00133
00135
virtual void SetCamera(
vtkCamera*);
00136 vtkGetObjectMacro(Camera,
vtkCamera);
00138
00140
00142 vtkSetClampMacro(FlyMode,
int, VTK_FLY_OUTER_EDGES, VTK_FLY_CLOSEST_TRIAD);
00143 vtkGetMacro(FlyMode,
int);
00144 void SetFlyModeToOuterEdges()
00145 {this->SetFlyMode(
VTK_FLY_OUTER_EDGES);};
00146 void SetFlyModeToClosestTriad()
00147 {this->SetFlyMode(
VTK_FLY_CLOSEST_TRIAD);};
00149
00151
00155 vtkSetMacro(Scaling,
int);
00156 vtkGetMacro(Scaling,
int);
00157 vtkBooleanMacro(Scaling,
int);
00159
00161
00164 vtkSetClampMacro(NumberOfLabels,
int, 0, 50);
00165 vtkGetMacro(NumberOfLabels,
int);
00167
00169
00171 vtkSetStringMacro(XLabel);
00172 vtkGetStringMacro(XLabel);
00173 vtkSetStringMacro(YLabel);
00174 vtkGetStringMacro(YLabel);
00175 vtkSetStringMacro(ZLabel);
00176 vtkGetStringMacro(ZLabel);
00178
00180
00182 vtkAxisActor2D *GetXAxisActor2D()
00183 {
return this->XAxis;}
00184 vtkAxisActor2D *GetYAxisActor2D()
00185 {
return this->YAxis;}
00186 vtkAxisActor2D *GetZAxisActor2D()
00187 {
return this->ZAxis;}
00189
00191
00193
virtual void SetAxisTitleTextProperty(
vtkTextProperty *p);
00194 vtkGetObjectMacro(AxisTitleTextProperty,
vtkTextProperty);
00196
00198
00200
virtual void SetAxisLabelTextProperty(
vtkTextProperty *p);
00201 vtkGetObjectMacro(AxisLabelTextProperty,
vtkTextProperty);
00203
00204
#ifndef VTK_REMOVE_LEGACY_CODE
00205
00206
00211
virtual void SetFontFamily(
int val);
00212
virtual int GetFontFamily();
00213 void SetFontFamilyToArial() { this->SetFontFamily(
VTK_ARIAL); };
00214 void SetFontFamilyToCourier() { this->SetFontFamily(
VTK_COURIER);};
00215 void SetFontFamilyToTimes() { this->SetFontFamily(
VTK_TIMES); };
00217
#endif
00218
00219
#ifndef VTK_REMOVE_LEGACY_CODE
00220
00221
00224
virtual void SetBold(
int val);
00225
virtual int GetBold();
00226 vtkBooleanMacro(Bold,
int);
00228
#endif
00229
00230
#ifndef VTK_REMOVE_LEGACY_CODE
00231
00232
00235
virtual void SetItalic(
int val);
00236
virtual int GetItalic();
00237 vtkBooleanMacro(Italic,
int);
00239
#endif
00240
00241
#ifndef VTK_REMOVE_LEGACY_CODE
00242
00243
00246
virtual void SetShadow(
int val);
00247
virtual int GetShadow();
00248 vtkBooleanMacro(Shadow,
int);
00250
#endif
00251
00253
00255 vtkSetStringMacro(LabelFormat);
00256 vtkGetStringMacro(LabelFormat);
00258
00260
00262 vtkSetClampMacro(FontFactor,
float, 0.1, 2.0);
00263 vtkGetMacro(FontFactor,
float);
00265
00267
00270 vtkSetClampMacro(Inertia,
int, 1, VTK_LARGE_INTEGER);
00271 vtkGetMacro(Inertia,
float);
00273
00275
00278 vtkSetMacro(CornerOffset,
float);
00279 vtkGetMacro(CornerOffset,
float);
00281
00285
void ReleaseGraphicsResources(
vtkWindow *);
00286
00288
00289 vtkSetMacro(XAxisVisibility,
int);
00290 vtkGetMacro(XAxisVisibility,
int);
00291 vtkBooleanMacro(XAxisVisibility,
int);
00292 vtkSetMacro(YAxisVisibility,
int);
00293 vtkGetMacro(YAxisVisibility,
int);
00294 vtkBooleanMacro(YAxisVisibility,
int);
00295 vtkSetMacro(ZAxisVisibility,
int);
00296 vtkGetMacro(ZAxisVisibility,
int);
00297 vtkBooleanMacro(ZAxisVisibility,
int);
00299
00301
void ShallowCopy(vtkCubeAxesActor2D *actor);
00302
00303
protected:
00304 vtkCubeAxesActor2D();
00305 ~vtkCubeAxesActor2D();
00306
00307 vtkDataSet *Input;
00308 vtkProp *Prop;
00309 float Bounds[6];
00310 float Ranges[6];
00311 int UseRanges;
00312
00313 vtkCamera *Camera;
00314 int FlyMode;
00315 int Scaling;
00316
00317 vtkAxisActor2D *XAxis;
00318 vtkAxisActor2D *YAxis;
00319 vtkAxisActor2D *ZAxis;
00320
00321 vtkTextProperty *AxisTitleTextProperty;
00322 vtkTextProperty *AxisLabelTextProperty;
00323
00324 vtkTimeStamp BuildTime;
00325
00326 int NumberOfLabels;
00327 char *XLabel;
00328 char *YLabel;
00329 char *ZLabel;
00330 char *Labels[3];
00331
00332 int XAxisVisibility;
00333 int YAxisVisibility;
00334 int ZAxisVisibility;
00335
00336 char *LabelFormat;
00337 float FontFactor;
00338 float CornerOffset;
00339 int Inertia;
00340 int RenderCount;
00341 int InertiaAxes[8];
00342
00343 int RenderSomething;
00344
00345
00346
void TransformBounds(
vtkViewport *viewport,
float bounds[6],
00347
float pts[8][3]);
00348
int ClipBounds(
vtkViewport *viewport,
float pts[8][3],
float bounds[6]);
00349
float EvaluatePoint(
float planes[24],
float x[3]);
00350
float EvaluateBounds(
float planes[24],
float bounds[6]);
00351
void AdjustAxes(
float pts[8][3],
float bounds[6],
00352
int idx,
int xIdx,
int yIdx,
int zIdx,
int zIdx2,
00353
int xAxes,
int yAxes,
int zAxes,
00354
float xCoords[4],
float yCoords[4],
float zCoords[4],
00355
float xRange[2],
float yRange[2],
float zRange[2]);
00356
00357
private:
00358
00359
void ShallowCopy(
vtkProp *prop) { this->
vtkProp::ShallowCopy( prop ); };
00360
private:
00361 vtkCubeAxesActor2D(
const vtkCubeAxesActor2D&);
00362
void operator=(
const vtkCubeAxesActor2D&);
00363 };
00364
00365
00366
#endif