VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkPolyDataPointPlacer.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 =========================================================================*/ 00033 #ifndef __vtkPolyDataPointPlacer_h 00034 #define __vtkPolyDataPointPlacer_h 00035 00036 #include "vtkPointPlacer.h" 00037 00038 class vtkRenderer; 00039 class vtkPropCollection; 00040 class vtkProp; 00041 class vtkPropPicker; 00042 00043 class VTK_WIDGETS_EXPORT vtkPolyDataPointPlacer : public vtkPointPlacer 00044 { 00045 public: 00047 static vtkPolyDataPointPlacer *New(); 00048 00050 00051 vtkTypeMacro(vtkPolyDataPointPlacer,vtkPointPlacer); 00052 void PrintSelf(ostream& os, vtkIndent indent); 00054 00055 // Descuription: 00056 // Add an actor (that represents a terrain in a rendererd scene) to the 00057 // list. Only props in this list are considered by the PointPlacer 00058 virtual void AddProp( vtkProp * ); 00059 virtual void RemoveViewProp(vtkProp *prop); 00060 virtual void RemoveAllProps(); 00061 int HasProp( vtkProp * ); 00062 int GetNumberOfProps(); 00063 00065 00070 virtual int ComputeWorldPosition( vtkRenderer *ren, 00071 double displayPos[2], 00072 double worldPos[3], 00073 double worldOrient[9] ); 00075 00077 00080 virtual int ComputeWorldPosition( vtkRenderer *ren, 00081 double displayPos[2], 00082 double refWorldPos[3], 00083 double worldPos[3], 00084 double worldOrient[9] ); 00086 00089 virtual int ValidateWorldPosition( double worldPos[3] ); 00090 00092 virtual int ValidateDisplayPosition( vtkRenderer *, double displayPos[2] ); 00093 00095 00097 virtual int ValidateWorldPosition( double worldPos[3], 00098 double worldOrient[9] ); 00100 00102 00103 vtkGetObjectMacro( PropPicker, vtkPropPicker ); 00105 00106 protected: 00107 vtkPolyDataPointPlacer(); 00108 ~vtkPolyDataPointPlacer(); 00109 00110 // The props that represents the terrain data (one or more) in a rendered 00111 // scene 00112 vtkPropCollection *SurfaceProps; 00113 vtkPropPicker *PropPicker; 00114 00115 private: 00116 vtkPolyDataPointPlacer(const vtkPolyDataPointPlacer&); //Not implemented 00117 void operator=(const vtkPolyDataPointPlacer&); //Not implemented 00118 }; 00119 00120 #endif 00121