00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00034 #ifndef __vtkSMInputArrayDomain_h
00035 #define __vtkSMInputArrayDomain_h
00036
00037 #include "vtkSMDomain.h"
00038
00039 class vtkPVArrayInformation;
00040 class vtkPVDataSetAttributesInformation;
00041 class vtkSMSourceProxy;
00042
00043 class VTK_EXPORT vtkSMInputArrayDomain : public vtkSMDomain
00044 {
00045 public:
00046 static vtkSMInputArrayDomain* New();
00047 vtkTypeRevisionMacro(vtkSMInputArrayDomain, vtkSMDomain);
00048 void PrintSelf(ostream& os, vtkIndent indent);
00049
00054 virtual int IsInDomain(vtkSMProperty* property);
00055
00058 int IsInDomain(vtkSMSourceProxy* proxy);
00059
00061
00064 int IsFieldValid(vtkSMSourceProxy* proxy, vtkPVArrayInformation* arrayInfo);
00065 int IsFieldValid(
00066 vtkSMSourceProxy* proxy, vtkPVArrayInformation* arrayInfo, int bypass);
00068
00070
00072 vtkSetMacro(AttributeType, unsigned char);
00073 vtkGetMacro(AttributeType, unsigned char);
00074 const char* GetAttributeTypeAsString();
00075 virtual void SetAttributeType(const char* type);
00077
00079
00080 vtkSetMacro(NumberOfComponents, int);
00081 vtkGetMacro(NumberOfComponents, int);
00083
00084
00085 enum AttributeTypes
00086 {
00087 POINT = 0,
00088 CELL = 1,
00089 ANY = 2,
00090 LAST_ATTRIBUTE_TYPE
00091 };
00092
00093
00094 protected:
00095 vtkSMInputArrayDomain();
00096 ~vtkSMInputArrayDomain();
00097
00100 virtual int ReadXMLAttributes(vtkSMProperty* prop, vtkPVXMLElement* element);
00101
00102 virtual void SaveState(const char* name, ostream* file, vtkIndent indent);
00103
00104 int AttributeInfoContainsArray(vtkSMSourceProxy* proxy,
00105 vtkPVDataSetAttributesInformation* attrInfo);
00106 int CheckForArray(vtkPVArrayInformation* arrayInfo,
00107 vtkPVDataSetAttributesInformation* attrInfo);
00108
00109 unsigned char AttributeType;
00110 int NumberOfComponents;
00111
00112 private:
00113 vtkSMInputArrayDomain(const vtkSMInputArrayDomain&);
00114 void operator=(const vtkSMInputArrayDomain&);
00115 };
00116
00117 #endif