Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

GUI/Widgets/vtkKWPiecewiseFunctionEditor.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Module:    $RCSfile: vtkKWPiecewiseFunctionEditor.h,v $
00004 
00005   Copyright (c) Kitware, Inc.
00006   All rights reserved.
00007   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00008 
00009      This software is distributed WITHOUT ANY WARRANTY; without even
00010      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011      PURPOSE.  See the above copyright notice for more information.
00012 
00013 =========================================================================*/
00026 #ifndef __vtkKWPiecewiseFunctionEditor_h
00027 #define __vtkKWPiecewiseFunctionEditor_h
00028 
00029 #include "vtkKWParameterValueHermiteFunctionEditor.h"
00030 
00031 class vtkKWCheckButton;
00032 class vtkPiecewiseFunction;
00033 class vtkKWScaleWithEntry;
00034 class vtkColorTransferFunction;
00035 
00036 class KWWIDGETS_EXPORT vtkKWPiecewiseFunctionEditor : public vtkKWParameterValueHermiteFunctionEditor
00037 {
00038 public:
00039   static vtkKWPiecewiseFunctionEditor* New();
00040   vtkTypeRevisionMacro(vtkKWPiecewiseFunctionEditor,vtkKWParameterValueHermiteFunctionEditor);
00041   void PrintSelf(ostream& os, vtkIndent indent);
00042 
00044 
00046   vtkGetObjectMacro(PiecewiseFunction, vtkPiecewiseFunction);
00047   virtual void SetPiecewiseFunction(vtkPiecewiseFunction*);
00049 
00051   virtual void Create(vtkKWApplication *app);
00052 
00054   virtual void Update();
00055 
00057 
00059   vtkGetObjectMacro(PointColorTransferFunction, vtkColorTransferFunction);
00060   virtual void SetPointColorTransferFunction(vtkColorTransferFunction*);
00062 
00064 
00070   virtual void SetWindowLevelMode(int);
00071   vtkBooleanMacro(WindowLevelMode, int);
00072   vtkGetMacro(WindowLevelMode, int);
00074 
00076 
00079   virtual void SetWindowLevelModeButtonVisibility(int);
00080   vtkBooleanMacro(WindowLevelModeButtonVisibility, int);
00081   vtkGetMacro(WindowLevelModeButtonVisibility, int);
00083 
00085 
00088   vtkSetMacro(WindowLevelModeLockEndPointValue, int);
00089   vtkBooleanMacro(WindowLevelModeLockEndPointValue, int);
00090   vtkGetMacro(WindowLevelModeLockEndPointValue, int);
00092 
00094 
00097   virtual void SetWindowLevel(double window, double level);
00098   virtual void SetInteractiveWindowLevel(double window, double level);
00099   vtkGetMacro(Window, double);
00100   vtkGetMacro(Level, double);
00102 
00104 
00105   virtual void SetWindowLevelModeChangedCommand(
00106     vtkObject* object,const char *method);
00107   virtual void InvokeWindowLevelModeChangedCommand();
00108   virtual void InvokeFunctionChangedCommand();
00109   virtual void InvokeFunctionChangingCommand();
00111 
00113 
00117   vtkBooleanMacro(ValueEntryVisibility, int);
00118   virtual void SetValueEntryVisibility(int);
00119   vtkGetMacro(ValueEntryVisibility, int);
00121 
00123 
00125   vtkGetObjectMacro(ValueEntry, vtkKWEntryWithLabel);
00127 
00134   virtual void UpdateEnableState();
00135 
00137 
00138   virtual void ValueEntryCallback();
00139   virtual void WindowLevelModeCallback();
00141 
00143 
00144   virtual int HasFunction();
00145   virtual int GetFunctionSize();
00146   virtual unsigned long GetFunctionMTime();
00147   virtual int GetFunctionPointParameter(int id, double *parameter);
00148   virtual int GetFunctionPointDimensionality();
00150 
00152 
00153   virtual int FunctionPointCanBeAdded();
00154   virtual int FunctionPointCanBeRemoved(int id);
00155   virtual int FunctionPointParameterIsLocked(int id);
00156   virtual int FunctionPointValueIsLocked(int id);
00158 
00160   virtual int  MoveFunctionPoint(int id,double parameter,const double *values);
00161 
00162 protected:
00163   vtkKWPiecewiseFunctionEditor();
00164   ~vtkKWPiecewiseFunctionEditor();
00165 
00167 
00171   virtual int GetFunctionPointValues(int id, double *values);
00172   virtual int SetFunctionPointValues(int id, const double *values);
00173   virtual int InterpolateFunctionPointValues(double parameter, double *values);
00174   virtual int AddFunctionPoint(double parameter, const double *values,int *id);
00175   virtual int SetFunctionPoint(int id, double parameter, const double *values);
00176   virtual int RemoveFunctionPoint(int id);
00177   virtual int FunctionLineIsSampledBetweenPoints(int id1, int id2);
00178   virtual int GetFunctionPointMidPoint(int id, double *pos);
00179   virtual int SetFunctionPointMidPoint(int id, double pos);
00180   virtual int GetFunctionPointSharpness(int id, double *sharpness);
00181   virtual int SetFunctionPointSharpness(int id, double sharpness);
00182   virtual int FunctionPointMidPointIsLocked(int id);
00183   virtual int FunctionPointSharpnessIsLocked(int id);
00185 
00186   virtual int GetMidPointVisibility();
00187 
00189   virtual int  GetFunctionPointColorInCanvas(int id, double rgb[3]);
00190 
00191   virtual void UpdatePointEntries(int id);
00192 
00193   //BTX
00194   virtual void GetLineCoordinates(int id1, int id2, ostrstream *tk_cmd);
00195   //ETX
00196 
00197   vtkPiecewiseFunction *PiecewiseFunction;
00198   vtkColorTransferFunction *PointColorTransferFunction;
00199 
00200   int WindowLevelMode;
00201   int ValueEntryVisibility;
00202   int WindowLevelModeButtonVisibility;
00203   int WindowLevelModeLockEndPointValue;
00204 
00205   double Window;
00206   double Level;
00207 
00208   virtual void UpdatePointsFromWindowLevel(int interactive = 0);
00209   virtual void UpdateWindowLevelFromPoints();
00210 
00212 
00213   virtual void Pack();
00214   virtual void PackPointEntries();
00216 
00217   // Commands
00218 
00219   char  *WindowLevelModeChangedCommand;
00220 
00221   // GUI
00222 
00223   vtkKWEntryWithLabel *ValueEntry;
00224   vtkKWCheckButton    *WindowLevelModeCheckButton;
00225 
00227 
00229   virtual void CreateWindowLevelModeCheckButton(vtkKWApplication *app);
00230   virtual void CreateValueEntry(vtkKWApplication *app);
00231   virtual int IsTopLeftFrameUsed();
00232   virtual int IsPointEntriesFrameUsed();
00234 
00235   virtual unsigned long GetRedrawFunctionTime();
00236 
00237 private:
00238   vtkKWPiecewiseFunctionEditor(const vtkKWPiecewiseFunctionEditor&); // Not implemented
00239   void operator=(const vtkKWPiecewiseFunctionEditor&); // Not implemented
00240 };
00241 
00242 #endif
00243 

Generated on Tue May 30 12:31:43 2006 for ParaView by doxygen 1.3.5