00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00059 #ifndef __vtkAssignAttribute_h
00060 #define __vtkAssignAttribute_h
00061
00062 #include "vtkPassInputTypeAlgorithm.h"
00063
00064 #include "vtkDataSetAttributes.h"
00065
00066 class vtkFieldData;
00067
00068 class VTK_GRAPHICS_EXPORT vtkAssignAttribute : public vtkPassInputTypeAlgorithm
00069 {
00070 public:
00071 vtkTypeRevisionMacro(vtkAssignAttribute,vtkPassInputTypeAlgorithm);
00072 void PrintSelf(ostream& os, vtkIndent indent);
00073
00075 static vtkAssignAttribute *New();
00076
00078 void Assign(int inputAttributeType, int attributeType, int attributeLoc);
00079
00081 void Assign(const char* fieldName, int attributeType, int attributeLoc);
00082
00084
00086 void Assign(const char* name, const char* attributeType,
00087 const char* attributeLoc);
00089
00090
00091
00092
00093 enum AttributeLocation
00094 {
00095 POINT_DATA=0,
00096 CELL_DATA=1,
00097 VERTEX_DATA=2,
00098 EDGE_DATA=3,
00099 NUM_ATTRIBUTE_LOCS
00100 };
00101
00102
00103 protected:
00104
00105
00106 enum FieldType
00107 {
00108 NAME,
00109 ATTRIBUTE
00110 };
00111
00112
00113 vtkAssignAttribute();
00114 virtual ~vtkAssignAttribute();
00115
00116 int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00117 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00118 int FillInputPortInformation(int, vtkInformation *);
00119
00120 char* FieldName;
00121 int FieldTypeAssignment;
00122 int AttributeType;
00123 int InputAttributeType;
00124 int AttributeLocationAssignment;
00125
00126 static char AttributeLocationNames[vtkAssignAttribute::NUM_ATTRIBUTE_LOCS][12];
00127 static char AttributeNames[vtkDataSetAttributes::NUM_ATTRIBUTES][20];
00128 private:
00129 vtkAssignAttribute(const vtkAssignAttribute&);
00130 void operator=(const vtkAssignAttribute&);
00131 };
00132
00133 #endif