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