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

GUI/Widgets/vtkKWParameterValueHermiteFunctionEditor.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Module:    $RCSfile: vtkKWParameterValueHermiteFunctionEditor.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 __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 public:
00040   vtkTypeRevisionMacro(vtkKWParameterValueHermiteFunctionEditor,vtkKWParameterValueFunctionEditor);
00041   void PrintSelf(ostream& os, vtkIndent indent);
00042 
00044   virtual void Create(vtkKWApplication *app);
00045 
00047 
00051   vtkBooleanMacro(MidPointEntryVisibility, int);
00052   virtual void SetMidPointEntryVisibility(int);
00053   vtkGetMacro(MidPointEntryVisibility, int);
00055 
00057   virtual vtkKWScaleWithEntry* GetMidPointEntry();
00058 
00060 
00062   vtkBooleanMacro(DisplayMidPointValueInParameterDomain, int);
00063   virtual void SetDisplayMidPointValueInParameterDomain(int);
00064   vtkGetMacro(DisplayMidPointValueInParameterDomain, int);
00066 
00068 
00072   vtkBooleanMacro(SharpnessEntryVisibility, int);
00073   virtual void SetSharpnessEntryVisibility(int);
00074   vtkGetMacro(SharpnessEntryVisibility, int);
00076 
00078   virtual vtkKWScaleWithEntry* GetSharpnessEntry();
00079 
00081 
00084   vtkBooleanMacro(MidPointVisibility, int);
00085   virtual void SetMidPointVisibility(int);
00086   vtkGetMacro(MidPointVisibility, int);
00088 
00090 
00091   vtkGetVector3Macro(MidPointColor, double);
00092   virtual void SetMidPointColor(double r, double g, double b);
00093   virtual void SetMidPointColor(double rgb[3])
00094     { this->SetMidPointColor(rgb[0], rgb[1], rgb[2]); };
00096 
00098 
00099   vtkGetVector3Macro(SelectedMidPointColor, double);
00100   virtual void SetSelectedMidPointColor(double r, double g, double b);
00101   virtual void SetSelectedMidPointColor(double rgb[3])
00102     { this->SetSelectedMidPointColor(rgb[0], rgb[1], rgb[2]); };
00104 
00106 
00110   vtkBooleanMacro(MidPointGuidelineVisibility, int);
00111   virtual void SetMidPointGuidelineVisibility(int);
00112   vtkGetMacro(MidPointGuidelineVisibility, int);
00114 
00116 
00120   vtkBooleanMacro(MidPointGuidelineValueVisibility, int);
00121   virtual void SetMidPointGuidelineValueVisibility(int);
00122   vtkGetMacro(MidPointGuidelineValueVisibility, int);
00124 
00126 
00127   virtual void SetMidPointGuidelineValueFormat(const char *);
00128   vtkGetStringMacro(MidPointGuidelineValueFormat);
00130 
00132 
00135   vtkGetMacro(SelectedMidPoint, int);
00136   virtual void SelectMidPoint(int id);
00137   virtual void ClearMidPointSelection();
00138   virtual int  HasMidPointSelection();
00140 
00143   virtual void SelectPoint(int id);
00144 
00146 
00148   virtual void SetMidPointSelectionChangedCommand(
00149     vtkObject* object,const char *method);
00151 
00153 
00157   enum
00158   {
00159     MidPointSelectionChangedEvent = 11000
00160   };
00161   //ETX
00163 
00165 
00168   virtual int SynchronizeSingleSelection(
00169     vtkKWParameterValueFunctionEditor *b);
00170   virtual int DoNotSynchronizeSingleSelection(
00171     vtkKWParameterValueFunctionEditor *b);
00173 
00175 
00178   virtual int SynchronizeSameSelection(
00179     vtkKWParameterValueFunctionEditor *b);
00180   virtual int DoNotSynchronizeSameSelection(
00181     vtkKWParameterValueFunctionEditor *b);
00183 
00185   virtual void Update();
00186 
00193   virtual void UpdateEnableState();
00194 
00196 
00197   virtual void MidPointEntryChangedCallback();
00198   virtual void MidPointEntryChangingCallback();
00199   virtual void SharpnessEntryChangedCallback();
00200   virtual void SharpnessEntryChangingCallback();
00201   virtual void StartInteractionCallback(int x, int y);
00202   virtual void MoveMidPointCallback(int x, int y, int button);
00203   virtual void EndMidPointInteractionCallback(int x, int y);
00205 
00207 
00208   static const char *MidPointTag;
00209   static const char *MidPointGuidelineTag;
00210   static const char *MidPointSelectedTag;
00211   //ETX
00213 
00214 protected:
00215   vtkKWParameterValueHermiteFunctionEditor();
00216   ~vtkKWParameterValueHermiteFunctionEditor();
00217 
00224   virtual int GetFunctionPointMidPoint(int id, double *pos) = 0;
00225 
00230   virtual int SetFunctionPointMidPoint(int id, double pos) = 0;
00231 
00234   virtual int FunctionPointMidPointIsLocked(int id);
00235 
00239   virtual int GetFunctionPointSharpness(int id, double *sharpness) = 0;
00240 
00244   virtual int SetFunctionPointSharpness(int id, double sharpness) = 0;
00245 
00248   virtual int FunctionPointSharpnessIsLocked(int id);
00249 
00251   virtual void UpdateMidPointEntries(int id);
00252 
00254 
00255   virtual int  GetMidPointCanvasCoordinates(int id, int *x, int *y, double *p);
00256   virtual int  FindMidPointAtCanvasCoordinates(
00257     int x, int y, int *id, int *c_x, int *c_y);
00259 
00260   int    MidPointEntryVisibility;
00261   int    DisplayMidPointValueInParameterDomain;
00262   int    SharpnessEntryVisibility;
00263   int    MidPointGuidelineVisibility;
00264   int    MidPointGuidelineValueVisibility;
00265   double MidPointColor[3];
00266   double SelectedMidPointColor[3];
00267   int    SelectedMidPoint;
00268   int    LastMidPointSelectionCanvasCoordinateY;
00269   double LastMidPointSelectionSharpness;
00270 
00271   char* MidPointGuidelineValueFormat;
00272 
00273   // Commands
00274 
00275   char  *MidPointSelectionChangedCommand;
00276 
00277   virtual void InvokeMidPointSelectionChangedCommand();
00278 
00279   // GUI
00280 
00281   vtkKWScaleWithEntry *MidPointEntry;
00282   vtkKWScaleWithEntry *SharpnessEntry;
00283 
00285 
00287   virtual void CreateMidPointEntry(vtkKWApplication *app);
00288   virtual void CreateSharpnessEntry(vtkKWApplication *app);
00289   virtual int IsPointEntriesFrameUsed();
00290   virtual int IsGuidelineValueCanvasUsed();
00292 
00294   virtual void UpdateMidPointEntry(int id);
00295 
00297   virtual void UpdateSharpnessEntry(int id);
00298 
00300 
00303   virtual int MergePointFromEditor(
00304     vtkKWParameterValueFunctionEditor *editor, int editor_id, int *new_id);
00306 
00308 
00311   virtual int CopyPointFromEditor(
00312     vtkKWParameterValueFunctionEditor *editor, int id);
00314 
00316 
00318   virtual void RedrawFunction();
00319   virtual void RedrawFunctionDependentElements();
00320   virtual void RedrawSinglePointDependentElements(int id);
00321   virtual void RedrawLine(int id1, int id2, ostrstream *tk_cmd = 0);
00322   //ETX
00324 
00326   virtual void PackPointEntries();
00327 
00329 
00330   virtual void Bind();
00331   virtual void UnBind();
00333 
00334   // Synchronization callbacks
00335 
00336   virtual void ProcessSynchronizationEvents(
00337     vtkObject *caller, unsigned long event, void *calldata);
00338   virtual void ProcessSynchronizationEvents2(
00339     vtkObject *caller, unsigned long event, void *calldata);
00340 
00341 private:
00342 
00343   int    MidPointVisibility;
00344 
00345   vtkKWParameterValueHermiteFunctionEditor(const vtkKWParameterValueHermiteFunctionEditor&); // Not implemented
00346   void operator=(const vtkKWParameterValueHermiteFunctionEditor&); // Not implemented
00347 };
00348 
00349 #endif
00350 

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