Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
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
00095 #ifndef __vtkSelectPolyData_h
00096 #define __vtkSelectPolyData_h
00097
00098 #include "vtkPolyDataToPolyDataFilter.h"
00099
00100 #define VTK_INSIDE_SMALLEST_REGION 0
00101 #define VTK_INSIDE_LARGEST_REGION 1
00102 #define VTK_INSIDE_CLOSEST_POINT_REGION 2
00103
00104 class vtkCharArray;
00105 class vtkPoints;
00106 class vtkIdList;
00107
00108 class VTK_GRAPHICS_EXPORT vtkSelectPolyData : public vtkPolyDataToPolyDataFilter
00109 {
00110 public:
00114 static vtkSelectPolyData *New();
00115
00116 vtkTypeRevisionMacro(vtkSelectPolyData,vtkPolyDataToPolyDataFilter);
00117 void PrintSelf(ostream& os, vtkIndent indent);
00118
00120
00125 vtkSetMacro(GenerateSelectionScalars,int);
00126 vtkGetMacro(GenerateSelectionScalars,int);
00127 vtkBooleanMacro(GenerateSelectionScalars,int);
00129
00131
00133 vtkSetMacro(InsideOut,int);
00134 vtkGetMacro(InsideOut,int);
00135 vtkBooleanMacro(InsideOut,int);
00137
00139
00141 virtual void SetLoop(vtkPoints*);
00142 vtkGetObjectMacro(Loop,vtkPoints);
00144
00146
00147 vtkSetClampMacro(SelectionMode,int,
00148 VTK_INSIDE_SMALLEST_REGION,VTK_INSIDE_CLOSEST_POINT_REGION);
00149 vtkGetMacro(SelectionMode,int);
00150 void SetSelectionModeToSmallestRegion()
00151 {this->SetSelectionMode(VTK_INSIDE_SMALLEST_REGION);};
00152 void SetSelectionModeToLargestRegion()
00153 {this->SetSelectionMode(VTK_INSIDE_LARGEST_REGION);};
00154 void SetSelectionModeToClosestPointRegion()
00155 {this->SetSelectionMode(VTK_INSIDE_CLOSEST_POINT_REGION);};
00156 const char *GetSelectionModeAsString();
00158
00160
00162 vtkSetMacro(GenerateUnselectedOutput,int);
00163 vtkGetMacro(GenerateUnselectedOutput,int);
00164 vtkBooleanMacro(GenerateUnselectedOutput,int);
00166
00169 vtkPolyData *GetUnselectedOutput() {return this->UnselectedOutput;};
00170
00172 vtkPolyData *GetSelectionEdges() {return this->SelectionEdges;};
00173
00174
00175 unsigned long int GetMTime();
00176
00178 virtual void UnRegister(vtkObjectBase *o);
00179
00181 virtual int InRegisterLoop(vtkObject *);
00182
00183 protected:
00184 vtkSelectPolyData();
00185 ~vtkSelectPolyData();
00186
00187 void Execute();
00188
00189 int GenerateSelectionScalars;
00190 int InsideOut;
00191 vtkPoints *Loop;
00192 int SelectionMode;
00193 float ClosestPoint[3];
00194 int GenerateUnselectedOutput;
00195 vtkPolyData *UnselectedOutput;
00196 vtkPolyData *SelectionEdges;
00197
00198 private:
00199 vtkPolyData *Mesh;
00200 void GetPointNeighbors (vtkIdType ptId, vtkIdList *nei);
00201 private:
00202 vtkSelectPolyData(const vtkSelectPolyData&);
00203 void operator=(const vtkSelectPolyData&);
00204 };
00205
00207 inline const char *vtkSelectPolyData::GetSelectionModeAsString(void)
00208 {
00209 if ( this->SelectionMode == VTK_INSIDE_SMALLEST_REGION )
00210 {
00211 return "InsideSmallestRegion";
00212 }
00213 else if ( this->SelectionMode == VTK_INSIDE_LARGEST_REGION )
00214 {
00215 return "InsideLargestRegion";
00216 }
00217 else
00218 {
00219 return "InsideClosestPointRegion";
00220 }
00221 }
00222
00223 #endif
00224
00225