add vtkHandlerWidget
This commit is contained in:
@@ -35,9 +35,10 @@
|
||||
// Forward declarations of VTK classes in global namespace
|
||||
class vtkActor;
|
||||
class vtkCallbackCommand;
|
||||
class vtkPropPicker;
|
||||
class vtkCellPicker;
|
||||
class vtkTransform;
|
||||
class vtkObject;
|
||||
class vtkPlane;
|
||||
class vtkRenderWindowInteractor;
|
||||
|
||||
namespace uLib {
|
||||
@@ -73,9 +74,22 @@ public:
|
||||
ROT_Z,
|
||||
SCALE_X,
|
||||
SCALE_Y,
|
||||
SCALE_Z
|
||||
SCALE_Z,
|
||||
ROT_CAM
|
||||
};
|
||||
|
||||
enum ReferenceFrame {
|
||||
GLOBAL = 0,
|
||||
LOCAL,
|
||||
CENTER,
|
||||
CENTER_LOCAL,
|
||||
NORMAL, // Not implemented
|
||||
PARENT // Not implemented
|
||||
};
|
||||
|
||||
void SetReferenceFrame(ReferenceFrame frame);
|
||||
ReferenceFrame GetReferenceFrame() const { return this->m_Frame; }
|
||||
|
||||
using ::vtk3DWidget::PlaceWidget;
|
||||
virtual void PlaceWidget(double bounds[6]) override;
|
||||
virtual void PlaceWidget() override;
|
||||
@@ -87,17 +101,27 @@ public:
|
||||
protected:
|
||||
void CreateGizmos();
|
||||
void UpdateGizmoPosition();
|
||||
void Highlight(::vtkProp *prop);
|
||||
|
||||
vtkSmartPointer<::vtkRenderer> m_OverlayRenderer;
|
||||
ReferenceFrame m_Frame;
|
||||
|
||||
int Interaction;
|
||||
::vtkProp *m_HighlightedProp;
|
||||
double m_OriginalColor[3];
|
||||
|
||||
// Visual components //
|
||||
vtkSmartPointer<::vtkActor> m_AxesX, m_AxesY, m_AxesZ; // Arrows
|
||||
vtkSmartPointer<::vtkActor> m_RotX, m_RotY, m_RotZ; // Rings
|
||||
vtkSmartPointer<::vtkActor> m_RotCam; // Camera ring
|
||||
vtkSmartPointer<::vtkActor> m_ScaleX, m_ScaleY, m_ScaleZ; // Cubes
|
||||
|
||||
vtkSmartPointer<::vtkPropPicker> m_Picker;
|
||||
vtkSmartPointer<::vtkPlane> m_ClipPlane;
|
||||
|
||||
vtkSmartPointer<::vtkCellPicker> m_Picker;
|
||||
|
||||
double StartEventPosition[2];
|
||||
double m_StartPickPosition[3];
|
||||
vtkSmartPointer<::vtkTransform> m_InitialTransform;
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user