00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00053 #ifndef __vtkKWParameterValueFunctionInterface_h
00054 #define __vtkKWParameterValueFunctionInterface_h
00055
00056 #include "vtkKWWidgetWithLabel.h"
00057
00058 class KWWIDGETS_EXPORT vtkKWParameterValueFunctionInterface : public vtkKWWidgetWithLabel
00059 {
00060 public:
00061 vtkTypeRevisionMacro(vtkKWParameterValueFunctionInterface,vtkKWWidgetWithLabel);
00062 void PrintSelf(ostream& os, vtkIndent indent);
00063
00065 virtual void Create(vtkKWApplication *app);
00066
00070 virtual int HasFunction() = 0;
00071
00073 virtual int GetFunctionSize() = 0;
00074
00076
00081 enum
00082 {
00083 MaxFunctionPointDimensionality = 20
00084 };
00085
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00101 virtual unsigned long GetFunctionMTime() = 0;
00102
00105 virtual int GetFunctionPointParameter(int id, double *parameter) = 0;
00106
00109 virtual int GetFunctionPointDimensionality() = 0;
00110
00111 protected:
00120 virtual int InterpolateFunctionPointValues(double parameter,double *values)=0;
00124 virtual int GetFunctionPointValues(int id, double *values) = 0;
00125
00129 virtual int SetFunctionPointValues(int id, const double *values) = 0;
00130
00131
00132
00133
00134
00135
00136 virtual int AddFunctionPoint(double parameter,const double *values,int *id)=0;
00147 virtual int SetFunctionPoint(int id, double parameter, const double *values)=0;
00148
00153 virtual int RemoveFunctionPoint(int id) = 0;
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169 public:
00175 virtual int GetFunctionPointId(double parameter, int *id);
00176
00180 virtual int FunctionPointCanBeAdded() = 0;
00181
00184 virtual int FunctionPointCanBeRemoved(int id) = 0;
00185
00188 virtual int FunctionPointParameterIsLocked(int id) = 0;
00189
00197 virtual int FunctionPointValueIsLocked(int id) = 0;
00198
00204 virtual int FunctionPointCanBeMovedToParameter(int id, double parameter) = 0;
00205
00206 protected:
00216 virtual int FunctionLineIsSampledBetweenPoints(int id1, int id2);
00217
00218 vtkKWParameterValueFunctionInterface() {};
00219 ~vtkKWParameterValueFunctionInterface() {};
00220
00221 private:
00222 vtkKWParameterValueFunctionInterface(const vtkKWParameterValueFunctionInterface&);
00223 void operator=(const vtkKWParameterValueFunctionInterface&);
00224 };
00225
00226 #endif