00001
00002
00003
00004
00005
00016 #ifndef __vtkControlLine_h
00017 #define __vtkControlLine_h
00018
00019 #include <string>
00020
00021 #include <vtkObject.h>
00022 #include <SignDLL.h>
00023
00024 class vtkActor2D;
00025 class vtkLineSource;
00026 class vtkAppendPolyData;
00027 class vtkPolyDataMapper2D;
00028 class vtkGlyphSource2D;
00029 class vtkMatrix4x4;
00030
00031 class SIGN_EXPORT vtkControlLine : public vtkObject
00032 {
00033
00034 public:
00035 vtkTypeRevisionMacro(vtkControlLine,vtkObject);
00036 virtual void PrintSelf(::ostream& os, vtkIndent indent);
00037
00039 static vtkControlLine *New();
00040
00042 vtkActor2D *GetActor();
00043
00045 void SetPosition(int x, int y);
00047 void SetCenterPosition(int x, int y);
00049 void SetLeftPosition(int x, int y);
00051 void SetRightPosition(int x, int y);
00053 void SetAngle(float a) {};
00054
00056 void GetCenterPosition(int *pos);
00058 void GetLeftPosition(int *pos);
00060 void GetRightPosition(int *pos);
00062 float GetAngle();
00064 std::string GetName();
00066 void SetName(std::string);
00070 void GetQFromR(const vtkMatrix4x4 *matrix, float quat[4]);
00071 protected:
00072 vtkControlLine();
00073 ~vtkControlLine();
00074
00075 private:
00076 void SetAll();
00077
00078 int centerpos[2];
00079 int leftpos[2];
00080 int rightpos[2];
00081
00082 std::string name;
00083
00084 float angle;
00085
00086 vtkActor2D *lineActor;
00087 vtkLineSource *line;
00088 vtkGlyphSource2D *circleCenter;
00089 vtkGlyphSource2D *circleLeft;
00090 vtkGlyphSource2D *circleRight;
00091
00092 vtkControlLine(const vtkControlLine&);
00093 void operator=(const vtkControlLine&);
00094
00095 };
00096
00097 #endif