Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
Hybrid/vtkPointWidget.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00090 #ifndef __vtkPointWidget_h
00091 #define __vtkPointWidget_h
00092
00093 #include "vtk3DWidget.h"
00094 #include "vtkCursor3D.h"
00095
00096 class vtkActor;
00097 class vtkPolyDataMapper;
00098 class vtkCellPicker;
00099 class vtkPolyData;
00100 class vtkProperty;
00101
00102 class VTK_HYBRID_EXPORT vtkPointWidget : public vtk3DWidget
00103 {
00104 public:
00106 static vtkPointWidget *New();
00107
00108 vtkTypeRevisionMacro(vtkPointWidget,vtk3DWidget);
00109 void PrintSelf(ostream& os, vtkIndent indent);
00110
00112
00113 virtual void SetEnabled(int);
00114 virtual void PlaceWidget(float bounds[6]);
00115 void PlaceWidget()
00116 {this->Superclass::PlaceWidget();}
00117 void PlaceWidget(float xmin, float xmax, float ymin, float ymax,
00118 float zmin, float zmax)
00119 {this->Superclass::PlaceWidget(xmin,xmax,ymin,ymax,zmin,zmax);}
00121
00124 void GetPolyData(vtkPolyData *pd);
00125
00127
00130 void SetPosition(float x, float y, float z)
00131 {this->Cursor3D->SetFocalPoint(x,y,z);}
00132 void SetPosition(float x[3])
00133 {this->SetPosition(x[0],x[1],x[2]);}
00134 float* GetPosition()
00135 {return this->Cursor3D->GetFocalPoint();}
00136 void GetPosition(float xyz[3])
00137 {this->Cursor3D->GetFocalPoint(xyz);}
00139
00141
00142 void SetOutline(int o)
00143 {this->Cursor3D->SetOutline(o);}
00144 int GetOutline()
00145 {return this->Cursor3D->GetOutline();}
00146 void OutlineOn()
00147 {this->Cursor3D->OutlineOn();}
00148 void OutlineOff()
00149 {this->Cursor3D->OutlineOff();}
00151
00153
00154 void SetXShadows(int o)
00155 {this->Cursor3D->SetXShadows(o);}
00156 int GetXShadows()
00157 {return this->Cursor3D->GetXShadows();}
00158 void XShadowsOn()
00159 {this->Cursor3D->XShadowsOn();}
00160 void XShadowsOff()
00161 {this->Cursor3D->XShadowsOff();}
00163
00165
00166 void SetYShadows(int o)
00167 {this->Cursor3D->SetYShadows(o);}
00168 int GetYShadows()
00169 {return this->Cursor3D->GetYShadows();}
00170 void YShadowsOn()
00171 {this->Cursor3D->YShadowsOn();}
00172 void YShadowsOff()
00173 {this->Cursor3D->YShadowsOff();}
00175
00177
00178 void SetZShadows(int o)
00179 {this->Cursor3D->SetZShadows(o);}
00180 int GetZShadows()
00181 {return this->Cursor3D->GetZShadows();}
00182 void ZShadowsOn()
00183 {this->Cursor3D->ZShadowsOn();}
00184 void ZShadowsOff()
00185 {this->Cursor3D->ZShadowsOff();}
00187
00189
00192 void SetTranslationMode(int mode)
00193 { this->Cursor3D->SetTranslationMode(mode); this->Cursor3D->Update(); }
00194 int GetTranslationMode()
00195 { return this->Cursor3D->GetTranslationMode(); }
00196 void TranslationModeOn()
00197 { this->SetTranslationMode(1); }
00198 void TranslationModeOff()
00199 { this->SetTranslationMode(0); }
00201
00203
00204 void AllOn()
00205 {
00206 this->OutlineOn();
00207 this->XShadowsOn();
00208 this->YShadowsOn();
00209 this->ZShadowsOn();
00210 }
00211 void AllOff()
00212 {
00213 this->OutlineOff();
00214 this->XShadowsOff();
00215 this->YShadowsOff();
00216 this->ZShadowsOff();
00217 }
00219
00221
00223 vtkGetObjectMacro(Property,vtkProperty);
00224 vtkGetObjectMacro(SelectedProperty,vtkProperty);
00226
00228
00232 vtkSetClampMacro(HotSpotSize,float,0.0,1.0);
00233 vtkGetMacro(HotSpotSize,float);
00235
00236 protected:
00237 vtkPointWidget();
00238 ~vtkPointWidget();
00239
00240
00241 friend class vtkLineWidget;
00242
00243 int State;
00244 enum WidgetState
00245 {
00246 Start=0,
00247 Moving,
00248 Scaling,
00249 Translating,
00250 Outside
00251 };
00252
00253
00254
00255 static void ProcessEvents(vtkObject* object,
00256 unsigned long event,
00257 void* clientdata,
00258 void* calldata);
00259
00260
00261 void OnMouseMove();
00262 void OnLeftButtonDown();
00263 void OnLeftButtonUp();
00264 void OnMiddleButtonDown();
00265 void OnMiddleButtonUp();
00266 void OnRightButtonDown();
00267 void OnRightButtonUp();
00268
00269
00270 vtkActor *Actor;
00271 vtkPolyDataMapper *Mapper;
00272 vtkCursor3D *Cursor3D;
00273 void Highlight(int highlight);
00274
00275
00276 vtkCellPicker *CursorPicker;
00277
00278
00279 int ConstraintAxis;
00280 void Translate(double *p1, double *p2);
00281 void Scale(double *p1, double *p2, int X, int Y);
00282 void MoveFocus(double *p1, double *p2);
00283 int TranslationMode;
00284
00285
00286
00287 vtkProperty *Property;
00288 vtkProperty *SelectedProperty;
00289 void CreateDefaultProperties();
00290
00291
00292 float HotSpotSize;
00293 int DetermineConstraintAxis(int constraint, double *x);
00294 int WaitingForMotion;
00295 int WaitCount;
00296
00297 private:
00298 vtkPointWidget(const vtkPointWidget&);
00299 void operator=(const vtkPointWidget&);
00300 };
00301
00302 #endif