refactor using pimpl and fix test

This commit is contained in:
AndreaRigoni
2026-03-25 16:18:07 +00:00
parent a467b7385b
commit 7d4acaef6d
17 changed files with 479 additions and 412 deletions

View File

@@ -2,23 +2,19 @@
#define ULIB_VTK_VIEWPORT_H
#include "uLibVtkInterface.h"
#include <vtkCornerAnnotation.h>
#include <vtkOrientationMarkerWidget.h>
#include <vtkRenderer.h>
#include <vtkSmartPointer.h>
#include <vtkVersion.h>
#include <vtkRenderer.h>
#include <vtkCornerAnnotation.h>
#include <vtkOrientationMarkerWidget.h>
#include <vtkCameraOrientationWidget.h>
#include <vtkNamedColors.h>
#include <vtkAxes.h>
#include <vtkAxesActor.h>
#include <vtkPlaneSource.h>
#include <vtkActor.h>
#include <vtkCellPicker.h>
#include <vector>
// VTK classes are in the global namespace
class vtkRenderer;
class vtkCornerAnnotation;
class vtkOrientationMarkerWidget;
class vtkCameraOrientationWidget;
class vtkPlaneSource;
class vtkActor;
class vtkAxes;
class vtkNamedColors;
class vtkCellPicker;
class vtkCallbackCommand;
class vtkProp;
class vtk3DWidget;
class vtkRenderWindow;
@@ -28,6 +24,7 @@ class vtkCamera;
namespace uLib {
namespace Vtk {
struct ViewportData;
class vtkHandlerWidget;
/**
@@ -56,11 +53,11 @@ public:
void AddWidget(vtk3DWidget *widget);
// Direct access to VTK internals
vtkRenderer* GetRenderer() { return m_Renderer; }
vtkRenderer* GetRenderer();
virtual vtkRenderWindow* GetRenderWindow() = 0;
virtual vtkRenderWindowInteractor* GetInteractor() = 0;
vtkCornerAnnotation* GetAnnotation() { return m_Annotation; }
vtkCameraOrientationWidget* GetCameraWidget(){ return m_CameraWidget; }
vtkCornerAnnotation* GetAnnotation();
vtkCameraOrientationWidget* GetCameraWidget();
const std::vector<Puppet*>& getPuppets() const { return m_Puppets; }
// Grid control
@@ -76,23 +73,9 @@ protected:
void UpdateGrid();
vtkSmartPointer<vtkRenderer> m_Renderer;
vtkSmartPointer<vtkCornerAnnotation> m_Annotation;
vtkSmartPointer<vtkOrientationMarkerWidget> m_Marker;
vtkSmartPointer<vtkCameraOrientationWidget> m_CameraWidget;
vtkSmartPointer<vtkPlaneSource> m_GridSource;
vtkSmartPointer<vtkActor> m_GridActor;
vtkSmartPointer<vtkAxes> m_OriginAxes;
vtkSmartPointer<vtkActor> m_OriginAxesActor;
vtkSmartPointer<vtkNamedColors> m_Colors;
struct ViewportData *d;
Axis m_GridAxis;
vtkSmartPointer<vtkHandlerWidget> m_HandlerWidget;
std::vector<Puppet*> m_Puppets;
vtkSmartPointer<vtkCellPicker> m_Picker;
vtkSmartPointer<vtkCallbackCommand> m_KeyCallback;
};
} // namespace Vtk