VTK
dox/Interaction/Widgets/vtkPointPlacer.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkPointPlacer.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 =========================================================================*/
00040 #ifndef __vtkPointPlacer_h
00041 #define __vtkPointPlacer_h
00042 
00043 #include "vtkInteractionWidgetsModule.h" // For export macro
00044 #include "vtkObject.h"
00045 
00046 class vtkRenderer;
00047 
00048 class VTKINTERACTIONWIDGETS_EXPORT vtkPointPlacer : public vtkObject
00049 {
00050 public:
00052   static vtkPointPlacer *New();
00053 
00055 
00056   vtkTypeMacro(vtkPointPlacer,vtkObject);
00057   void PrintSelf(ostream& os, vtkIndent indent);
00059 
00061 
00066   virtual int ComputeWorldPosition( vtkRenderer *ren,
00067                                     double displayPos[2],
00068                                     double worldPos[3],
00069                                     double worldOrient[9] );
00071 
00073 
00077   virtual int ComputeWorldPosition( vtkRenderer *ren,
00078                                     double displayPos[2],
00079                                     double refWorldPos[3],
00080                                     double worldPos[3],
00081                                     double worldOrient[9] );
00083 
00086   virtual int ValidateWorldPosition( double worldPos[3] );
00087 
00089   virtual int ValidateDisplayPosition( vtkRenderer *, double displayPos[2] );
00090 
00092 
00094   virtual int ValidateWorldPosition( double worldPos[3],
00095                                      double worldOrient[9] );
00097 
00099 
00106   virtual int UpdateWorldPosition( vtkRenderer *ren,
00107                                    double worldPos[3],
00108                                    double worldOrient[9] );
00110 
00112 
00117   virtual int UpdateNodeWorldPosition(
00118       double worldPos[3], vtkIdType nodePointId);
00120 
00123   virtual int UpdateInternalState() {return 0;}
00124 
00126 
00128   vtkSetClampMacro(PixelTolerance,int,1,100);
00129   vtkGetMacro(PixelTolerance,int);
00131 
00133 
00135   vtkSetClampMacro(WorldTolerance, double, 0.0, VTK_DOUBLE_MAX);
00136   vtkGetMacro(WorldTolerance, double);
00138 
00139 protected:
00140   vtkPointPlacer();
00141   ~vtkPointPlacer();
00142 
00143   int          PixelTolerance;
00144   double       WorldTolerance;
00145 
00146 private:
00147   vtkPointPlacer(const vtkPointPlacer&);  //Not implemented
00148   void operator=(const vtkPointPlacer&);  //Not implemented
00149 };
00150 
00151 #endif
00152 
00153 
00154 
00155 
00156