VTK
dox/Filtering/vtkSelectionNode.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   ParaView
00004   Module:    vtkSelectionNode.h
00005 
00006   Copyright (c) Kitware, Inc.
00007   All rights reserved.
00008   See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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 =========================================================================*/
00051 #ifndef __vtkSelectionNode_h
00052 #define __vtkSelectionNode_h
00053 
00054 #include "vtkObject.h"
00055 
00056 //BTX
00057 class vtkAbstractArray;
00058 class vtkDataSetAttributes;
00059 class vtkInformation;
00060 class vtkInformationDoubleKey;
00061 class vtkInformationIntegerKey;
00062 class vtkInformationObjectBaseKey;
00063 class vtkProp;
00064 class vtkTable;
00065 //ETX
00066 
00067 class VTK_FILTERING_EXPORT vtkSelectionNode : public vtkObject
00068 {
00069 public:
00070   vtkTypeMacro(vtkSelectionNode,vtkObject);
00071   void PrintSelf(ostream& os, vtkIndent indent);
00072   static vtkSelectionNode* New();
00073 
00075   virtual void Initialize();
00076   
00078 
00079   virtual void SetSelectionList(vtkAbstractArray*);
00080   virtual vtkAbstractArray* GetSelectionList();
00082 
00084 
00085   virtual void SetSelectionData(vtkDataSetAttributes* data);
00086   vtkGetObjectMacro(SelectionData, vtkDataSetAttributes);
00088   
00090 
00091   vtkGetObjectMacro(Properties, vtkInformation);
00093 
00095   virtual void DeepCopy(vtkSelectionNode* src);
00096 
00100   virtual void ShallowCopy(vtkSelectionNode* src);
00101 
00103   unsigned long GetMTime();
00104 
00105   // vtkSelectionNode specific keys follow:
00119   static vtkInformationIntegerKey* CONTENT_TYPE();
00120 //BTX
00121   enum SelectionContent
00122   {
00123     SELECTIONS,  // Deprecated.
00124     GLOBALIDS,
00125     PEDIGREEIDS,
00126     VALUES,
00127     INDICES,
00128     FRUSTUM,
00129     LOCATIONS,
00130     THRESHOLDS,
00131     BLOCKS       // used to select blocks within a composite dataset.
00132   };
00133 //ETX
00134   
00136 
00138   virtual void SetContentType(int type);
00139   virtual int GetContentType();
00141 
00146   static vtkInformationIntegerKey* FIELD_TYPE();
00147 //BTX
00148   enum SelectionField
00149   {
00150     CELL,
00151     POINT,
00152     FIELD,
00153     VERTEX,
00154     EDGE,
00155     ROW
00156   };
00157 //ETX
00158   
00160 
00162   virtual void SetFieldType(int type);
00163   virtual int GetFieldType();
00165 
00167 
00169   virtual void SetSelectedProp(vtkProp* prop);
00170   virtual vtkProp* GetSelectedProp();
00172   
00175   static vtkInformationDoubleKey* EPSILON();
00176 
00180   static vtkInformationIntegerKey* CONTAINING_CELLS();
00181 
00186   static vtkInformationIntegerKey* COMPONENT_NUMBER();
00187 
00189   static vtkInformationIntegerKey* INVERSE();
00190 
00193   static vtkInformationIntegerKey* PIXEL_COUNT();
00194 
00196   static vtkInformationObjectBaseKey* SOURCE();
00197 
00200   static vtkInformationIntegerKey* SOURCE_ID();
00201 
00203   static vtkInformationObjectBaseKey* PROP();
00204 
00207   static vtkInformationIntegerKey* PROP_ID();
00208 
00210   static vtkInformationIntegerKey* PROCESS_ID();
00211 
00213   static vtkInformationIntegerKey* COMPOSITE_INDEX();
00214 
00216 
00217   static vtkInformationIntegerKey* HIERARCHICAL_LEVEL();
00218   static vtkInformationIntegerKey* HIERARCHICAL_INDEX();
00220 
00224   static vtkInformationIntegerKey* INDEXED_VERTICES();
00225 
00228   void UnionSelectionList(vtkSelectionNode* other);
00229 
00232   bool EqualProperties(vtkSelectionNode* other, bool fullcompare=true);
00233 
00234 //BTX
00235 protected:
00236   vtkSelectionNode();
00237   ~vtkSelectionNode();
00238 
00239   vtkInformation* Properties;
00240   vtkDataSetAttributes* SelectionData;
00241 
00242 private:
00243   vtkSelectionNode(const vtkSelectionNode&);  // Not implemented.
00244   void operator=(const vtkSelectionNode&);  // Not implemented.
00245 //ETX
00246 };
00247 
00248 #endif