00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00042 #ifndef __vtkBiDimensionalRepresentation_h
00043 #define __vtkBiDimensionalRepresentation_h
00044
00045 #include "vtkWidgetRepresentation.h"
00046
00047 class vtkHandleRepresentation;
00048
00049
00050 class VTK_WIDGETS_EXPORT vtkBiDimensionalRepresentation : public vtkWidgetRepresentation
00051 {
00052 public:
00054
00055 vtkTypeMacro(vtkBiDimensionalRepresentation,vtkWidgetRepresentation);
00056 void PrintSelf(ostream& os, vtkIndent indent);
00058
00060
00063 virtual void SetPoint1WorldPosition(double pos[3]);
00064 virtual void SetPoint2WorldPosition(double pos[3]);
00065 virtual void SetPoint3WorldPosition(double pos[3]);
00066 virtual void SetPoint4WorldPosition(double pos[3]);
00067 virtual void GetPoint1WorldPosition(double pos[3]);
00068 virtual void GetPoint2WorldPosition(double pos[3]);
00069 virtual void GetPoint3WorldPosition(double pos[3]);
00070 virtual void GetPoint4WorldPosition(double pos[3]);
00071 virtual void SetPoint1DisplayPosition(double pos[3]);
00072 virtual void SetPoint2DisplayPosition(double pos[3]);
00073 virtual void SetPoint3DisplayPosition(double pos[3]);
00074 virtual void SetPoint4DisplayPosition(double pos[3]);
00075 virtual void GetPoint1DisplayPosition(double pos[3]);
00076 virtual void GetPoint2DisplayPosition(double pos[3]);
00077 virtual void GetPoint3DisplayPosition(double pos[3]);
00078 virtual void GetPoint4DisplayPosition(double pos[3]);
00080
00082
00086 vtkGetObjectMacro(Point1Representation,vtkHandleRepresentation);
00087 vtkGetObjectMacro(Point2Representation,vtkHandleRepresentation);
00088 vtkGetObjectMacro(Point3Representation,vtkHandleRepresentation);
00089 vtkGetObjectMacro(Point4Representation,vtkHandleRepresentation);
00091
00093
00097 vtkSetMacro(Line1Visibility,int);
00098 vtkGetMacro(Line1Visibility,int);
00099 vtkBooleanMacro(Line1Visibility,int);
00100 vtkSetMacro(Line2Visibility,int);
00101 vtkGetMacro(Line2Visibility,int);
00102 vtkBooleanMacro(Line2Visibility,int);
00104
00106
00115 void SetHandleRepresentation(vtkHandleRepresentation *handle);
00116 virtual void InstantiateHandleRepresentation();
00118
00120
00123 vtkSetClampMacro(Tolerance,int,1,100);
00124 vtkGetMacro(Tolerance,int);
00126
00129 virtual double GetLength1();
00130
00133 virtual double GetLength2();
00134
00136
00139 vtkSetStringMacro(LabelFormat);
00140 vtkGetStringMacro(LabelFormat);
00142
00143
00144 enum {Outside=0,NearP1,NearP2,NearP3,NearP4,OnL1Inner,OnL1Outer,OnL2Inner,OnL2Outer,OnCenter};
00145
00146
00148
00150 vtkSetMacro(ShowLabelAboveWidget, int);
00151 vtkGetMacro(ShowLabelAboveWidget, int);
00152 vtkBooleanMacro(ShowLabelAboveWidget, int);
00154
00156
00157 void SetID(vtkIdType id);
00158 vtkGetMacro(ID, vtkIdType);
00160
00162 virtual char* GetLabelText() = 0;
00163
00165
00166 virtual double* GetLabelPosition() = 0;
00167 virtual void GetLabelPosition(double pos[3]) = 0;
00168 virtual void GetWorldLabelPosition(double pos[3]) = 0;
00170
00172
00173 virtual void StartWidgetDefinition(double e[2]) = 0;
00174 virtual void Point2WidgetInteraction(double e[2]) = 0;
00175 virtual void Point3WidgetInteraction(double e[2]) = 0;
00176 virtual void StartWidgetManipulation(double e[2]) = 0;
00178
00179 protected:
00180 vtkBiDimensionalRepresentation();
00181 ~vtkBiDimensionalRepresentation();
00182
00183
00184 int Modifier;
00185
00186
00187 vtkHandleRepresentation *HandleRepresentation;
00188 vtkHandleRepresentation *Point1Representation;
00189 vtkHandleRepresentation *Point2Representation;
00190 vtkHandleRepresentation *Point3Representation;
00191 vtkHandleRepresentation *Point4Representation;
00192
00193
00194 int Tolerance;
00195
00196
00197 int Line1Visibility;
00198 int Line2Visibility;
00199
00200 vtkIdType ID;
00201 int IDInitialized;
00202
00203
00204 double P1World[3];
00205 double P2World[3];
00206 double P3World[3];
00207 double P4World[3];
00208 double P21World[3];
00209 double P43World[3];
00210 double T21;
00211 double T43;
00212 double CenterWorld[3];
00213 double StartEventPositionWorld[4];
00214
00215
00216 char *LabelFormat;
00217
00218
00219 int ShowLabelAboveWidget;
00220
00221 private:
00222 vtkBiDimensionalRepresentation(const vtkBiDimensionalRepresentation&);
00223 void operator=(const vtkBiDimensionalRepresentation&);
00224 };
00225
00226 #endif