00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00048 #ifndef __vtkSelectionNode_h
00049 #define __vtkSelectionNode_h
00050
00051 #include "vtkObject.h"
00052
00053
00054 class vtkAbstractArray;
00055 class vtkDataSetAttributes;
00056 class vtkInformation;
00057 class vtkInformationDoubleKey;
00058 class vtkInformationIntegerKey;
00059 class vtkInformationObjectBaseKey;
00060 class vtkProp;
00061 class vtkTable;
00062
00063
00064 class VTK_FILTERING_EXPORT vtkSelectionNode : public vtkObject
00065 {
00066 public:
00067 vtkTypeRevisionMacro(vtkSelectionNode,vtkObject);
00068 void PrintSelf(ostream& os, vtkIndent indent);
00069 static vtkSelectionNode* New();
00070
00072 virtual void Initialize();
00073
00075
00076 virtual void SetSelectionList(vtkAbstractArray*);
00077 virtual vtkAbstractArray* GetSelectionList();
00079
00081
00082 virtual void SetSelectionData(vtkDataSetAttributes* data);
00083 vtkGetObjectMacro(SelectionData, vtkDataSetAttributes);
00085
00087
00088 vtkGetObjectMacro(Properties, vtkInformation);
00090
00092 virtual void DeepCopy(vtkSelectionNode* src);
00093
00097 virtual void ShallowCopy(vtkSelectionNode* src);
00098
00100 unsigned long GetMTime();
00101
00102
00116 static vtkInformationIntegerKey* CONTENT_TYPE();
00117
00118 enum SelectionContent
00119 {
00120 SELECTIONS,
00121 GLOBALIDS,
00122 PEDIGREEIDS,
00123 VALUES,
00124 INDICES,
00125 FRUSTUM,
00126 LOCATIONS,
00127 THRESHOLDS,
00128 BLOCKS
00129 };
00130
00131
00133
00135 virtual void SetContentType(int type);
00136 virtual int GetContentType();
00138
00143 static vtkInformationIntegerKey* FIELD_TYPE();
00144
00145 enum SelectionField
00146 {
00147 CELL,
00148 POINT,
00149 FIELD,
00150 VERTEX,
00151 EDGE,
00152 ROW
00153 };
00154
00155
00157
00159 virtual void SetFieldType(int type);
00160 virtual int GetFieldType();
00162
00164
00166 virtual void SetSelectedProp(vtkProp* prop);
00167 virtual vtkProp* GetSelectedProp();
00169
00172 static vtkInformationDoubleKey* EPSILON();
00173
00177 static vtkInformationIntegerKey* CONTAINING_CELLS();
00178
00183 static vtkInformationIntegerKey* COMPONENT_NUMBER();
00184
00186 static vtkInformationIntegerKey* INVERSE();
00187
00190 static vtkInformationIntegerKey* PIXEL_COUNT();
00191
00193 static vtkInformationObjectBaseKey* SOURCE();
00194
00197 static vtkInformationIntegerKey* SOURCE_ID();
00198
00200 static vtkInformationObjectBaseKey* PROP();
00201
00204 static vtkInformationIntegerKey* PROP_ID();
00205
00207 static vtkInformationIntegerKey* PROCESS_ID();
00208
00210 static vtkInformationIntegerKey* COMPOSITE_INDEX();
00211
00213
00214 static vtkInformationIntegerKey* HIERARCHICAL_LEVEL();
00215 static vtkInformationIntegerKey* HIERARCHICAL_INDEX();
00217
00221 static vtkInformationIntegerKey* INDEXED_VERTICES();
00222
00225 void UnionSelectionList(vtkSelectionNode* other);
00226
00229 bool EqualProperties(vtkSelectionNode* other, bool fullcompare=true);
00230
00231
00232 protected:
00233 vtkSelectionNode();
00234 ~vtkSelectionNode();
00235
00236 vtkInformation* Properties;
00237 vtkDataSetAttributes* SelectionData;
00238
00239 private:
00240 vtkSelectionNode(const vtkSelectionNode&);
00241 void operator=(const vtkSelectionNode&);
00242
00243 };
00244
00245 #endif