00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00040 #ifndef __vtkLabelPlacementMapper_h
00041 #define __vtkLabelPlacementMapper_h
00042
00043 #include "vtkMapper2D.h"
00044
00045 class vtkCoordinate;
00046 class vtkLabelRenderStrategy;
00047 class vtkSelectVisiblePoints;
00048
00049 class VTK_RENDERING_EXPORT vtkLabelPlacementMapper : public vtkMapper2D
00050 {
00051 public:
00052 static vtkLabelPlacementMapper *New();
00053 vtkTypeMacro(vtkLabelPlacementMapper, vtkMapper2D);
00054 void PrintSelf(ostream& os, vtkIndent indent);
00055
00057 void RenderOverlay(vtkViewport *viewport, vtkActor2D *actor);
00058
00060
00061 virtual void SetRenderStrategy(vtkLabelRenderStrategy* s);
00062 vtkGetObjectMacro(RenderStrategy, vtkLabelRenderStrategy);
00064
00066
00068 vtkSetClampMacro(MaximumLabelFraction,double,0.,1.);
00069 vtkGetMacro(MaximumLabelFraction,double);
00071
00073
00075 vtkSetMacro(IteratorType,int);
00076 vtkGetMacro(IteratorType,int);
00078
00080
00081 vtkSetMacro(UseUnicodeStrings,bool);
00082 vtkGetMacro(UseUnicodeStrings,bool);
00083 vtkBooleanMacro(UseUnicodeStrings,bool);
00085
00087
00091 vtkGetMacro(PositionsAsNormals,bool);
00092 vtkSetMacro(PositionsAsNormals,bool);
00093 vtkBooleanMacro(PositionsAsNormals,bool);
00095
00097
00099 vtkGetMacro(GeneratePerturbedLabelSpokes,bool);
00100 vtkSetMacro(GeneratePerturbedLabelSpokes,bool);
00101 vtkBooleanMacro(GeneratePerturbedLabelSpokes,bool);
00103
00105
00108 vtkGetMacro(UseDepthBuffer,bool);
00109 vtkSetMacro(UseDepthBuffer,bool);
00110 vtkBooleanMacro(UseDepthBuffer,bool);
00112
00114
00116 vtkSetMacro(PlaceAllLabels, bool);
00117 vtkGetMacro(PlaceAllLabels, bool);
00118 vtkBooleanMacro(PlaceAllLabels, bool);
00120
00122
00123 vtkSetMacro(OutputTraversedBounds, bool);
00124 vtkGetMacro(OutputTraversedBounds, bool);
00125 vtkBooleanMacro(OutputTraversedBounds, bool);
00127
00128
00129 enum LabelShape {
00130 NONE,
00131 RECT,
00132 ROUNDED_RECT,
00133 NUMBER_OF_LABEL_SHAPES
00134 };
00135
00136
00138
00140 vtkSetClampMacro(Shape, int, 0, NUMBER_OF_LABEL_SHAPES-1);
00141 vtkGetMacro(Shape, int);
00142 virtual void SetShapeToNone()
00143 { this->SetShape(NONE); }
00144 virtual void SetShapeToRect()
00145 { this->SetShape(RECT); }
00146 virtual void SetShapeToRoundedRect()
00147 { this->SetShape(ROUNDED_RECT); }
00149
00150
00151 enum LabelStyle {
00152 FILLED,
00153 OUTLINE,
00154 NUMBER_OF_LABEL_STYLES
00155 };
00156
00157
00159
00161 vtkSetClampMacro(Style, int, 0, NUMBER_OF_LABEL_STYLES-1);
00162 vtkGetMacro(Style, int);
00163 virtual void SetStyleToFilled()
00164 { this->SetStyle(FILLED); }
00165 virtual void SetStyleToOutline()
00166 { this->SetStyle(OUTLINE); }
00168
00170
00171 vtkSetMacro(Margin, double);
00172 vtkGetMacro(Margin, double);
00174
00176
00177 vtkSetVector3Macro(BackgroundColor, double);
00178 vtkGetVector3Macro(BackgroundColor, double);
00180
00182
00183 vtkSetClampMacro(BackgroundOpacity, double, 0.0, 1.0);
00184 vtkGetMacro(BackgroundOpacity, double);
00186
00188
00189 vtkGetObjectMacro(AnchorTransform,vtkCoordinate);
00191
00192 protected:
00193 vtkLabelPlacementMapper();
00194 ~vtkLabelPlacementMapper();
00195
00196 virtual void SetAnchorTransform( vtkCoordinate* );
00197
00198 virtual int FillInputPortInformation( int port, vtkInformation* info );
00199
00200
00201 class Internal;
00202 Internal* Buckets;
00203
00204
00205 vtkLabelRenderStrategy* RenderStrategy;
00206 vtkCoordinate* AnchorTransform;
00207 vtkSelectVisiblePoints* VisiblePoints;
00208 double MaximumLabelFraction;
00209 bool PositionsAsNormals;
00210 bool GeneratePerturbedLabelSpokes;
00211 bool UseDepthBuffer;
00212 bool UseUnicodeStrings;
00213 bool PlaceAllLabels;
00214 bool OutputTraversedBounds;
00215
00216 int LastRendererSize[2];
00217 double LastCameraPosition[3];
00218 double LastCameraFocalPoint[3];
00219 double LastCameraViewUp[3];
00220 double LastCameraParallelScale;
00221 int IteratorType;
00222
00223 int Style;
00224 int Shape;
00225 double Margin;
00226 double BackgroundOpacity;
00227 double BackgroundColor[3];
00228
00229 private:
00230 vtkLabelPlacementMapper(const vtkLabelPlacementMapper&);
00231 void operator=(const vtkLabelPlacementMapper&);
00232 };
00233
00234 #endif
00235