VTK
dox/Widgets/vtkPolyDataPointPlacer.h
Go to the documentation of this file.
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