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