VTK
|
00001 /*========================================================================= 00002 00003 Program: ParaView 00004 Module: $RCSfile: vtkSelectionNode.h,v $ 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 =========================================================================*/ 00048 #ifndef __vtkSelectionNode_h 00049 #define __vtkSelectionNode_h 00050 00051 #include "vtkObject.h" 00052 00053 //BTX 00054 class vtkAbstractArray; 00055 class vtkDataSetAttributes; 00056 class vtkInformation; 00057 class vtkInformationDoubleKey; 00058 class vtkInformationIntegerKey; 00059 class vtkInformationObjectBaseKey; 00060 class vtkTable; 00061 //ETX 00062 00063 class VTK_FILTERING_EXPORT vtkSelectionNode : public vtkObject 00064 { 00065 public: 00066 vtkTypeRevisionMacro(vtkSelectionNode,vtkObject); 00067 void PrintSelf(ostream& os, vtkIndent indent); 00068 static vtkSelectionNode* New(); 00069 00071 virtual void Initialize(); 00072 00074 00075 virtual void SetSelectionList(vtkAbstractArray*); 00076 virtual vtkAbstractArray* GetSelectionList(); 00078 00080 00081 virtual void SetSelectionData(vtkDataSetAttributes* data); 00082 vtkGetObjectMacro(SelectionData, vtkDataSetAttributes); 00084 00086 00087 vtkGetObjectMacro(Properties, vtkInformation); 00089 00091 virtual void DeepCopy(vtkSelectionNode* src); 00092 00096 virtual void ShallowCopy(vtkSelectionNode* src); 00097 00099 unsigned long GetMTime(); 00100 00101 // vtkSelectionNode specific keys follow: 00115 static vtkInformationIntegerKey* CONTENT_TYPE(); 00116 //BTX 00117 enum SelectionContent 00118 { 00119 SELECTIONS, // Deprecated. 00120 GLOBALIDS, 00121 PEDIGREEIDS, 00122 VALUES, 00123 INDICES, 00124 FRUSTUM, 00125 LOCATIONS, 00126 THRESHOLDS, 00127 BLOCKS // used to select blocks within a composite dataset. 00128 }; 00129 //ETX 00130 00132 00134 virtual void SetContentType(int type); 00135 virtual int GetContentType(); 00137 00142 static vtkInformationIntegerKey* FIELD_TYPE(); 00143 //BTX 00144 enum SelectionField 00145 { 00146 CELL, 00147 POINT, 00148 FIELD, 00149 VERTEX, 00150 EDGE, 00151 ROW 00152 }; 00153 //ETX 00154 00156 00158 virtual void SetFieldType(int type); 00159 virtual int GetFieldType(); 00161 00164 static vtkInformationDoubleKey* EPSILON(); 00165 00169 static vtkInformationIntegerKey* CONTAINING_CELLS(); 00170 00172 static vtkInformationIntegerKey* INVERSE(); 00173 00176 static vtkInformationIntegerKey* PIXEL_COUNT(); 00177 00179 static vtkInformationObjectBaseKey* SOURCE(); 00180 00183 static vtkInformationIntegerKey* SOURCE_ID(); 00184 00186 static vtkInformationObjectBaseKey* PROP(); 00187 00190 static vtkInformationIntegerKey* PROP_ID(); 00191 00193 static vtkInformationIntegerKey* PROCESS_ID(); 00194 00196 static vtkInformationIntegerKey* COMPOSITE_INDEX(); 00197 00199 00200 static vtkInformationIntegerKey* HIERARCHICAL_LEVEL(); 00201 static vtkInformationIntegerKey* HIERARCHICAL_INDEX(); 00203 00207 static vtkInformationIntegerKey* INDEXED_VERTICES(); 00208 00211 void UnionSelectionList(vtkSelectionNode* other); 00212 00215 bool EqualProperties(vtkSelectionNode* other, bool fullcompare=true); 00216 00217 //BTX 00218 protected: 00219 vtkSelectionNode(); 00220 ~vtkSelectionNode(); 00221 00222 vtkInformation* Properties; 00223 vtkDataSetAttributes* SelectionData; 00224 00225 private: 00226 vtkSelectionNode(const vtkSelectionNode&); // Not implemented. 00227 void operator=(const vtkSelectionNode&); // Not implemented. 00228 //ETX 00229 }; 00230 00231 #endif