00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00032 #ifndef __vtkKWParameterValueFunctionEditor_h
00033 #define __vtkKWParameterValueFunctionEditor_h
00034
00035 #include "vtkKWParameterValueFunctionInterface.h"
00036
00037
00038 #include "vtkKWHistogram.h"
00039 #include <vtksys/ios/iosfwd>
00040
00041
00042 class vtkCallbackCommand;
00043 class vtkKWCanvas;
00044 class vtkKWFrame;
00045 class vtkKWIcon;
00046 class vtkKWLabel;
00047 class vtkKWEntryWithLabel;
00048 class vtkKWRange;
00049 class vtkKWMenuButton;
00050
00051 class KWWidgets_EXPORT vtkKWParameterValueFunctionEditor : public vtkKWParameterValueFunctionInterface
00052 {
00053
00054 public:
00055 vtkTypeRevisionMacro(vtkKWParameterValueFunctionEditor,vtkKWParameterValueFunctionInterface);
00056 void PrintSelf(ostream& os, vtkIndent indent);
00057
00059
00062 virtual double* GetWholeParameterRange();
00063 virtual void SetWholeParameterRange(double r0, double r1);
00064 virtual void GetWholeParameterRange(double &r0, double &r1);
00065 virtual void GetWholeParameterRange(double range[2]);
00066 virtual void SetWholeParameterRange(double range[2]);
00068
00072 virtual void SetWholeParameterRangeToFunctionRange();
00073
00075
00078 virtual double* GetVisibleParameterRange();
00079 virtual void SetVisibleParameterRange(double r0, double r1);
00080 virtual void GetVisibleParameterRange(double &r0, double &r1);
00081 virtual void GetVisibleParameterRange(double range[2]);
00082 virtual void SetVisibleParameterRange(double range[2]);
00084
00086 virtual void SetVisibleParameterRangeToWholeParameterRange();
00087
00089
00091 virtual void SetRelativeVisibleParameterRange(double r0, double r1);
00092 virtual void GetRelativeVisibleParameterRange(double &r0, double &r1);
00093 virtual void GetRelativeVisibleParameterRange(double range[2]);
00094 virtual void SetRelativeVisibleParameterRange(double range[2]);
00096
00098
00101 virtual double* GetWholeValueRange();
00102 virtual void SetWholeValueRange(double r0, double r1);
00103 virtual void GetWholeValueRange(double &r0, double &r1);
00104 virtual void GetWholeValueRange(double range[2]);
00105 virtual void SetWholeValueRange(double range[2]);
00107
00109
00111 virtual double* GetVisibleValueRange();
00112 virtual void SetVisibleValueRange(double r0, double r1);
00113 virtual void GetVisibleValueRange(double &r0, double &r1);
00114 virtual void GetVisibleValueRange(double range[2]);
00115 virtual void SetVisibleValueRange(double range[2]);
00117
00119
00121 virtual void SetRelativeVisibleValueRange(double r0, double r1);
00122 virtual void GetRelativeVisibleValueRange(double &r0, double &r1);
00123 virtual void GetRelativeVisibleValueRange(double range[2]);
00124 virtual void SetRelativeVisibleValueRange(double range[2]);
00126
00136 virtual void SetLabelPosition(int);
00137
00139
00142 vtkBooleanMacro(ParameterRangeVisibility, int);
00143 virtual void SetParameterRangeVisibility(int);
00144 vtkGetMacro(ParameterRangeVisibility, int);
00146
00148
00149 enum
00150 {
00151 ParameterRangePositionTop = 0,
00152 ParameterRangePositionBottom
00153 };
00154
00155 virtual void SetParameterRangePosition(int);
00156 vtkGetMacro(ParameterRangePosition, int);
00157 virtual void SetParameterRangePositionToTop();
00158 virtual void SetParameterRangePositionToBottom();
00160
00162
00165 vtkBooleanMacro(ValueRangeVisibility, int);
00166 virtual void SetValueRangeVisibility(int);
00167 vtkGetMacro(ValueRangeVisibility, int);
00169
00171
00174 vtkGetObjectMacro(ParameterRange, vtkKWRange);
00175 vtkGetObjectMacro(ValueRange, vtkKWRange);
00177
00179
00198 vtkGetVector2Macro(DisplayedWholeParameterRange, double);
00199 virtual void SetDisplayedWholeParameterRange(double r0, double r1);
00200 virtual void SetDisplayedWholeParameterRange(double range[2]);
00201 virtual void GetDisplayedVisibleParameterRange(double &r0, double &r1);
00202 virtual void GetDisplayedVisibleParameterRange(double range[2]);
00203 virtual void MapParameterToDisplayedParameter(double p, double *displayed_p);
00204 virtual void MapDisplayedParameterToParameter(double displayed_p, double *p);
00205 virtual int GetFunctionPointDisplayedParameter(int id, double *displayed_p);
00207
00209
00214 enum
00215 {
00216 PointPositionValue = 0,
00217 PointPositionTop,
00218 PointPositionBottom,
00219 PointPositionCenter
00220 };
00221
00222 virtual void SetPointPositionInValueRange(int);
00223 vtkGetMacro(PointPositionInValueRange, int);
00224 virtual void SetPointPositionInValueRangeToValue();
00225 virtual void SetPointPositionInValueRangeToTop();
00226 virtual void SetPointPositionInValueRangeToBottom();
00227 virtual void SetPointPositionInValueRangeToCenter();
00229
00231
00234 vtkBooleanMacro(ParameterRangeLabelVisibility, int);
00235 virtual void SetParameterRangeLabelVisibility(int);
00236 vtkGetMacro(ParameterRangeLabelVisibility, int);
00238
00240
00243 vtkBooleanMacro(ValueRangeLabelVisibility, int);
00244 virtual void SetValueRangeLabelVisibility(int);
00245 vtkGetMacro(ValueRangeLabelVisibility, int);
00247
00249
00253 enum
00254 {
00255 RangeLabelPositionDefault = 10,
00256 RangeLabelPositionTop
00257 };
00258
00259 virtual void SetRangeLabelPosition(int);
00260 vtkGetMacro(RangeLabelPosition, int);
00261 virtual void SetRangeLabelPositionToDefault();
00262 virtual void SetRangeLabelPositionToTop();
00264
00266
00269 enum
00270 {
00271 PointEntriesPositionDefault = 10,
00272 PointEntriesPositionRight
00273 };
00274
00275 virtual void SetPointEntriesPosition(int);
00276 vtkGetMacro(PointEntriesPosition, int);
00277 virtual void SetPointEntriesPositionToDefault();
00278 virtual void SetPointEntriesPositionToRight();
00280
00282
00287 vtkBooleanMacro(PointEntriesVisibility, int);
00288 virtual void SetPointEntriesVisibility(int);
00289 vtkGetMacro(PointEntriesVisibility, int);
00291
00293
00297 vtkBooleanMacro(ParameterEntryVisibility, int);
00298 virtual void SetParameterEntryVisibility(int);
00299 vtkGetMacro(ParameterEntryVisibility, int);
00301
00303
00306 virtual void SetParameterEntryFormat(const char *);
00307 vtkGetStringMacro(ParameterEntryFormat);
00309
00311 virtual vtkKWEntryWithLabel* GetParameterEntry();
00312
00314
00317 vtkBooleanMacro(UserFrameVisibility, int);
00318 virtual void SetUserFrameVisibility(int);
00319 vtkGetMacro(UserFrameVisibility, int);
00321
00323
00325 vtkGetObjectMacro(UserFrame, vtkKWFrame);
00327
00329
00336 virtual void SetCanvasHeight(int);
00337 virtual void SetCanvasWidth(int);
00338 virtual int GetCanvasHeight();
00339 virtual int GetCanvasWidth();
00340 vtkBooleanMacro(ExpandCanvasWidth, int);
00341 virtual void SetExpandCanvasWidth(int);
00342 vtkGetMacro(ExpandCanvasWidth, int);
00343 vtkGetMacro(CurrentCanvasHeight, int);
00344 vtkGetMacro(CurrentCanvasWidth, int);
00346
00348
00350 vtkBooleanMacro(CanvasVisibility, int);
00351 virtual void SetCanvasVisibility(int);
00352 vtkGetMacro(CanvasVisibility, int);
00354
00356
00358 vtkBooleanMacro(FunctionLineVisibility, int);
00359 virtual void SetFunctionLineVisibility(int);
00360 vtkGetMacro(FunctionLineVisibility, int);
00362
00364
00365 virtual void SetFunctionLineWidth(int);
00366 vtkGetMacro(FunctionLineWidth, int);
00368
00370
00371 enum
00372 {
00373 LineStyleSolid = 0,
00374 LineStyleDash
00375 };
00376
00377 virtual void SetFunctionLineStyle(int);
00378 vtkGetMacro(FunctionLineStyle, int);
00379 virtual void SetFunctionLineStyleToSolid();
00380 virtual void SetFunctionLineStyleToDash();
00382
00384
00385 vtkBooleanMacro(CanvasOutlineVisibility, int);
00386 virtual void SetCanvasOutlineVisibility(int);
00387 vtkGetMacro(CanvasOutlineVisibility, int);
00389
00391
00392 enum
00393 {
00394 CanvasOutlineStyleLeftSide = 1,
00395 CanvasOutlineStyleRightSide = 2,
00396 CanvasOutlineStyleHorizontalSides = 3,
00397 CanvasOutlineStyleTopSide = 4,
00398 CanvasOutlineStyleBottomSide = 8,
00399 CanvasOutlineStyleVerticalSides = 12,
00400 CanvasOutlineStyleAllSides = 15
00401 };
00402
00403 vtkBooleanMacro(CanvasOutlineStyle, int);
00404 virtual void SetCanvasOutlineStyle(int);
00405 vtkGetMacro(CanvasOutlineStyle, int);
00407
00409
00410 vtkBooleanMacro(CanvasBackgroundVisibility, int);
00411 virtual void SetCanvasBackgroundVisibility(int);
00412 vtkGetMacro(CanvasBackgroundVisibility, int);
00414
00416
00419 vtkBooleanMacro(ParameterCursorVisibility, int);
00420 virtual void SetParameterCursorVisibility(int);
00421 vtkGetMacro(ParameterCursorVisibility, int);
00423
00425
00426 virtual void SetParameterCursorPosition(double);
00427 vtkGetMacro(ParameterCursorPosition, double);
00429
00431
00432 vtkGetVector3Macro(ParameterCursorColor, double);
00433 virtual void SetParameterCursorColor(double r, double g, double b);
00434 virtual void SetParameterCursorColor(double rgb[3]);
00436
00438
00439 enum
00440 {
00441 ParameterCursorInteractionStyleNone = 0,
00442 ParameterCursorInteractionStyleDragWithLeftButton = 1,
00443 ParameterCursorInteractionStyleSetWithRighButton = 2,
00444 ParameterCursorInteractionStyleSetWithControlLeftButton = 4,
00445 ParameterCursorInteractionStyleAll = 7
00446 };
00447
00448 vtkBooleanMacro(ParameterCursorInteractionStyle, int);
00449 virtual void SetParameterCursorInteractionStyle(int);
00450 vtkGetMacro(ParameterCursorInteractionStyle, int);
00452
00454
00455 vtkBooleanMacro(ParameterTicksVisibility, int);
00456 virtual void SetParameterTicksVisibility(int);
00457 vtkGetMacro(ParameterTicksVisibility, int);
00459
00461
00462 virtual void SetNumberOfParameterTicks(int);
00463 vtkGetMacro(NumberOfParameterTicks, int);
00465
00467
00469 virtual void SetParameterTicksFormat(const char *);
00470 vtkGetStringMacro(ParameterTicksFormat);
00472
00474
00475 vtkBooleanMacro(ValueTicksVisibility, int);
00476 virtual void SetValueTicksVisibility(int);
00477 vtkGetMacro(ValueTicksVisibility, int);
00479
00481
00482 virtual void SetNumberOfValueTicks(int);
00483 vtkGetMacro(NumberOfValueTicks, int);
00485
00487
00488 virtual void SetValueTicksCanvasWidth(int);
00489 vtkGetMacro(ValueTicksCanvasWidth, int);
00491
00493
00494 virtual void SetValueTicksFormat(const char *);
00495 vtkGetStringMacro(ValueTicksFormat);
00497
00499
00500 vtkBooleanMacro(ComputeValueTicksFromHistogram, int);
00501 virtual void SetComputeValueTicksFromHistogram(int);
00502 vtkGetMacro(ComputeValueTicksFromHistogram, int);
00504
00506
00507 virtual void SetTicksLength(int);
00508 vtkGetMacro(TicksLength, int);
00510
00512
00515 virtual void SetLockPointsParameter(int);
00516 vtkBooleanMacro(LockPointsParameter, int);
00517 vtkGetMacro(LockPointsParameter, int);
00519
00521
00524 virtual void SetLockEndPointsParameter(int);
00525 vtkBooleanMacro(LockEndPointsParameter, int);
00526 vtkGetMacro(LockEndPointsParameter, int);
00528
00530
00533 virtual void SetLockPointsValue(int);
00534 vtkBooleanMacro(LockPointsValue, int);
00535 vtkGetMacro(LockPointsValue, int);
00537
00539
00540 vtkSetMacro(DisableAddAndRemove, int);
00541 vtkBooleanMacro(DisableAddAndRemove, int);
00542 vtkGetMacro(DisableAddAndRemove, int);
00544
00546
00550 vtkSetMacro(EnableDirectMove, int);
00551 vtkBooleanMacro(EnableDirectMove, int);
00552 vtkGetMacro(EnableDirectMove, int);
00554
00556
00558 virtual void SetReadOnly(int);
00559 vtkBooleanMacro(ReadOnly, int);
00561
00563
00567 vtkSetMacro(RescaleBetweenEndPoints, int);
00568 vtkBooleanMacro(RescaleBetweenEndPoints, int);
00569 vtkGetMacro(RescaleBetweenEndPoints, int);
00571
00573
00574 virtual void SetPointRadius(int);
00575 virtual void SetPointRadiusX(int);
00576 vtkGetMacro(PointRadiusX, int);
00577 virtual void SetPointRadiusY(int);
00578 vtkGetMacro(PointRadiusY, int);
00580
00582
00584 virtual void SetSelectedPointRadius(double);
00585 vtkGetMacro(SelectedPointRadius, double);
00587
00589
00592 virtual void SetSelectedPointText(const char *);
00593 vtkGetStringMacro(SelectedPointText);
00594 virtual void SetSelectedPointTextToInt(int);
00596
00598
00602 enum
00603 {
00604 PointStyleDisc = 0,
00605 PointStyleCursorDown,
00606 PointStyleCursorUp,
00607 PointStyleCursorLeft,
00608 PointStyleCursorRight,
00609 PointStyleRectangle,
00610 PointStyleDefault
00611 };
00612
00613 virtual void SetPointStyle(int);
00614 vtkGetMacro(PointStyle, int);
00615 virtual void SetPointStyleToDisc();
00616 virtual void SetPointStyleToCursorDown();
00617 virtual void SetPointStyleToCursorUp();
00618 virtual void SetPointStyleToCursorLeft();
00619 virtual void SetPointStyleToCursorRight();
00620 virtual void SetPointStyleToRectangle();
00621 virtual void SetPointStyleToDefault();
00622 virtual void SetFirstPointStyle(int);
00623 vtkGetMacro(FirstPointStyle, int);
00624 virtual void SetLastPointStyle(int);
00625 vtkGetMacro(LastPointStyle, int);
00627
00629
00630 virtual void SetPointOutlineWidth(int);
00631 vtkGetMacro(PointOutlineWidth, int);
00633
00635
00641 enum
00642 {
00643 PointMarginNone = 0,
00644 PointMarginLeftSide = 1,
00645 PointMarginRightSide = 2,
00646 PointMarginHorizontalSides = 3,
00647 PointMarginTopSide = 4,
00648 PointMarginBottomSide = 8,
00649 PointMarginVerticalSides = 12,
00650 PointMarginAllSides = 15
00651 };
00652
00653 vtkBooleanMacro(PointMarginToCanvas, int);
00654 virtual void SetPointMarginToCanvas(int);
00655 vtkGetMacro(PointMarginToCanvas, int);
00656 virtual void SetPointMarginToCanvasToNone();
00657 virtual void SetPointMarginToCanvasToLeftSide();
00658 virtual void SetPointMarginToCanvasToRightSide();
00659 virtual void SetPointMarginToCanvasToHorizontalSides();
00660 virtual void SetPointMarginToCanvasToTopSide();
00661 virtual void SetPointMarginToCanvasToBottomSide();
00662 virtual void SetPointMarginToCanvasToVerticalSides();
00663 virtual void SetPointMarginToCanvasToAllSides();
00665
00667
00668 vtkGetMacro(SelectedPoint, int);
00669 virtual void SelectPoint(int id);
00670 virtual void ClearSelection();
00671 virtual int HasSelection();
00672 virtual void SelectNextPoint();
00673 virtual void SelectPreviousPoint();
00674 virtual void SelectFirstPoint();
00675 virtual void SelectLastPoint();
00677
00679
00680 virtual int RemoveSelectedPoint();
00681 virtual int RemovePoint(int id);
00682 virtual int RemovePointAtParameter(double parameter);
00684
00686
00687 virtual int AddPointAtCanvasCoordinates(int x, int y, int *id);
00688 virtual int AddPointAtParameter(double parameter, int *id);
00690
00693 virtual int MergePointsFromEditor(vtkKWParameterValueFunctionEditor *editor);
00694
00696
00701 vtkGetVector3Macro(FrameBackgroundColor, double);
00702 virtual void SetFrameBackgroundColor(double r, double g, double b);
00703 virtual void SetFrameBackgroundColor(double rgb[3]);
00704 virtual void SetBackgroundColor(double r, double g, double b);
00705 virtual void SetBackgroundColor(double rgb[3]);
00707
00709
00711 vtkGetVector3Macro(PointColor, double);
00712 virtual void SetPointColor(double r, double g, double b);
00713 virtual void SetPointColor(double rgb[3]);
00715
00717
00719 vtkGetVector3Macro(SelectedPointColor, double);
00720 virtual void SetSelectedPointColor(double r, double g, double b);
00721 virtual void SetSelectedPointColor(double rgb[3]);
00723
00725
00728 vtkGetVector3Macro(SelectedPointColorInInteraction, double);
00729 virtual void SetSelectedPointColorInInteraction(
00730 double r, double g, double b);
00731 virtual void SetSelectedPointColorInInteraction(double rgb[3]);
00733
00735
00736 enum
00737 {
00738 PointColorStyleFill = 0,
00739 PointColorStyleOutline
00740 };
00741
00742 virtual void SetPointColorStyle(int);
00743 vtkGetMacro(PointColorStyle, int);
00744 virtual void SetPointColorStyleToFill();
00745 virtual void SetPointColorStyleToOutline();
00747
00749
00751 vtkGetVector3Macro(PointTextColor, double);
00752 virtual void SetPointTextColor(double r, double g, double b);
00753 virtual void SetPointTextColor(double rgb[3]);
00755
00757
00759 vtkGetVector3Macro(SelectedPointTextColor, double);
00760 virtual void SetSelectedPointTextColor(double r, double g, double b);
00761 virtual void SetSelectedPointTextColor(double rgb[3]);
00763
00765
00767 vtkBooleanMacro(ComputePointColorFromValue, int);
00768 virtual void SetComputePointColorFromValue(int);
00769 vtkGetMacro(ComputePointColorFromValue, int);
00771
00773
00777 vtkBooleanMacro(PointVisibility, int);
00778 virtual void SetPointVisibility(int);
00779 vtkGetMacro(PointVisibility, int);
00781
00783
00784 vtkBooleanMacro(PointIndexVisibility, int);
00785 virtual void SetPointIndexVisibility(int);
00786 vtkGetMacro(PointIndexVisibility, int);
00788
00790
00791 vtkBooleanMacro(SelectedPointIndexVisibility, int);
00792 virtual void SetSelectedPointIndexVisibility(int);
00793 vtkGetMacro(SelectedPointIndexVisibility, int);
00795
00797
00799 vtkBooleanMacro(PointGuidelineVisibility, int);
00800 virtual void SetPointGuidelineVisibility(int);
00801 vtkGetMacro(PointGuidelineVisibility, int);
00803
00805
00807 virtual void SetPointGuidelineStyle(int);
00808 vtkGetMacro(PointGuidelineStyle, int);
00810
00812
00815 vtkGetObjectMacro(Histogram, vtkKWHistogram);
00816 virtual void SetHistogram(vtkKWHistogram*);
00817 vtkGetObjectMacro(SecondaryHistogram, vtkKWHistogram);
00818 virtual void SetSecondaryHistogram(vtkKWHistogram*);
00820
00829 virtual void DisplayHistogramOnly();
00830
00832
00834 vtkGetVector3Macro(HistogramColor, double);
00835 virtual void SetHistogramColor(double r, double g, double b);
00836 virtual void SetHistogramColor(double rgb[3]);
00837 vtkGetVector3Macro(SecondaryHistogramColor, double);
00838 virtual void SetSecondaryHistogramColor(double r, double g, double b);
00839 virtual void SetSecondaryHistogramColor(double rgb[3]);
00841
00843
00846 vtkBooleanMacro(ComputeHistogramColorFromValue, int);
00847 virtual void SetComputeHistogramColorFromValue(int);
00848 vtkGetMacro(ComputeHistogramColorFromValue, int);
00850
00852
00853 enum
00854 {
00855 HistogramStyleBars = 0,
00856 HistogramStyleDots,
00857 HistogramStylePolyLine
00858 };
00859
00860 vtkGetMacro(HistogramStyle, int);
00861 virtual void SetHistogramStyle(int);
00862 virtual void SetHistogramStyleToBars();
00863 virtual void SetHistogramStyleToDots();
00864 virtual void SetHistogramStyleToPolyLine();
00865 vtkGetMacro(SecondaryHistogramStyle, int);
00866 virtual void SetSecondaryHistogramStyle(int);
00867 virtual void SetSecondaryHistogramStyleToBars();
00868 virtual void SetSecondaryHistogramStyleToDots();
00869 virtual void SetSecondaryHistogramStyleToPolyLine();
00871
00873
00874 virtual void SetHistogramPolyLineWidth(int);
00875 vtkGetMacro(HistogramPolyLineWidth, int);
00877
00879
00882 virtual void SetHistogramLogModeOptionMenuVisibility(int);
00883 vtkBooleanMacro(HistogramLogModeOptionMenuVisibility, int);
00884 vtkGetMacro(HistogramLogModeOptionMenuVisibility, int);
00886
00888
00895 virtual void SetHistogramLogModeChangedCommand(
00896 vtkObject *object,const char *method);
00898
00900
00902 vtkBooleanMacro(ChangeMouseCursor, int);
00903 vtkGetMacro(ChangeMouseCursor, int);
00904 vtkSetMacro(ChangeMouseCursor, int);
00906
00908
00931 virtual void SetFunctionStartChangingCommand(
00932 vtkObject *object, const char *method);
00933 virtual void SetFunctionChangedCommand(
00934 vtkObject *object, const char *method);
00935 virtual void SetFunctionChangingCommand(
00936 vtkObject *object, const char *method);
00938
00940
00971 virtual void SetPointAddedCommand(
00972 vtkObject *object,const char *method);
00973 virtual void SetPointChangingCommand(
00974 vtkObject *object, const char *method);
00975 virtual void SetPointChangedCommand(
00976 vtkObject *object, const char *method);
00977 virtual void SetDoubleClickOnPointCommand(
00978 vtkObject *object,const char *method);
00979 virtual void SetPointRemovedCommand(
00980 vtkObject *object, const char *method);
00982
00984
00990 virtual void SetSelectionChangedCommand(
00991 vtkObject *object,const char *method);
00993
00995
01016 virtual void SetVisibleRangeChangedCommand(
01017 vtkObject *object, const char *method);
01018 virtual void SetVisibleRangeChangingCommand(
01019 vtkObject *object, const char *method);
01021
01023
01033 virtual void SetParameterCursorMovingCommand(
01034 vtkObject *object, const char *method);
01035 virtual void SetParameterCursorMovedCommand(
01036 vtkObject *object, const char *method);
01038
01040
01043 vtkSetMacro(DisableCommands, int);
01044 vtkGetMacro(DisableCommands, int);
01045 vtkBooleanMacro(DisableCommands, int);
01047
01049
01056 enum
01057 {
01058 FunctionChangedEvent = 10000,
01059 FunctionStartChangingEvent,
01060 FunctionChangingEvent,
01061 PointAddedEvent,
01062 PointChangedEvent,
01063 PointChangingEvent,
01064 PointRemovedEvent,
01065 SelectionChangedEvent,
01066 VisibleParameterRangeChangedEvent,
01067 VisibleParameterRangeChangingEvent,
01068 VisibleValueRangeChangedEvent,
01069 VisibleValueRangeChangingEvent,
01070 VisibleRangeChangedEvent,
01071 VisibleRangeChangingEvent,
01072 RelativeVisibleRangeChangedEvent,
01073 RelativeVisibleRangeChangingEvent,
01074 ParameterCursorMovedEvent,
01075 ParameterCursorMovingEvent,
01076 DoubleClickOnPointEvent
01077 };
01078
01080
01082
01088 virtual int SynchronizeVisibleParameterRange(
01089 vtkKWParameterValueFunctionEditor *b);
01090 virtual int DoNotSynchronizeVisibleParameterRange(
01091 vtkKWParameterValueFunctionEditor *b);
01093
01095
01102 virtual int SynchronizePoints(vtkKWParameterValueFunctionEditor *b);
01103 virtual int DoNotSynchronizePoints(vtkKWParameterValueFunctionEditor *b);
01105
01107
01112 virtual int SynchronizeSingleSelection(
01113 vtkKWParameterValueFunctionEditor *b);
01114 virtual int DoNotSynchronizeSingleSelection(
01115 vtkKWParameterValueFunctionEditor *b);
01117
01119
01124 virtual int SynchronizeSameSelection(
01125 vtkKWParameterValueFunctionEditor *b);
01126 virtual int DoNotSynchronizeSameSelection(
01127 vtkKWParameterValueFunctionEditor *b);
01129
01132 virtual void SetBalloonHelpString(const char *str);
01133
01135 virtual void Update();
01136
01143 virtual void UpdateEnableState();
01144
01146
01147 static const char *FunctionTag;
01148 static const char *SelectedTag;
01149 static const char *PointTag;
01150 static const char *PointGuidelineTag;
01151 static const char *PointTextTag;
01152 static const char *LineTag;
01153 static const char *HistogramTag;
01154 static const char *SecondaryHistogramTag;
01155 static const char *FrameForegroundTag;
01156 static const char *FrameBackgroundTag;
01157 static const char *ParameterCursorTag;
01158 static const char *ParameterTicksTag;
01159 static const char *ValueTicksTag;
01160
01162
01164
01165 virtual int FunctionPointCanBeAdded();
01166 virtual int FunctionPointCanBeRemoved(int id);
01167 virtual int FunctionPointParameterIsLocked(int id);
01168 virtual int FunctionPointValueIsLocked(int id);
01169 virtual int FunctionPointCanBeMovedToParameter(int id, double parameter);
01171
01173 virtual int MoveFunctionPoint(int id,double parameter,const double *values);
01174
01176
01177 virtual void ConfigureCallback();
01178 virtual void VisibleParameterRangeChangingCallback(double, double);
01179 virtual void VisibleParameterRangeChangedCallback(double, double);
01180 virtual void VisibleValueRangeChangingCallback(double, double);
01181 virtual void VisibleValueRangeChangedCallback(double, double);
01182 virtual void StartInteractionCallback(int x, int y, int shift);
01183 virtual void MovePointCallback(int x, int y, int shift);
01184 virtual void EndInteractionCallback(int x, int y);
01185 virtual void ParameterCursorStartInteractionCallback(int x);
01186 virtual void ParameterCursorEndInteractionCallback();
01187 virtual void ParameterCursorMoveCallback(int x);
01188 virtual void ParameterEntryCallback(const char*);
01189 virtual void HistogramLogModeCallback(int mode);
01190 virtual void DoubleClickOnPointCallback(int x, int y);
01192
01193
01194
01195 protected:
01196 vtkKWParameterValueFunctionEditor();
01197 ~vtkKWParameterValueFunctionEditor();
01198
01200 virtual void CreateWidget();
01201
01209 virtual int FunctionLineIsInVisibleRangeBetweenPoints(int id1, int id2);
01210
01212
01213 virtual int GetFunctionPointColorInCanvas(int id, double rgb[3]);
01214 virtual int GetFunctionPointTextColorInCanvas(int id, double rgb[3]);
01215 virtual int GetFunctionPointCanvasCoordinates(int id, int *x, int *y);
01216 virtual int GetFunctionPointCanvasCoordinatesAtParameter(
01217 double parameter, int *x, int *y);
01218 virtual int AddFunctionPointAtCanvasCoordinates(int x, int y, int *id);
01219 virtual int AddFunctionPointAtParameter(double parameter, int *id);
01220 virtual int MoveFunctionPointToCanvasCoordinates(int id,int x,int y);
01221 virtual int MoveFunctionPointToParameter(int id,double parameter,int i=0);
01222 virtual int EqualFunctionPointValues(
01223 const double *values1, const double *values2);
01224 virtual int FindFunctionPointAtCanvasCoordinates(
01225 int x, int y, int *id, int *c_x, int *c_y);
01227
01228 virtual void UpdatePointEntries(int id);
01229
01234 virtual void RescaleFunctionBetweenEndPoints(int id, double old_parameter);
01235
01237
01238 vtkSetMacro(DisableRedraw, int);
01239 vtkBooleanMacro(DisableRedraw, int);
01240 vtkGetMacro(DisableRedraw, int);
01242
01244
01249 virtual int MergePointFromEditor(
01250 vtkKWParameterValueFunctionEditor *editor, int editor_id, int *new_id);
01252
01254
01257 virtual int CopyPointFromEditor(
01258 vtkKWParameterValueFunctionEditor *editor, int id);
01260
01261 int ParameterRangeVisibility;
01262 int ValueRangeVisibility;
01263 int PointPositionInValueRange;
01264 int ParameterRangePosition;
01265 int PointColorStyle;
01266 int CurrentCanvasHeight;
01267 int CurrentCanvasWidth;
01268 int RequestedCanvasHeight;
01269 int RequestedCanvasWidth;
01270 int ExpandCanvasWidth;
01271 int LockPointsParameter;
01272 int LockEndPointsParameter;
01273 int LockPointsValue;
01274 int RescaleBetweenEndPoints;
01275 int DisableAddAndRemove;
01276 int EnableDirectMove;
01277 int DisableRedraw;
01278 int PointRadiusX;
01279 int PointRadiusY;
01280 double SelectedPointRadius;
01281 int FunctionLineWidth;
01282 int FunctionLineStyle;
01283 int PointGuidelineStyle;
01284 int PointOutlineWidth;
01285 int PointStyle;
01286 int FirstPointStyle;
01287 int LastPointStyle;
01288 int DisableCommands;
01289 int SelectedPoint;
01290 int CanvasOutlineVisibility;
01291 int CanvasOutlineStyle;
01292 int ParameterCursorInteractionStyle;
01293 int CanvasBackgroundVisibility;
01294 int ParameterCursorVisibility;
01295 int FunctionLineVisibility;
01296 int CanvasVisibility;
01297 int PointVisibility;
01298 int PointIndexVisibility;
01299 int PointGuidelineVisibility;
01300 int SelectedPointIndexVisibility;
01301 int ParameterRangeLabelVisibility;
01302 int ValueRangeLabelVisibility;
01303 int RangeLabelPosition;
01304 int PointEntriesPosition;
01305 int ParameterEntryVisibility;
01306 int PointEntriesVisibility;
01307 int UserFrameVisibility;
01308 int ParameterTicksVisibility;
01309 int ValueTicksVisibility;
01310 int ComputeValueTicksFromHistogram;
01311 int PointMarginToCanvas;
01312 int TicksLength;
01313 int NumberOfParameterTicks;
01314 int NumberOfValueTicks;
01315 int ValueTicksCanvasWidth;
01316 int ChangeMouseCursor;
01317 char* ValueTicksFormat;
01318 char* ParameterTicksFormat;
01319 char* ParameterEntryFormat;
01320 double ParameterCursorPosition;
01321 char* SelectedPointText;
01322
01323 double FrameBackgroundColor[3];
01324 double ParameterCursorColor[3];
01325 double PointColor[3];
01326 double SelectedPointColor[3];
01327 double SelectedPointColorInInteraction[3];
01328 double PointTextColor[3];
01329 double SelectedPointTextColor[3];
01330 int ComputePointColorFromValue;
01331 int InUserInteraction;
01332
01333
01334
01335 char *PointAddedCommand;
01336 char *PointChangingCommand;
01337 char *PointChangedCommand;
01338 char *PointRemovedCommand;
01339 char *SelectionChangedCommand;
01340 char *FunctionChangedCommand;
01341 char *FunctionChangingCommand;
01342 char *FunctionStartChangingCommand;
01343 char *VisibleRangeChangedCommand;
01344 char *VisibleRangeChangingCommand;
01345 char *ParameterCursorMovingCommand;
01346 char *ParameterCursorMovedCommand;
01347 char *DoubleClickOnPointCommand;
01348
01349 virtual void InvokeObjectMethodCommand(const char *command);
01350 virtual void InvokeHistogramLogModeChangedCommand(int mode);
01351 virtual void InvokePointCommand(
01352 const char *command, int id, const char *extra = 0);
01353
01354 virtual void InvokePointAddedCommand(int id);
01355 virtual void InvokePointChangingCommand(int id);
01356 virtual void InvokePointChangedCommand(int id);
01357 virtual void InvokePointRemovedCommand(int id, double parameter);
01358 virtual void InvokeDoubleClickOnPointCommand(int id);
01359 virtual void InvokeSelectionChangedCommand();
01360 virtual void InvokeFunctionChangedCommand();
01361 virtual void InvokeFunctionChangingCommand();
01362 virtual void InvokeFunctionStartChangingCommand();
01363 virtual void InvokeVisibleRangeChangedCommand();
01364 virtual void InvokeVisibleRangeChangingCommand();
01365 virtual void InvokeParameterCursorMovingCommand(double pos);
01366 virtual void InvokeParameterCursorMovedCommand(double pos);
01367
01368
01369
01370 vtkKWCanvas *Canvas;
01371 vtkKWRange *ParameterRange;
01372 vtkKWRange *ValueRange;
01373 vtkKWFrame *TopLeftContainer;
01374 vtkKWFrame *TopLeftFrame;
01375 vtkKWFrame *UserFrame;
01376 vtkKWFrame *PointEntriesFrame;
01377 vtkKWLabel *RangeLabel;
01378 vtkKWEntryWithLabel *ParameterEntry;
01379 vtkKWCanvas *ValueTicksCanvas;
01380 vtkKWCanvas *ParameterTicksCanvas;
01381 vtkKWCanvas *GuidelineValueCanvas;
01382
01383
01384
01385 vtkKWHistogram *Histogram;
01386 vtkKWHistogram *SecondaryHistogram;
01387
01388 vtkKWHistogram::ImageDescriptor *HistogramImageDescriptor;
01389 vtkKWHistogram::ImageDescriptor *SecondaryHistogramImageDescriptor;
01390
01391 double HistogramColor[3];
01392 double SecondaryHistogramColor[3];
01393 int ComputeHistogramColorFromValue;
01394 int HistogramStyle;
01395 int SecondaryHistogramStyle;
01396 unsigned long LastHistogramBuildTime;
01397 int HistogramLogModeOptionMenuVisibility;
01398 char *HistogramLogModeChangedCommand;
01399 int HistogramPolyLineWidth;
01400
01401 vtkKWMenuButton *HistogramLogModeOptionMenu;
01402 virtual void CreateHistogramLogModeOptionMenu();
01403 virtual void UpdateHistogramLogModeOptionMenu();
01404
01406
01407 virtual void Bind();
01408 virtual void UnBind();
01410
01412
01414 virtual void CreateLabel();
01415 virtual void CreateParameterRange();
01416 virtual void CreateValueRange();
01417 virtual void CreateRangeLabel();
01418 virtual void CreatePointEntriesFrame();
01419 virtual void CreateParameterEntry();
01420 virtual void CreateTopLeftContainer();
01421 virtual void CreateTopLeftFrame();
01422 virtual void CreateUserFrame();
01423 virtual void CreateValueTicksCanvas();
01424 virtual void CreateParameterTicksCanvas();
01425 virtual void CreateGuidelineValueCanvas();
01426 virtual int IsTopLeftFrameUsed();
01427 virtual int IsPointEntriesFrameUsed();
01428 virtual int IsGuidelineValueCanvasUsed();
01430
01432
01433 virtual void Pack();
01434 virtual void PackPointEntries();
01436
01438 virtual void GetCanvasItemCenter(int item_id, int *x, int *y);
01439
01441
01443 virtual void GetCanvasScalingFactors(double factors[2]);
01444 virtual void GetCanvasMargin(
01445 int *margin_left, int *margin_right, int *margin_top, int *margin_bottom);
01446 virtual void GetCanvasScrollRegion(double *x, double *y, double *x2, double *y2);
01447 virtual void GetCanvasHorizontalSlidingBounds(
01448 double p_v_range_ext[2], int bounds[2], int margins[2]);
01450
01452
01461 virtual unsigned long GetRedrawFunctionTime();
01462 virtual void Redraw();
01463 virtual void RedrawSizeDependentElements();
01464 virtual void RedrawPanOnlyDependentElements();
01465 virtual void RedrawFunctionDependentElements();
01466 virtual void RedrawSinglePointDependentElements(int id);
01468
01470
01472 virtual void RedrawFunction();
01473 virtual void RedrawPoint(int id, vtksys_ios::ostream *tk_cmd = 0);
01474 virtual void RedrawLine(int id1, int id2, vtksys_ios::ostream *tk_cmd = 0);
01475 virtual void GetLineCoordinates(int id1, int id2, vtksys_ios::ostream *tk_cmd);
01476
01478
01480 virtual void RedrawRangeFrame();
01481
01483 virtual void RedrawRangeTicks();
01484
01486 virtual void RedrawParameterCursor();
01487
01489
01490 virtual void RedrawHistogram();
01491
01492 virtual void UpdateHistogramImageDescriptor(vtkKWHistogram::ImageDescriptor*);
01493
01495
01496
01497
01498
01499
01500 class Ranges
01501 {
01502 public:
01503 double WholeParameterRange[2];
01504 double VisibleParameterRange[2];
01505 double WholeValueRange[2];
01506 double VisibleValueRange[2];
01507
01508 Ranges();
01509 void GetRangesFrom(vtkKWParameterValueFunctionEditor *);
01510 int HasSameWholeRangesComparedTo(Ranges*);
01511 int NeedResizeComparedTo(Ranges*);
01512 int NeedPanOnlyComparedTo(Ranges*);
01513 };
01514 Ranges LastRanges;
01515 unsigned long LastRedrawFunctionTime;
01516 int LastRedrawFunctionSize;
01517
01518
01519 double DisplayedWholeParameterRange[2];
01520
01521
01522 enum
01523 {
01524 ConstrainedMoveFree,
01525 ConstrainedMoveHorizontal,
01526 ConstrainedMoveVertical
01527 };
01528
01529 int LastSelectionCanvasCoordinateX;
01530 int LastSelectionCanvasCoordinateY;
01531 int LastConstrainedMove;
01532
01535 virtual void UpdateRangeLabel();
01536
01538 virtual void UpdateParameterEntry(int id);
01539
01541
01543 virtual int CanvasHasTag(
01544 const char *tag, int *suffix = 0, vtkKWCanvas *canv = NULL);
01546
01548
01549 virtual void CanvasRemoveTag(const char *tag, const char *canv_name = NULL);
01550 virtual void CanvasRemoveTag(
01551 const char *prefix, int id, const char *canv_name = NULL);
01553
01555 virtual int CanvasCheckTagType(const char *prefix, int id, const char *type);
01556
01558
01560 int FindClosestItemWithTagAtCanvasCoordinates(
01561 int x, int y, int halo, const char *tag, int *c_x, int *c_y, char *found);
01563
01564
01565
01566 vtkCallbackCommand *SynchronizeCallbackCommand;
01567 vtkCallbackCommand *SynchronizeCallbackCommand2;
01568
01569 virtual int AddObserversList(int nb_events, int *events, vtkCommand *cmd);
01570 virtual int RemoveObserversList(int nb_events, int *events, vtkCommand *cmd);
01571
01572 virtual void ProcessSynchronizationEvents(
01573 vtkObject *caller, unsigned long event, void *calldata);
01574 static void ProcessSynchronizationEventsFunction(
01575 vtkObject *object, unsigned long event, void *clientdata, void *calldata);
01576
01577 virtual void ProcessSynchronizationEvents2(
01578 vtkObject *caller, unsigned long event, void *calldata);
01579 static void ProcessSynchronizationEventsFunction2(
01580 vtkObject *object, unsigned long event, void *clientdata, void *calldata);
01581
01582
01583
01584 private:
01585
01586 vtkKWParameterValueFunctionEditor(const vtkKWParameterValueFunctionEditor&);
01587 void operator=(const vtkKWParameterValueFunctionEditor&);
01588 };
01589
01590 #endif
01591
01592