00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkContourWidget.h,v $ 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 =========================================================================*/ 00119 #ifndef __vtkContourWidget_h 00120 #define __vtkContourWidget_h 00121 00122 #include "vtkAbstractWidget.h" 00123 00124 class vtkContourRepresentation; 00125 class vtkPolyData; 00126 00127 class VTK_WIDGETS_EXPORT vtkContourWidget : public vtkAbstractWidget 00128 { 00129 public: 00131 static vtkContourWidget *New(); 00132 00134 00135 vtkTypeRevisionMacro(vtkContourWidget,vtkAbstractWidget); 00136 void PrintSelf(ostream& os, vtkIndent indent); 00138 00142 virtual void SetEnabled(int); 00143 00145 00148 void SetRepresentation(vtkContourRepresentation *r) 00149 {this->Superclass::SetWidgetRepresentation(reinterpret_cast<vtkWidgetRepresentation*>(r));} 00151 00153 void CreateDefaultRepresentation(); 00154 00160 virtual void Initialize( vtkPolyData *, int state = 1 ); 00161 00162 protected: 00163 vtkContourWidget(); 00164 ~vtkContourWidget(); 00165 00166 // The state of the widget 00167 //BTX 00168 enum {Start,Define,Manipulate}; 00169 //ETX 00170 00171 int WidgetState; 00172 int CurrentHandle; 00173 00174 // Callback interface to capture events when 00175 // placing the widget. 00176 static void SelectAction(vtkAbstractWidget*); 00177 static void AddFinalPointAction(vtkAbstractWidget*); 00178 static void MoveAction(vtkAbstractWidget*); 00179 static void EndSelectAction(vtkAbstractWidget*); 00180 static void DeleteAction(vtkAbstractWidget*); 00181 static void TranslateContourAction(vtkAbstractWidget*); 00182 static void ScaleContourAction(vtkAbstractWidget*); 00183 00184 // Internal helper methods 00185 void SelectNode(); 00186 void AddNode(); 00187 00188 private: 00189 vtkContourWidget(const vtkContourWidget&); //Not implemented 00190 void operator=(const vtkContourWidget&); //Not implemented 00191 }; 00192 00193 #endif