00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00023 #ifndef __vtkPVImplicitPlaneWidget_h
00024 #define __vtkPVImplicitPlaneWidget_h
00025
00026 #include "vtkPV3DWidget.h"
00027
00028 class vtkPVSource;
00029 class vtkKWEntry;
00030 class vtkKWPushButton;
00031 class vtkKWWidget;
00032 class vtkKWLabel;
00033 class vtkPVInputMenu;
00034 class vtkKWFrame;
00035
00036 class VTK_EXPORT vtkPVImplicitPlaneWidget : public vtkPV3DWidget
00037 {
00038 public:
00039 static vtkPVImplicitPlaneWidget* New();
00040 vtkTypeRevisionMacro(vtkPVImplicitPlaneWidget, vtkPV3DWidget);
00041
00042 void PrintSelf(ostream& os, vtkIndent indent);
00043
00045 void CenterResetCallback();
00046
00047
00048
00049 void NormalCameraCallback();
00050 void NormalXCallback();
00051 void NormalYCallback();
00052 void NormalZCallback();
00053
00056 virtual void SetBalloonHelpString(const char *str);
00057
00058
00060
00061 void SetCenter();
00062 virtual void SetCenter(double,double,double);
00063 virtual void SetCenter(double f[3]) { this->SetCenter(f[0], f[1], f[2]); }
00064 void GetCenter(double pts[3]);
00066
00068
00069 void SetNormal();
00070 virtual void SetNormal(double,double,double);
00071 virtual void SetNormal(double f[3]) { this->SetNormal(f[0], f[1], f[2]); }
00072 void GetNormal(double pts[3]);
00074
00076
00077 virtual void SetInputMenu(vtkPVInputMenu*);
00078 vtkGetObjectMacro(InputMenu, vtkPVInputMenu);
00080
00083 virtual void SaveInBatchScript(ofstream *file);
00084
00086 virtual void Update();
00087
00089 virtual void ResetInternal();
00090
00092 virtual void Initialize();
00093
00094
00096
00097 virtual void Accept();
00098
00100
00102 virtual void Trace(ofstream *file);
00103
00110 virtual void UpdateEnableState();
00111
00113 virtual vtkSMProxy* GetProxyByName(const char*);
00114
00116 virtual void UpdateVTKObjects();
00117
00119 virtual void Create(vtkKWApplication *app);
00120
00123 void UpdateOffsetRange();
00124
00127 virtual void EnableAnimation(){ this->RegisterAnimateableProxies();} ;
00128
00132 virtual void DisableAnimation() { this->UnregisterAnimateableProxies();} ;
00133
00134 protected:
00135 vtkPVImplicitPlaneWidget();
00136 ~vtkPVImplicitPlaneWidget();
00137
00139 virtual void ChildCreate(vtkPVApplication*);
00140
00142 virtual void ExecuteEvent(vtkObject*, unsigned long, void*);
00143
00144 virtual void SetCenterInternal(double,double,double);
00145 virtual void SetNormalInternal(double,double,double);
00146
00148
00150 void GetCenterInternal(double pts[3]);
00151 void GetNormalInternal(double pts[3]);
00153
00154 vtkPVInputMenu *InputMenu;
00155
00156 vtkKWEntry *CenterEntry[3];
00157 vtkKWPushButton *CenterResetButton;
00158
00159 vtkKWEntry *NormalEntry[3];
00160 vtkKWEntry *OffsetEntry;
00161
00162 vtkKWFrame *NormalButtonFrame;
00163 vtkKWPushButton *NormalCameraButton;
00164 vtkKWPushButton *NormalXButton;
00165 vtkKWPushButton *NormalYButton;
00166 vtkKWPushButton *NormalZButton;
00167 vtkKWLabel* Labels[2];
00168 vtkKWLabel* OffsetLabel;
00169 vtkKWLabel* CoordinateLabel[3];
00170
00171 vtkSMProxy *ImplicitFunctionProxy;
00172
00173 int ReadXMLAttributes(vtkPVXMLElement* element,
00174 vtkPVXMLPackageParser* parser);
00175
00176 void CommonReset();
00177
00178 void SetupPropertyObservers();
00179 void UnsetPropertyObservers();
00180
00182
00185 virtual vtkPVWidget* ClonePrototypeInternal(
00186 vtkPVSource* pvSource,
00187 vtkArrayMap<vtkPVWidget*,
00188 vtkPVWidget*>* map);
00189
00190 void RegisterAnimateableProxies();
00191 void UnregisterAnimateableProxies();
00193 private:
00194 vtkPVImplicitPlaneWidget(const vtkPVImplicitPlaneWidget&);
00195 void operator=(const vtkPVImplicitPlaneWidget&);
00196 };
00197
00198 #endif