00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00025 #ifndef __vtkPVSphereWidget_h
00026 #define __vtkPVSphereWidget_h
00027
00028 #include "vtkPV3DWidget.h"
00029
00030 class vtkPVSource;
00031 class vtkKWEntry;
00032 class vtkKWPushButton;
00033 class vtkKWWidget;
00034 class vtkKWLabel;
00035 class vtkPVInputMenu;
00036
00037 class VTK_EXPORT vtkPVSphereWidget : public vtkPV3DWidget
00038 {
00039 public:
00040 static vtkPVSphereWidget* New();
00041 vtkTypeRevisionMacro(vtkPVSphereWidget, vtkPV3DWidget);
00042
00043 void PrintSelf(ostream& os, vtkIndent indent);
00044
00046 void CenterResetCallback();
00047
00050 virtual void SetBalloonHelpString(const char *str);
00051
00052 void SetCenter();
00053 void SetCenter(double,double,double);
00054 void SetCenter(double c[3]) { this->SetCenter(c[0], c[1], c[2]); }
00055 void GetCenter(double pts[3]);
00056
00057 void SetRadius();
00058 void SetRadius(double);
00059 double GetRadius();
00060
00062 virtual void ResetInternal();
00063
00065 virtual void Initialize();
00066
00067
00069
00071 virtual void Accept();
00072
00074
00076 virtual void Trace(ofstream *file);
00077
00084 virtual void UpdateEnableState();
00085
00093 virtual vtkSMProxy* GetProxyByName(const char*);
00094
00096 virtual void Update();
00097
00099
00100 virtual void SetInputMenu(vtkPVInputMenu*);
00101 vtkGetObjectMacro(InputMenu, vtkPVInputMenu);
00103
00105 virtual void Create(vtkKWApplication *app);
00106
00109 virtual void EnableAnimation(){ this->RegisterAnimateableProxies();} ;
00110
00114 virtual void DisableAnimation() { this->UnregisterAnimateableProxies();} ;
00115
00116 protected:
00117 vtkPVSphereWidget();
00118 ~vtkPVSphereWidget();
00119
00121
00123 void GetCenterInternal(double pt[3]);
00124 double GetRadiusInternal();
00126
00127 void SetCenterInternal(double,double,double);
00128 void SetCenterInternal(double c[3])
00129 {
00130 this->SetCenterInternal(c[0], c[1], c[2]);
00131 }
00132 void SetRadiusInternal(double);
00133
00135 virtual void ChildCreate(vtkPVApplication*);
00136
00138 virtual void ExecuteEvent(vtkObject*, unsigned long, void*);
00139
00140 vtkKWEntry *CenterEntry[3];
00141 vtkKWEntry *RadiusEntry;
00142 vtkKWPushButton *CenterResetButton;
00143
00144 vtkKWLabel* Labels[2];
00145 vtkKWLabel* CoordinateLabel[3];
00146
00147 vtkPVInputMenu* InputMenu;
00148
00149 vtkSMProxy *ImplicitFunctionProxy;
00150
00153 virtual void SaveInBatchScript(ofstream *file);
00154
00155 virtual void ActualPlaceWidget();
00156
00157 int ReadXMLAttributes(vtkPVXMLElement* element,
00158 vtkPVXMLPackageParser* parser);
00159
00160
00162
00165 virtual vtkPVWidget* ClonePrototypeInternal(
00166 vtkPVSource* pvSource,
00167 vtkArrayMap<vtkPVWidget*,
00168 vtkPVWidget*>* map);
00169
00171
00172 void SetupPropertyObservers();
00173 void UnsetPropertyObservers();
00174 void RegisterAnimateableProxies();
00175 void UnregisterAnimateableProxies();
00176 private:
00177 vtkPVSphereWidget(const vtkPVSphereWidget&);
00178 void operator=(const vtkPVSphereWidget&);
00179 };
00180
00181 #endif