00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef __vtkKWParameterValueHermiteFunctionEditor_h
00029 #define __vtkKWParameterValueHermiteFunctionEditor_h
00030
00031 #include "vtkKWParameterValueFunctionEditor.h"
00032
00033 class vtkKWScaleWithEntry;
00034
00035 class KWWidgets_EXPORT vtkKWParameterValueHermiteFunctionEditor : public vtkKWParameterValueFunctionEditor
00036 {
00037 public:
00038 vtkTypeRevisionMacro(vtkKWParameterValueHermiteFunctionEditor,vtkKWParameterValueFunctionEditor);
00039 void PrintSelf(ostream& os, vtkIndent indent);
00040
00041
00042
00043
00044
00045
00046 vtkBooleanMacro(MidPointEntryVisibility, int);
00047 virtual void SetMidPointEntryVisibility(int);
00048 vtkGetMacro(MidPointEntryVisibility, int);
00049
00050
00051
00052 virtual vtkKWScaleWithEntry* GetMidPointEntry();
00053
00054
00055
00056
00057 vtkBooleanMacro(DisplayMidPointValueInParameterDomain, int);
00058 virtual void SetDisplayMidPointValueInParameterDomain(int);
00059 vtkGetMacro(DisplayMidPointValueInParameterDomain, int);
00060
00061
00062
00063
00064
00065
00066 vtkBooleanMacro(SharpnessEntryVisibility, int);
00067 virtual void SetSharpnessEntryVisibility(int);
00068 vtkGetMacro(SharpnessEntryVisibility, int);
00069
00070
00071
00072 virtual vtkKWScaleWithEntry* GetSharpnessEntry();
00073
00074
00075
00076
00077
00078 vtkBooleanMacro(MidPointVisibility, int);
00079 virtual void SetMidPointVisibility(int);
00080 vtkGetMacro(MidPointVisibility, int);
00081
00082
00083
00084 vtkGetVector3Macro(MidPointColor, double);
00085 virtual void SetMidPointColor(double r, double g, double b);
00086 virtual void SetMidPointColor(double rgb[3])
00087 { this->SetMidPointColor(rgb[0], rgb[1], rgb[2]); };
00088
00089
00090
00091 vtkGetVector3Macro(SelectedMidPointColor, double);
00092 virtual void SetSelectedMidPointColor(double r, double g, double b);
00093 virtual void SetSelectedMidPointColor(double rgb[3])
00094 { this->SetSelectedMidPointColor(rgb[0], rgb[1], rgb[2]); };
00095
00096
00097
00098
00099
00100
00101 vtkBooleanMacro(MidPointGuidelineVisibility, int);
00102 virtual void SetMidPointGuidelineVisibility(int);
00103 vtkGetMacro(MidPointGuidelineVisibility, int);
00104
00105
00106
00107
00108
00109
00110
00111 vtkBooleanMacro(MidPointGuidelineValueVisibility, int);
00112 virtual void SetMidPointGuidelineValueVisibility(int);
00113 vtkGetMacro(MidPointGuidelineValueVisibility, int);
00114
00115
00116
00117 virtual void SetMidPointGuidelineValueFormat(const char *);
00118 vtkGetStringMacro(MidPointGuidelineValueFormat);
00119
00120
00121
00122
00123
00124 vtkGetMacro(SelectedMidPoint, int);
00125 virtual void SelectMidPoint(int id);
00126 virtual void ClearMidPointSelection();
00127 virtual int HasMidPointSelection();
00128
00129
00130
00131
00132
00133 virtual void SelectPoint(int id);
00134
00135
00136
00137
00138
00139 virtual void SelectNextPoint();
00140 virtual void SelectPreviousPoint();
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150 virtual void SetMidPointSelectionChangedCommand(
00151 vtkObject *object,const char *method);
00152
00153
00154
00155
00156
00157
00158
00159 enum
00160 {
00161 MidPointSelectionChangedEvent = 11000
00162 };
00163
00164
00165
00166
00167
00168
00169 virtual int SynchronizeSingleSelection(
00170 vtkKWParameterValueFunctionEditor *b);
00171 virtual int DoNotSynchronizeSingleSelection(
00172 vtkKWParameterValueFunctionEditor *b);
00173
00174
00175
00176
00177
00178 virtual int SynchronizeSameSelection(
00179 vtkKWParameterValueFunctionEditor *b);
00180 virtual int DoNotSynchronizeSameSelection(
00181 vtkKWParameterValueFunctionEditor *b);
00182
00183
00184
00185 virtual void Update();
00186
00187
00188
00189 virtual void DisplayHistogramOnly();
00190
00191
00192
00193
00194
00195
00196
00197
00198 virtual void UpdateEnableState();
00199
00200
00201
00202
00203 static const char *MidPointTag;
00204 static const char *MidPointGuidelineTag;
00205 static const char *MidPointSelectedTag;
00206
00207
00208
00209
00210 virtual void MidPointEntryChangedCallback(double value);
00211 virtual void MidPointEntryChangingCallback(double value);
00212 virtual void SharpnessEntryChangedCallback(double value);
00213 virtual void SharpnessEntryChangingCallback(double value);
00214 virtual void StartInteractionCallback(int x, int y, int shift);
00215 virtual void MoveMidPointCallback(int x, int y, int button);
00216 virtual void EndMidPointInteractionCallback(int x, int y);
00217
00218 protected:
00219 vtkKWParameterValueHermiteFunctionEditor();
00220 ~vtkKWParameterValueHermiteFunctionEditor();
00221
00222
00223
00224 virtual void CreateWidget();
00225
00226
00227
00228
00229
00230
00231
00232
00233 virtual int GetFunctionPointMidPoint(int id, double *pos) = 0;
00234
00235
00236
00237
00238
00239
00240 virtual int SetFunctionPointMidPoint(int id, double pos) = 0;
00241
00242
00243
00244
00245 virtual int FunctionPointMidPointIsLocked(int id);
00246
00247
00248
00249
00250
00251
00252 virtual int GetFunctionPointSharpness(int id, double *sharpness) = 0;
00253
00254
00255
00256
00257
00258 virtual int SetFunctionPointSharpness(int id, double sharpness) = 0;
00259
00260
00261
00262
00263 virtual int FunctionPointSharpnessIsLocked(int id);
00264
00265
00266
00267 virtual void UpdateMidPointEntries(int id);
00268
00269
00270
00271 virtual int GetMidPointCanvasCoordinates(int id, int *x, int *y, double *p);
00272 virtual int FindMidPointAtCanvasCoordinates(
00273 int x, int y, int *id, int *c_x, int *c_y);
00274
00275 int MidPointEntryVisibility;
00276 int DisplayMidPointValueInParameterDomain;
00277 int SharpnessEntryVisibility;
00278 int MidPointGuidelineVisibility;
00279 int MidPointGuidelineValueVisibility;
00280 double MidPointColor[3];
00281 double SelectedMidPointColor[3];
00282 int SelectedMidPoint;
00283 int LastMidPointSelectionCanvasCoordinateX;
00284 int LastMidPointSelectionCanvasCoordinateY;
00285 double LastMidPointSelectionSharpness;
00286
00287 char* MidPointGuidelineValueFormat;
00288
00289
00290
00291 char *MidPointSelectionChangedCommand;
00292
00293 virtual void InvokeMidPointSelectionChangedCommand();
00294
00295
00296
00297 vtkKWScaleWithEntry *MidPointEntry;
00298 vtkKWScaleWithEntry *SharpnessEntry;
00299
00300
00301
00302
00303 virtual void CreateMidPointEntry();
00304 virtual void CreateSharpnessEntry();
00305 virtual int IsPointEntriesFrameUsed();
00306 virtual int IsGuidelineValueCanvasUsed();
00307
00308
00309
00310 virtual void UpdateMidPointEntry(int id);
00311
00312
00313
00314 virtual void UpdateSharpnessEntry(int id);
00315
00316
00317
00318
00319 virtual int MergePointFromEditor(
00320 vtkKWParameterValueFunctionEditor *editor, int editor_id, int *new_id);
00321
00322
00323
00324
00325
00326 virtual int CopyPointFromEditor(
00327 vtkKWParameterValueFunctionEditor *editor, int id);
00328
00329
00330
00331
00332
00333 virtual void RedrawFunction();
00334 virtual void RedrawFunctionDependentElements();
00335 virtual void RedrawSinglePointDependentElements(int id);
00336 virtual void RedrawLine(int id1, int id2, vtksys_ios::ostream *tk_cmd = 0);
00337
00338
00339
00340
00341 virtual void PackPointEntries();
00342
00343
00344
00345 virtual void Bind();
00346 virtual void UnBind();
00347
00348
00349
00350 virtual void ProcessSynchronizationEvents(
00351 vtkObject *caller, unsigned long event, void *calldata);
00352 virtual void ProcessSynchronizationEvents2(
00353 vtkObject *caller, unsigned long event, void *calldata);
00354
00355 private:
00356
00357 int MidPointVisibility;
00358
00359 vtkKWParameterValueHermiteFunctionEditor(const vtkKWParameterValueHermiteFunctionEditor&);
00360 void operator=(const vtkKWParameterValueHermiteFunctionEditor&);
00361 };
00362
00363 #endif
00364