00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00026 #ifndef __vtkSMBoundsDomain_h
00027 #define __vtkSMBoundsDomain_h
00028
00029 #include "vtkSMDoubleRangeDomain.h"
00030
00031 class vtkPVDataInformation;
00032 class vtkSMProxyProperty;
00033
00034 class VTK_EXPORT vtkSMBoundsDomain : public vtkSMDoubleRangeDomain
00035 {
00036 public:
00037 static vtkSMBoundsDomain* New();
00038 vtkTypeRevisionMacro(vtkSMBoundsDomain, vtkSMDoubleRangeDomain);
00039 void PrintSelf(ostream& os, vtkIndent indent);
00040
00043 virtual void Update(vtkSMProperty*);
00044
00046 vtkSetClampMacro(Mode, int, 0, 3);
00047 vtkGetMacro(Mode, int);
00049
00050 void SetInputInformation(vtkPVDataInformation* input);
00051
00052
00054
00055 enum Modes
00056 {
00057 NORMAL,
00058 MAGNITUDE,
00059 ORIENTED_MAGNITUDE,
00060 SCALED_EXTENT
00061 };
00063
00064
00065 vtkSetMacro(ScaleFactor, double);
00066 vtkGetMacro(ScaleFactor, double);
00067
00068 protected:
00069 vtkSMBoundsDomain();
00070 ~vtkSMBoundsDomain();
00071
00072 void Update(vtkSMProxyProperty *pp);
00073 void UpdateOriented();
00074
00077 virtual int ReadXMLAttributes(vtkSMProperty* prop, vtkPVXMLElement* element);
00078
00079 int Mode;
00080
00081 vtkPVDataInformation* InputInformation;
00082
00083 double ScaleFactor;
00084
00085 private:
00086 vtkSMBoundsDomain(const vtkSMBoundsDomain&);
00087 void operator=(const vtkSMBoundsDomain&);
00088 };
00089
00090 #endif