00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00030 #ifndef __vtkKWParameterValueHermiteFunctionEditor_h
00031 #define __vtkKWParameterValueHermiteFunctionEditor_h
00032
00033 #include "vtkKWParameterValueFunctionEditor.h"
00034
00035 class vtkKWScaleWithEntry;
00036
00037 class KWWidgets_EXPORT vtkKWParameterValueHermiteFunctionEditor : public vtkKWParameterValueFunctionEditor
00038 {
00039
00040 public:
00041 vtkTypeRevisionMacro(vtkKWParameterValueHermiteFunctionEditor,vtkKWParameterValueFunctionEditor);
00042 void PrintSelf(ostream& os, vtkIndent indent);
00043
00045
00049 vtkBooleanMacro(MidPointEntryVisibility, int);
00050 virtual void SetMidPointEntryVisibility(int);
00051 vtkGetMacro(MidPointEntryVisibility, int);
00053
00055 virtual vtkKWScaleWithEntry* GetMidPointEntry();
00056
00058
00060 vtkBooleanMacro(DisplayMidPointValueInParameterDomain, int);
00061 virtual void SetDisplayMidPointValueInParameterDomain(int);
00062 vtkGetMacro(DisplayMidPointValueInParameterDomain, int);
00064
00066
00070 vtkBooleanMacro(SharpnessEntryVisibility, int);
00071 virtual void SetSharpnessEntryVisibility(int);
00072 vtkGetMacro(SharpnessEntryVisibility, int);
00074
00076 virtual vtkKWScaleWithEntry* GetSharpnessEntry();
00077
00079
00082 vtkBooleanMacro(MidPointVisibility, int);
00083 virtual void SetMidPointVisibility(int);
00084 vtkGetMacro(MidPointVisibility, int);
00086
00088
00089 vtkGetVector3Macro(MidPointColor, double);
00090 virtual void SetMidPointColor(double r, double g, double b);
00091 virtual void SetMidPointColor(double rgb[3])
00092 { this->SetMidPointColor(rgb[0], rgb[1], rgb[2]); };
00094
00096
00097 vtkGetVector3Macro(SelectedMidPointColor, double);
00098 virtual void SetSelectedMidPointColor(double r, double g, double b);
00099 virtual void SetSelectedMidPointColor(double rgb[3])
00100 { this->SetSelectedMidPointColor(rgb[0], rgb[1], rgb[2]); };
00102
00104
00108 vtkBooleanMacro(MidPointGuidelineVisibility, int);
00109 virtual void SetMidPointGuidelineVisibility(int);
00110 vtkGetMacro(MidPointGuidelineVisibility, int);
00112
00114
00118 vtkBooleanMacro(MidPointGuidelineValueVisibility, int);
00119 virtual void SetMidPointGuidelineValueVisibility(int);
00120 vtkGetMacro(MidPointGuidelineValueVisibility, int);
00122
00124
00125 virtual void SetMidPointGuidelineValueFormat(const char *);
00126 vtkGetStringMacro(MidPointGuidelineValueFormat);
00128
00130
00133 vtkGetMacro(SelectedMidPoint, int);
00134 virtual void SelectMidPoint(int id);
00135 virtual void ClearMidPointSelection();
00136 virtual int HasMidPointSelection();
00138
00141 virtual void SelectPoint(int id);
00142
00144
00147 virtual void SelectNextPoint();
00148 virtual void SelectPreviousPoint();
00150
00152
00159 virtual void SetMidPointSelectionChangedCommand(
00160 vtkObject *object,const char *method);
00162
00164
00168 enum
00169 {
00170 MidPointSelectionChangedEvent = 11000
00171 };
00172
00174
00176
00179 virtual int SynchronizeSingleSelection(
00180 vtkKWParameterValueFunctionEditor *b);
00181 virtual int DoNotSynchronizeSingleSelection(
00182 vtkKWParameterValueFunctionEditor *b);
00184
00186
00189 virtual int SynchronizeSameSelection(
00190 vtkKWParameterValueFunctionEditor *b);
00191 virtual int DoNotSynchronizeSameSelection(
00192 vtkKWParameterValueFunctionEditor *b);
00194
00196 virtual void Update();
00197
00199 virtual void DisplayHistogramOnly();
00200
00207 virtual void UpdateEnableState();
00208
00210
00211 static const char *MidPointTag;
00212 static const char *MidPointGuidelineTag;
00213 static const char *MidPointSelectedTag;
00214
00216
00218
00219 virtual void MidPointEntryChangedCallback(double value);
00220 virtual void MidPointEntryChangingCallback(double value);
00221 virtual void SharpnessEntryChangedCallback(double value);
00222 virtual void SharpnessEntryChangingCallback(double value);
00223 virtual void StartInteractionCallback(int x, int y, int shift);
00224 virtual void MoveMidPointCallback(int x, int y, int button);
00225 virtual void EndMidPointInteractionCallback(int x, int y);
00227
00228
00229
00230 protected:
00231 vtkKWParameterValueHermiteFunctionEditor();
00232 ~vtkKWParameterValueHermiteFunctionEditor();
00233
00235 virtual void CreateWidget();
00236
00243 virtual int GetFunctionPointMidPoint(int id, double *pos) = 0;
00244
00249 virtual int SetFunctionPointMidPoint(int id, double pos) = 0;
00250
00253 virtual int FunctionPointMidPointIsLocked(int id);
00254
00258 virtual int GetFunctionPointSharpness(int id, double *sharpness) = 0;
00259
00263 virtual int SetFunctionPointSharpness(int id, double sharpness) = 0;
00264
00267 virtual int FunctionPointSharpnessIsLocked(int id);
00268
00270 virtual void UpdateMidPointEntries(int id);
00271
00273
00274 virtual int GetMidPointCanvasCoordinates(int id, int *x, int *y, double *p);
00275 virtual int FindMidPointAtCanvasCoordinates(
00276 int x, int y, int *id, int *c_x, int *c_y);
00278
00279 int MidPointEntryVisibility;
00280 int DisplayMidPointValueInParameterDomain;
00281 int SharpnessEntryVisibility;
00282 int MidPointGuidelineVisibility;
00283 int MidPointGuidelineValueVisibility;
00284 double MidPointColor[3];
00285 double SelectedMidPointColor[3];
00286 int SelectedMidPoint;
00287 int LastMidPointSelectionCanvasCoordinateX;
00288 int LastMidPointSelectionCanvasCoordinateY;
00289 double LastMidPointSelectionSharpness;
00290
00291 char* MidPointGuidelineValueFormat;
00292
00293
00294
00295 char *MidPointSelectionChangedCommand;
00296
00297 virtual void InvokeMidPointSelectionChangedCommand();
00298
00299
00300
00301 vtkKWScaleWithEntry *MidPointEntry;
00302 vtkKWScaleWithEntry *SharpnessEntry;
00303
00305
00307 virtual void CreateMidPointEntry();
00308 virtual void CreateSharpnessEntry();
00309 virtual int IsPointEntriesFrameUsed();
00310 virtual int IsGuidelineValueCanvasUsed();
00312
00314 virtual void UpdateMidPointEntry(int id);
00315
00317 virtual void UpdateSharpnessEntry(int id);
00318
00320
00323 virtual int MergePointFromEditor(
00324 vtkKWParameterValueFunctionEditor *editor, int editor_id, int *new_id);
00326
00328
00331 virtual int CopyPointFromEditor(
00332 vtkKWParameterValueFunctionEditor *editor, int id);
00334
00336
00338 virtual void RedrawFunction();
00339 virtual void RedrawFunctionDependentElements();
00340 virtual void RedrawSinglePointDependentElements(int id);
00341 virtual void RedrawLine(int id1, int id2, vtksys_ios::ostream *tk_cmd = 0);
00342
00344
00346 virtual void PackPointEntries();
00347
00349
00350 virtual void Bind();
00351 virtual void UnBind();
00353
00354
00355
00356 virtual void ProcessSynchronizationEvents(
00357 vtkObject *caller, unsigned long event, void *calldata);
00358 virtual void ProcessSynchronizationEvents2(
00359 vtkObject *caller, unsigned long event, void *calldata);
00360
00361
00362
00363 private:
00364
00365 int MidPointVisibility;
00366
00367 vtkKWParameterValueHermiteFunctionEditor(const vtkKWParameterValueHermiteFunctionEditor&);
00368 void operator=(const vtkKWParameterValueHermiteFunctionEditor&);
00369 };
00370
00371 #endif
00372
00373