VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageActorPointPlacer.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 =========================================================================*/ 00028 #ifndef __vtkImageActorPointPlacer_h 00029 #define __vtkImageActorPointPlacer_h 00030 00031 #include "vtkPointPlacer.h" 00032 00033 class vtkBoundedPlanePointPlacer; 00034 class vtkImageActor; 00035 class vtkRenderer; 00036 00037 class VTK_WIDGETS_EXPORT vtkImageActorPointPlacer : public vtkPointPlacer 00038 { 00039 public: 00041 static vtkImageActorPointPlacer *New(); 00042 00044 00045 vtkTypeRevisionMacro(vtkImageActorPointPlacer,vtkPointPlacer); 00046 void PrintSelf(ostream& os, vtkIndent indent); 00048 00050 00056 int ComputeWorldPosition( vtkRenderer *ren, 00057 double displayPos[2], 00058 double worldPos[3], 00059 double worldOrient[9] ); 00061 00063 00065 int ComputeWorldPosition( vtkRenderer *ren, 00066 double displayPos[2], 00067 double refWorldPos[2], 00068 double worldPos[3], 00069 double worldOrient[9] ); 00071 00075 int ValidateWorldPosition( double worldPos[3] ); 00076 00078 00080 int ValidateWorldPosition( double worldPos[3], 00081 double worldOrient[9]); 00083 00084 00086 00089 int UpdateWorldPosition( vtkRenderer *ren, 00090 double worldPos[3], 00091 double worldOrient[9]); 00093 00099 int UpdateInternalState(); 00100 00102 00106 void SetImageActor( vtkImageActor * ); 00107 vtkGetObjectMacro( ImageActor, vtkImageActor ); 00109 00111 00116 vtkSetVector6Macro( Bounds, double ); 00117 vtkGetVector6Macro( Bounds, double ); 00119 00120 protected: 00121 vtkImageActorPointPlacer(); 00122 ~vtkImageActorPointPlacer(); 00123 00124 00125 // The reference image actor. Must be configured before this placer 00126 // is used. 00127 vtkImageActor *ImageActor; 00128 00129 // The internal placer. 00130 vtkBoundedPlanePointPlacer *Placer; 00131 00132 // Used to keep track of whether the bounds of the 00133 // input image have changed 00134 double SavedBounds[6]; 00135 00136 // See the SetBounds method 00137 double Bounds[6]; 00138 00139 private: 00140 vtkImageActorPointPlacer(const vtkImageActorPointPlacer&); //Not implemented 00141 void operator=(const vtkImageActorPointPlacer&); //Not implemented 00142 }; 00143 00144 #endif