You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.5 KiB
C++
89 lines
2.5 KiB
C++
#ifndef FITKTransformWidget_h
|
|
#define FITKTransformWidget_h
|
|
|
|
#include "vtkAbstractWidget.h"
|
|
|
|
#include "FITKVTKAlgorithmAPI.h"
|
|
|
|
class FITKTransformRepresentation;
|
|
class vtkHandleWidget;
|
|
|
|
class FITKVTKALGORITHMAPI FITKTransformWidget : public vtkAbstractWidget
|
|
{
|
|
public:
|
|
/**
|
|
* Instantiate the object.
|
|
*/
|
|
static FITKTransformWidget* New();
|
|
|
|
//@{
|
|
/**
|
|
* Standard class methods for type information and printing.
|
|
*/
|
|
vtkTypeMacro(FITKTransformWidget, vtkAbstractWidget);
|
|
void PrintSelf(ostream& os, vtkIndent indent) override;
|
|
//@}
|
|
|
|
/**
|
|
* Specify an instance of vtkWidgetRepresentation used to represent this
|
|
* widget in the scene. Note that the representation is a subclass of vtkProp
|
|
* so it can be added to the renderer independent of the widget.
|
|
*/
|
|
void SetRepresentation(FITKTransformRepresentation* r)
|
|
{
|
|
this->Superclass::SetWidgetRepresentation(reinterpret_cast<vtkWidgetRepresentation*>(r));
|
|
}
|
|
|
|
//@{
|
|
/**
|
|
* Control the behavior of the widget
|
|
*/
|
|
vtkSetMacro(TranslationEnabled, vtkTypeBool);
|
|
vtkGetMacro(TranslationEnabled, vtkTypeBool);
|
|
vtkBooleanMacro(TranslationEnabled, vtkTypeBool);
|
|
//@}
|
|
|
|
/**
|
|
* Create the default widget representation if one is not set. By default,
|
|
* this is an instance of the FITKTransformRepresentation class.
|
|
*/
|
|
void CreateDefaultRepresentation() override;
|
|
|
|
/**
|
|
* Override superclasses' SetEnabled() method because the line
|
|
* widget must enable its internal handle widgets.
|
|
*/
|
|
void SetEnabled(int enabling) override;
|
|
|
|
protected:
|
|
FITKTransformWidget();
|
|
~FITKTransformWidget() override;
|
|
|
|
// Manage the state of the widget
|
|
int WidgetState;
|
|
enum _WidgetState
|
|
{
|
|
Start = 0,
|
|
Active
|
|
};
|
|
|
|
// These methods handle events
|
|
static void SelectAction(vtkAbstractWidget*);
|
|
static void EndSelectAction(vtkAbstractWidget*);
|
|
static void TranslateAction(vtkAbstractWidget*);
|
|
static void MoveAction(vtkAbstractWidget*);
|
|
static void SelectAction3D(vtkAbstractWidget*);
|
|
static void EndSelectAction3D(vtkAbstractWidget*);
|
|
static void MoveAction3D(vtkAbstractWidget*);
|
|
static void StepAction3D(vtkAbstractWidget*);
|
|
|
|
// Control whether scaling, rotation, and translation are supported
|
|
vtkTypeBool TranslationEnabled;
|
|
|
|
private:
|
|
FITKTransformWidget(const FITKTransformWidget&) = delete;
|
|
void operator=(const FITKTransformWidget&) = delete;
|
|
};
|
|
|
|
#endif
|