00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkDistanceRepresentation2D.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 =========================================================================*/ 00030 #ifndef __vtkDistanceRepresentation2D_h 00031 #define __vtkDistanceRepresentation2D_h 00032 00033 #include "vtkDistanceRepresentation.h" 00034 00035 class vtkAxisActor2D; 00036 class vtkProperty2D; 00037 00038 00039 class VTK_WIDGETS_EXPORT vtkDistanceRepresentation2D : public vtkDistanceRepresentation 00040 { 00041 public: 00043 static vtkDistanceRepresentation2D *New(); 00044 00046 00047 vtkTypeRevisionMacro(vtkDistanceRepresentation2D,vtkDistanceRepresentation); 00048 void PrintSelf(ostream& os, vtkIndent indent); 00050 00052 00053 virtual double GetDistance() 00054 {return this->Distance;} 00056 00058 00061 double* GetPoint1WorldPosition(); 00062 double* GetPoint2WorldPosition(); 00063 void GetPoint1WorldPosition(double pos[3]); 00064 void GetPoint2WorldPosition(double pos[3]); 00065 void SetPoint1WorldPosition(double pos[3]); 00066 void SetPoint2WorldPosition(double pos[3]); 00068 00069 void SetPoint1DisplayPosition(double pos[3]); 00070 void SetPoint2DisplayPosition(double pos[3]); 00071 void GetPoint1DisplayPosition(double pos[3]); 00072 void GetPoint2DisplayPosition(double pos[3]); 00073 00076 vtkAxisActor2D *GetAxis(); 00077 00079 virtual void BuildRepresentation(); 00080 00082 00083 virtual void ReleaseGraphicsResources(vtkWindow *w); 00084 virtual int RenderOverlay(vtkViewport *viewport); 00085 virtual int RenderOpaqueGeometry(vtkViewport *viewport); 00087 00088 protected: 00089 vtkDistanceRepresentation2D(); 00090 ~vtkDistanceRepresentation2D(); 00091 00092 // Add a line to the mix 00093 vtkAxisActor2D *AxisActor; 00094 vtkProperty2D *AxisProperty; 00095 00096 // The distance between the two points 00097 double Distance; 00098 00099 private: 00100 vtkDistanceRepresentation2D(const vtkDistanceRepresentation2D&); //Not implemented 00101 void operator=(const vtkDistanceRepresentation2D&); //Not implemented 00102 }; 00103 00104 #endif