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

GUI/Widgets/vtkKWColorTransferFunctionEditor.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Module:    $RCSfile: vtkKWColorTransferFunctionEditor.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 =========================================================================*/
00030 #ifndef __vtkKWColorTransferFunctionEditor_h
00031 #define __vtkKWColorTransferFunctionEditor_h
00032 
00033 #include "vtkKWParameterValueHermiteFunctionEditor.h"
00034 
00035 class vtkColorTransferFunction;
00036 class vtkKWEntryWithLabel;
00037 class vtkKWMenuButton;
00038 
00039 class KWWIDGETS_EXPORT vtkKWColorTransferFunctionEditor : public vtkKWParameterValueHermiteFunctionEditor
00040 {
00041 public:
00042   static vtkKWColorTransferFunctionEditor* New();
00043   vtkTypeRevisionMacro(vtkKWColorTransferFunctionEditor,vtkKWParameterValueHermiteFunctionEditor);
00044   void PrintSelf(ostream& os, vtkIndent indent);
00045 
00047 
00049   vtkGetObjectMacro(ColorTransferFunction, vtkColorTransferFunction);
00050   virtual void SetColorTransferFunction(vtkColorTransferFunction*);
00052 
00054 
00057   virtual int GetPointColorAsRGB(int id, double rgb[3]);
00058   virtual int GetPointColorAsHSV(int id, double hsv[3]);
00059   virtual int SetPointColorAsRGB(int id, const double rgb[3]);
00060   virtual int SetPointColorAsRGB(int id, double r, double g, double b);
00061   virtual int SetPointColorAsHSV(int id, const double hsv[3]);
00062   virtual int SetPointColorAsHSV(int id, double h, double s, double v);
00064 
00066 
00067   vtkBooleanMacro(ColorRampVisibility, int);
00068   virtual void SetColorRampVisibility(int);
00069   vtkGetMacro(ColorRampVisibility, int);
00071 
00073 
00075   vtkGetObjectMacro(ColorRampTransferFunction, vtkColorTransferFunction);
00076   virtual void SetColorRampTransferFunction(vtkColorTransferFunction*);
00078 
00080 
00081   virtual void SetColorRampHeight(int);
00082   vtkGetMacro(ColorRampHeight, int);
00084 
00086 
00089   enum
00090   {
00091     ColorRampPositionDefault = 10,
00092     ColorRampPositionCanvas
00093   };
00094   //ETX
00095   virtual void SetColorRampPosition(int);
00096   vtkGetMacro(ColorRampPosition, int);
00097   virtual void SetColorRampPositionToDefault()
00098     { this->SetColorRampPosition(
00099       vtkKWColorTransferFunctionEditor::ColorRampPositionDefault); };
00100   virtual void SetColorRampPositionToCanvas()
00101     { this->SetColorRampPosition(
00102       vtkKWColorTransferFunctionEditor::ColorRampPositionCanvas); };
00104 
00106 
00107   enum
00108   {
00109     ColorRampOutlineStyleNone = 0,
00110     ColorRampOutlineStyleSolid,
00111     ColorRampOutlineStyleSunken
00112   };
00113   //ETX
00114   virtual void SetColorRampOutlineStyle(int);
00115   vtkGetMacro(ColorRampOutlineStyle, int);
00116   virtual void SetColorRampOutlineStyleToNone()
00117     { this->SetColorRampOutlineStyle(
00118       vtkKWColorTransferFunctionEditor::ColorRampOutlineStyleNone); };
00119   virtual void SetColorRampOutlineStyleToSolid()
00120     { this->SetColorRampOutlineStyle(
00121       vtkKWColorTransferFunctionEditor::ColorRampOutlineStyleSolid); };
00122   virtual void SetColorRampOutlineStyleToSunken()
00123     { this->SetColorRampOutlineStyle(
00124       vtkKWColorTransferFunctionEditor::ColorRampOutlineStyleSunken); };
00126 
00128 
00131   virtual void SetColorSpaceOptionMenuVisibility(int);
00132   vtkBooleanMacro(ColorSpaceOptionMenuVisibility, int);
00133   vtkGetMacro(ColorSpaceOptionMenuVisibility, int);
00135 
00137 
00141   vtkBooleanMacro(ValueEntriesVisibility, int);
00142   virtual void SetValueEntriesVisibility(int);
00143   vtkGetMacro(ValueEntriesVisibility, int);
00145 
00147   virtual void Create(vtkKWApplication *app);
00148 
00150   virtual void Update();
00151 
00153 
00154   virtual void ColorSpaceCallback();
00155   virtual void ValueEntriesCallback();
00156   virtual void DoubleClickOnPointCallback(int x, int y);
00158 
00165   virtual void UpdateEnableState();
00166 
00168 
00170   virtual int HasFunction();
00171   virtual int GetFunctionSize();
00172   virtual unsigned long GetFunctionMTime();
00173   virtual int GetFunctionPointParameter(int id, double *parameter);
00174   virtual int GetFunctionPointDimensionality();
00176 
00177 protected:
00178   vtkKWColorTransferFunctionEditor();
00179   ~vtkKWColorTransferFunctionEditor();
00180 
00182 
00186   virtual int GetFunctionPointValues(int id, double *values);
00187   virtual int SetFunctionPointValues(int id, const double *values);
00188   virtual int InterpolateFunctionPointValues(double parameter, double *values);
00189   virtual int AddFunctionPoint(
00190     double parameter, const double *values, int *id);
00191   virtual int SetFunctionPoint(int id, double parameter, const double *values);
00192   virtual int RemoveFunctionPoint(int id);
00193   virtual int GetFunctionPointMidPoint(int id, double *pos);
00194   virtual int SetFunctionPointMidPoint(int id, double pos);
00195   virtual int GetFunctionPointSharpness(int id, double *sharpness);
00196   virtual int SetFunctionPointSharpness(int id, double sharpness);
00198 
00200 
00201   virtual int  MoveFunctionPointInColorSpace(
00202     int id, double parameter, const double *values, int colorspace);
00204 
00205   virtual void UpdatePointEntries(int id);
00206 
00207   vtkColorTransferFunction *ColorTransferFunction;
00208   vtkColorTransferFunction *ColorRampTransferFunction;
00209 
00210   int ValueEntriesVisibility;
00211   int ColorSpaceOptionMenuVisibility;
00212   int ColorRampVisibility;
00213   int ColorRampHeight;
00214   int ColorRampPosition;
00215   int ColorRampOutlineStyle;
00216   unsigned long LastRedrawColorRampTime;
00217 
00218   // GUI
00219 
00220   vtkKWMenuButton   *ColorSpaceOptionMenu;
00221   vtkKWEntryWithLabel *ValueEntries[3];
00222   vtkKWLabel        *ColorRamp;
00223 
00225 
00226   virtual void Redraw();
00227   virtual void RedrawSizeDependentElements();
00228   virtual void RedrawPanOnlyDependentElements();
00229   virtual void RedrawFunctionDependentElements();
00230   virtual void RedrawSinglePointDependentElements(int id);
00232 
00234 
00235   virtual void UpdateHistogramImageDescriptor(vtkKWHistogram::ImageDescriptor*);
00236   //ETX
00238 
00240 
00241   virtual void Pack();
00242   virtual void PackPointEntries();
00244 
00246 
00247   virtual void RedrawColorRamp();
00248   virtual int IsColorRampUpToDate();
00249   virtual void GetColorRampOutlineSunkenColors(
00250     unsigned char bg_rgb[3], unsigned char ds_rgb[3], unsigned char ls_rgb[3],
00251     unsigned char hl_rgb[3]);
00253 
00255 
00257   virtual void UpdatePointEntriesLabel();
00258   virtual void UpdateColorSpaceOptionMenu();
00260 
00262 
00264   virtual void CreateColorSpaceOptionMenu(vtkKWApplication *app);
00265   virtual void CreateColorRamp(vtkKWApplication *app);
00266   virtual void CreateValueEntries(vtkKWApplication *app);
00267   virtual int IsTopLeftFrameUsed();
00268   virtual int IsPointEntriesFrameUsed();
00270 
00271 private:
00272   vtkKWColorTransferFunctionEditor(const vtkKWColorTransferFunctionEditor&); // Not implemented
00273   void operator=(const vtkKWColorTransferFunctionEditor&); // Not implemented
00274 };
00275 
00276 #endif
00277 

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