VTK
|
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