VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkBoxWidget2.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00101 #ifndef __vtkBoxWidget2_h 00102 #define __vtkBoxWidget2_h 00103 00104 #include "vtkAbstractWidget.h" 00105 00106 class vtkBoxRepresentation; 00107 class vtkHandleWidget; 00108 00109 00110 class VTK_WIDGETS_EXPORT vtkBoxWidget2 : public vtkAbstractWidget 00111 { 00112 public: 00114 static vtkBoxWidget2 *New(); 00115 00117 00118 vtkTypeMacro(vtkBoxWidget2,vtkAbstractWidget); 00119 void PrintSelf(ostream& os, vtkIndent indent); 00121 00123 00126 void SetRepresentation(vtkBoxRepresentation *r) 00127 {this->Superclass::SetWidgetRepresentation(reinterpret_cast<vtkWidgetRepresentation*>(r));} 00129 00131 00133 vtkSetMacro(TranslationEnabled,int); 00134 vtkGetMacro(TranslationEnabled,int); 00135 vtkBooleanMacro(TranslationEnabled,int); 00136 vtkSetMacro(ScalingEnabled,int); 00137 vtkGetMacro(ScalingEnabled,int); 00138 vtkBooleanMacro(ScalingEnabled,int); 00139 vtkSetMacro(RotationEnabled,int); 00140 vtkGetMacro(RotationEnabled,int); 00141 vtkBooleanMacro(RotationEnabled,int); 00143 00146 void CreateDefaultRepresentation(); 00147 00148 protected: 00149 vtkBoxWidget2(); 00150 ~vtkBoxWidget2(); 00151 00152 //BTX - manage the state of the widget 00153 int WidgetState; 00154 enum _WidgetState {Start=0,Active}; 00155 //ETX 00156 00157 // These methods handle events 00158 static void SelectAction(vtkAbstractWidget*); 00159 static void EndSelectAction(vtkAbstractWidget*); 00160 static void TranslateAction(vtkAbstractWidget*); 00161 static void ScaleAction(vtkAbstractWidget*); 00162 static void MoveAction(vtkAbstractWidget*); 00163 00164 // Control whether scaling, rotation, and translation are supported 00165 int TranslationEnabled; 00166 int ScalingEnabled; 00167 int RotationEnabled; 00168 private: 00169 vtkBoxWidget2(const vtkBoxWidget2&); //Not implemented 00170 void operator=(const vtkBoxWidget2&); //Not implemented 00171 }; 00172 00173 #endif