00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkAngleRepresentation2D.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00036 #ifndef __vtkAngleRepresentation2D_h 00037 #define __vtkAngleRepresentation2D_h 00038 00039 #include "vtkAngleRepresentation.h" 00040 00041 class vtkLeaderActor2D; 00042 class vtkProperty2D; 00043 00044 00045 class VTK_WIDGETS_EXPORT vtkAngleRepresentation2D : public vtkAngleRepresentation 00046 { 00047 public: 00049 static vtkAngleRepresentation2D *New(); 00050 00052 00053 vtkTypeRevisionMacro(vtkAngleRepresentation2D,vtkAngleRepresentation); 00054 void PrintSelf(ostream& os, vtkIndent indent); 00056 00058 virtual double GetAngle(); 00059 00061 00064 virtual void GetPoint1WorldPosition(double pos[3]); 00065 virtual void GetCenterWorldPosition(double pos[3]); 00066 virtual void GetPoint2WorldPosition(double pos[3]); 00067 virtual void SetPoint1DisplayPosition(double pos[3]); 00068 virtual void SetCenterDisplayPosition(double pos[3]); 00069 virtual void SetPoint2DisplayPosition(double pos[3]); 00070 virtual void GetPoint1DisplayPosition(double pos[3]); 00071 virtual void GetCenterDisplayPosition(double pos[3]); 00072 virtual void GetPoint2DisplayPosition(double pos[3]); 00074 00076 00079 vtkGetObjectMacro(Ray1,vtkLeaderActor2D); 00080 vtkGetObjectMacro(Ray2,vtkLeaderActor2D); 00081 vtkGetObjectMacro(Arc,vtkLeaderActor2D); 00083 00085 void BuildRepresentation(); 00086 00088 00089 virtual void ReleaseGraphicsResources(vtkWindow *w); 00090 virtual int RenderOverlay(vtkViewport *viewport); 00092 00093 protected: 00094 vtkAngleRepresentation2D(); 00095 ~vtkAngleRepresentation2D(); 00096 00097 // The pieces that make up the angle representations 00098 vtkLeaderActor2D *Ray1; 00099 vtkLeaderActor2D *Ray2; 00100 vtkLeaderActor2D *Arc; 00101 00102 private: 00103 vtkAngleRepresentation2D(const vtkAngleRepresentation2D&); //Not implemented 00104 void operator=(const vtkAngleRepresentation2D&); //Not implemented 00105 }; 00106 00107 #endif