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