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   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkSelectPolyData.h,v $
    00005   Language:  C++
    00006
    00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
    00008   All rights reserved.
    00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
    00010
    00011      This software is distributed WITHOUT ANY WARRANTY; without even
    00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
    00013      PURPOSE.  See the above copyright notice for more information.
    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   // Overload GetMTime() because we depend on Loop
    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&);  // Not implemented.
    00203   void operator=(const vtkSelectPolyData&);  // Not implemented.
    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