Graphics/vtkSelectPolyData.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00080 #ifndef __vtkSelectPolyData_h
00081 #define __vtkSelectPolyData_h
00082
00083 #include "vtkPolyDataToPolyDataFilter.h"
00084
00085 #define VTK_INSIDE_SMALLEST_REGION 0
00086 #define VTK_INSIDE_LARGEST_REGION 1
00087 #define VTK_INSIDE_CLOSEST_POINT_REGION 2
00088
00089 class vtkCharArray;
00090 class vtkPoints;
00091 class vtkIdList;
00092
00093 class VTK_GRAPHICS_EXPORT vtkSelectPolyData : public vtkPolyDataToPolyDataFilter
00094 {
00095 public:
00099 static vtkSelectPolyData *New();
00100
00101 vtkTypeRevisionMacro(vtkSelectPolyData,vtkPolyDataToPolyDataFilter);
00102 void PrintSelf(ostream& os, vtkIndent indent);
00103
00105
00110 vtkSetMacro(GenerateSelectionScalars,int);
00111 vtkGetMacro(GenerateSelectionScalars,int);
00112 vtkBooleanMacro(GenerateSelectionScalars,int);
00114
00116
00118 vtkSetMacro(InsideOut,int);
00119 vtkGetMacro(InsideOut,int);
00120 vtkBooleanMacro(InsideOut,int);
00122
00124
00126 virtual void SetLoop(vtkPoints*);
00127 vtkGetObjectMacro(Loop,vtkPoints);
00129
00131
00132 vtkSetClampMacro(SelectionMode,int,
00133 VTK_INSIDE_SMALLEST_REGION,VTK_INSIDE_CLOSEST_POINT_REGION);
00134 vtkGetMacro(SelectionMode,int);
00135 void SetSelectionModeToSmallestRegion()
00136 {this->SetSelectionMode(VTK_INSIDE_SMALLEST_REGION);};
00137 void SetSelectionModeToLargestRegion()
00138 {this->SetSelectionMode(VTK_INSIDE_LARGEST_REGION);};
00139 void SetSelectionModeToClosestPointRegion()
00140 {this->SetSelectionMode(VTK_INSIDE_CLOSEST_POINT_REGION);};
00141 const char *GetSelectionModeAsString();
00143
00145
00147 vtkSetMacro(GenerateUnselectedOutput,int);
00148 vtkGetMacro(GenerateUnselectedOutput,int);
00149 vtkBooleanMacro(GenerateUnselectedOutput,int);
00151
00154 vtkPolyData *GetUnselectedOutput() {return this->UnselectedOutput;};
00155
00157 vtkPolyData *GetSelectionEdges() {return this->SelectionEdges;};
00158
00159
00160 unsigned long int GetMTime();
00161
00163 virtual void UnRegister(vtkObjectBase *o);
00164
00166 virtual int InRegisterLoop(vtkObject *);
00167
00168 protected:
00169 vtkSelectPolyData();
00170 ~vtkSelectPolyData();
00171
00172 void Execute();
00173
00174 int GenerateSelectionScalars;
00175 int InsideOut;
00176 vtkPoints *Loop;
00177 int SelectionMode;
00178 double ClosestPoint[3];
00179 int GenerateUnselectedOutput;
00180 vtkPolyData *UnselectedOutput;
00181 vtkPolyData *SelectionEdges;
00182
00183 private:
00184 vtkPolyData *Mesh;
00185 void GetPointNeighbors (vtkIdType ptId, vtkIdList *nei);
00186 private:
00187 vtkSelectPolyData(const vtkSelectPolyData&);
00188 void operator=(const vtkSelectPolyData&);
00189 };
00190
00192 inline const char *vtkSelectPolyData::GetSelectionModeAsString(void)
00193 {
00194 if ( this->SelectionMode == VTK_INSIDE_SMALLEST_REGION )
00195 {
00196 return "InsideSmallestRegion";
00197 }
00198 else if ( this->SelectionMode == VTK_INSIDE_LARGEST_REGION )
00199 {
00200 return "InsideLargestRegion";
00201 }
00202 else
00203 {
00204 return "InsideClosestPointRegion";
00205 }
00206 }
00207
00208 #endif
00209
00210