00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00031 #ifndef __vtkSMIntRangeDomain_h
00032 #define __vtkSMIntRangeDomain_h
00033
00034 #include "vtkSMDomain.h"
00035
00036
00037 struct vtkSMIntRangeDomainInternals;
00038
00039
00040 class VTK_EXPORT vtkSMIntRangeDomain : public vtkSMDomain
00041 {
00042 public:
00043 static vtkSMIntRangeDomain* New();
00044 vtkTypeRevisionMacro(vtkSMIntRangeDomain, vtkSMDomain);
00045 void PrintSelf(ostream& os, vtkIndent indent);
00046
00051 virtual int IsInDomain(vtkSMProperty* property);
00052
00056 int IsInDomain(unsigned int idx, int val);
00057
00061 int GetMinimum(unsigned int idx, int& exists);
00062
00066 int GetMaximum(unsigned int idx, int& exists);
00067
00071 int GetResolution(unsigned int idx, int& exists);
00072
00074 void AddMinimum(unsigned int idx, int value);
00075
00078 void RemoveMinimum(unsigned int idx);
00079
00081 void RemoveAllMinima();
00082
00084 void AddMaximum(unsigned int idx, int value);
00085
00088 void RemoveMaximum(unsigned int idx);
00089
00091 void RemoveAllMaxima();
00092
00094 void AddResolution(unsigned int idx, int value);
00095
00098 void RemoveResolution(unsigned int idx);
00099
00101 void RemoveAllResolutions();
00102
00106 unsigned int GetNumberOfEntries();
00107
00110 virtual void Update(vtkSMProperty*);
00111
00113
00114 virtual void SetAnimationValue(vtkSMProperty *property, int idx,
00115 double value);
00117
00118 protected:
00119 vtkSMIntRangeDomain();
00120 ~vtkSMIntRangeDomain();
00121
00124 virtual int ReadXMLAttributes(vtkSMProperty* prop, vtkPVXMLElement* element);
00125
00126 virtual void SaveState(const char* name, ostream* file, vtkIndent indent);
00127
00129 void SetEntry(unsigned int idx, int minOrMax, int set, int value);
00130
00131
00132
00133 void SetNumberOfEntries(unsigned int size);
00134
00135 vtkSMIntRangeDomainInternals* IRInternals;
00136
00137
00138 enum
00139 {
00140 MIN = 0,
00141 MAX = 1,
00142 RESOLUTION = 2
00143 };
00144
00145
00146 private:
00147 vtkSMIntRangeDomain(const vtkSMIntRangeDomain&);
00148 void operator=(const vtkSMIntRangeDomain&);
00149 };
00150
00151 #endif