VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkImageActorPointPlacer.h 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 =========================================================================*/ 00028 #ifndef __vtkImageActorPointPlacer_h 00029 #define __vtkImageActorPointPlacer_h 00030 00031 #include "vtkInteractionWidgetsModule.h" // For export macro 00032 #include "vtkPointPlacer.h" 00033 00034 class vtkBoundedPlanePointPlacer; 00035 class vtkImageActor; 00036 class vtkRenderer; 00037 00038 class VTKINTERACTIONWIDGETS_EXPORT vtkImageActorPointPlacer : public vtkPointPlacer 00039 { 00040 public: 00042 static vtkImageActorPointPlacer *New(); 00043 00045 00046 vtkTypeMacro(vtkImageActorPointPlacer,vtkPointPlacer); 00047 void PrintSelf(ostream& os, vtkIndent indent); 00049 00051 00057 int ComputeWorldPosition( vtkRenderer *ren, 00058 double displayPos[2], 00059 double worldPos[3], 00060 double worldOrient[9] ); 00062 00064 00066 int ComputeWorldPosition( vtkRenderer *ren, 00067 double displayPos[2], 00068 double refWorldPos[2], 00069 double worldPos[3], 00070 double worldOrient[9] ); 00072 00076 int ValidateWorldPosition( double worldPos[3] ); 00077 00079 00081 int ValidateWorldPosition( double worldPos[3], 00082 double worldOrient[9]); 00084 00085 00087 00090 int UpdateWorldPosition( vtkRenderer *ren, 00091 double worldPos[3], 00092 double worldOrient[9]); 00094 00100 int UpdateInternalState(); 00101 00103 00107 void SetImageActor( vtkImageActor * ); 00108 vtkGetObjectMacro( ImageActor, vtkImageActor ); 00110 00112 00117 vtkSetVector6Macro( Bounds, double ); 00118 vtkGetVector6Macro( Bounds, double ); 00120 00123 virtual void SetWorldTolerance( double s ); 00124 00125 protected: 00126 vtkImageActorPointPlacer(); 00127 ~vtkImageActorPointPlacer(); 00128 00129 00130 // The reference image actor. Must be configured before this placer 00131 // is used. 00132 vtkImageActor *ImageActor; 00133 00134 // The internal placer. 00135 vtkBoundedPlanePointPlacer *Placer; 00136 00137 // Used to keep track of whether the bounds of the 00138 // input image have changed 00139 double SavedBounds[6]; 00140 00141 // See the SetBounds method 00142 double Bounds[6]; 00143 00144 private: 00145 vtkImageActorPointPlacer(const vtkImageActorPointPlacer&); //Not implemented 00146 void operator=(const vtkImageActorPointPlacer&); //Not implemented 00147 }; 00148 00149 #endif