00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkParallelopipedWidget.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 =========================================================================*/ 00046 #ifndef __vtkParallelopipedWidget_h 00047 #define __vtkParallelopipedWidget_h 00048 00049 #include "vtkAbstractWidget.h" 00050 00051 class vtkParallelopipedRepresentation; 00052 class vtkHandleWidget; 00053 class vtkWidgetSet; 00054 00055 class VTK_WIDGETS_EXPORT vtkParallelopipedWidget : public vtkAbstractWidget 00056 { 00057 //BTX 00058 friend class vtkWidgetSet; 00059 //ETX 00060 public: 00062 static vtkParallelopipedWidget *New(); 00063 00064 vtkTypeMacro(vtkParallelopipedWidget,vtkAbstractWidget); 00065 void PrintSelf(ostream& os, vtkIndent indent); 00066 00071 virtual void SetEnabled(int); 00072 00074 00077 void SetRepresentation(vtkParallelopipedRepresentation *r) 00078 { 00079 this->Superclass::SetWidgetRepresentation( 00080 reinterpret_cast<vtkWidgetRepresentation*>(r)); 00081 } 00083 00085 00087 vtkSetMacro(EnableChairCreation,int); 00088 vtkGetMacro(EnableChairCreation,int); 00089 vtkBooleanMacro(EnableChairCreation,int); 00091 00093 void CreateDefaultRepresentation(); 00094 00097 virtual void SetProcessEvents(int); 00098 00099 protected: 00100 vtkParallelopipedWidget(); 00101 ~vtkParallelopipedWidget(); 00102 00103 static void RequestResizeCallback (vtkAbstractWidget* ); 00104 static void RequestResizeAlongAnAxisCallback (vtkAbstractWidget* ); 00105 static void RequestChairModeCallback (vtkAbstractWidget* ); 00106 static void TranslateCallback (vtkAbstractWidget* ); 00107 static void OnMouseMoveCallback (vtkAbstractWidget* ); 00108 static void OnLeftButtonUpCallback (vtkAbstractWidget* ); 00109 00110 // Control whether chairs can be created 00111 int EnableChairCreation; 00112 00114 void BeginTranslateAction ( vtkParallelopipedWidget *dispatcher); 00115 void TranslateAction ( vtkParallelopipedWidget *dispatcher); 00117 00118 // helper methods for cursor management 00119 void SetCursor(int state); 00120 00121 // To break reference count loops 00122 virtual void ReportReferences(vtkGarbageCollector* collector); 00123 00124 // The positioning handle widgets 00125 vtkHandleWidget **HandleWidgets; 00126 00127 //BTX 00129 00130 enum WidgetEventIds 00131 { 00132 RequestResizeEvent = 10000, 00133 RequestResizeAlongAnAxisEvent, 00134 RequestChairModeEvent 00135 }; 00136 //ETX 00138 00139 vtkWidgetSet* WidgetSet; 00140 00141 private: 00142 vtkParallelopipedWidget(const vtkParallelopipedWidget&); //Not implemented 00143 void operator=(const vtkParallelopipedWidget&); //Not implemented 00144 }; 00145 00146 #endif