split viewport for Qt and VtkViewer

This commit is contained in:
AndreaRigoni
2026-03-17 15:29:07 +00:00
parent 4569407d18
commit e6e0bccffb
7 changed files with 345 additions and 233 deletions

View File

@@ -26,80 +26,49 @@
#ifndef ULIBVTKVIEWER_H
#define ULIBVTKVIEWER_H
#include "uLibVtkInterface.h"
#include <iostream>
#include <vtkCornerAnnotation.h>
#include <vtkOrientationMarkerWidget.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkSmartPointer.h>
class vtkProp;
class vtk3DWidget;
class vtkCornerAnnotation;
class vtkRenderWindowInteractor;
class vtkRenderer;
class vtkCameraOrientationWidget;
#include "vtkViewport.h"
namespace uLib {
namespace Vtk {
template <class T> class Tie {
public:
void DoAction() {
std::cout << "Tie::DoAction -> generic Tie does nothing\n";
}
};
// template <class T> class Tie {
// public:
// void DoAction() {
// std::cout << "Tie::DoAction -> generic Tie does nothing\n";
// }
// };
class Viewer {
class Viewer : public Viewport {
public:
Viewer();
~Viewer();
virtual ~Viewer();
void AddPuppet(Puppet &prop);
void RemovePuppet(Puppet &prop);
void AddWidget(vtk3DWidget *widget);
// Render scene
virtual void Render() override;
static vtkSmartPointer<vtkCameraOrientationWidget>
MakeCameraOrientationWidget(vtkRenderWindowInteractor *interactor,
vtkRenderer *renderer);
void Reset();
void ZoomAuto();
vtkRenderer *renderer);
void Start();
vtkCornerAnnotation *GetAnnotation();
vtkRenderer *GetRenderer();
vtkRenderWindow *GetRenderWindow();
vtkRenderWindowInteractor *GetInteractor();
vtkCameraOrientationWidget *GetCameraWidget();
void addProp(vtkProp *prop);
void RemoveProp(vtkProp *prop);
virtual vtkRenderWindow *GetRenderWindow() override;
virtual vtkRenderWindowInteractor *GetInteractor() override;
private:
void InstallPipe();
void UninstallPipe();
vtkRenderer *m_Renderer;
vtkRenderWindow *m_RenderWindow;
vtkCornerAnnotation *m_Annotation;
vtkOrientationMarkerWidget *m_Marker;
vtkCameraOrientationWidget *m_CameraWidget;
};
template <> class Tie<Viewer> {
public:
void DoAction() { std::cout << " VIEWER TIE !!! \n"; }
};
// template <> class Tie<Viewer> {
// public:
// void DoAction() { std::cout << " VIEWER TIE !!! \n"; }
// };
} // namespace Vtk
} // namespace uLib