refactor: migrate vtk classes to use ObjectWrapper for model management and update registration logic

This commit is contained in:
AndreaRigoni
2026-04-09 10:38:45 +00:00
parent 64a87e97e3
commit db76513e79
27 changed files with 479 additions and 349 deletions

View File

@@ -26,15 +26,16 @@
#ifndef U_VTKVOXIMAGE_H
#define U_VTKVOXIMAGE_H
#include <vtkAssembly.h>
#include <vtkCubeSource.h>
#include <vtkImageData.h>
#include <vtkVolume.h>
#include <vtkXMLImageDataReader.h>
#include <vtkXMLImageDataWriter.h>
#include <vtkAssembly.h>
#include <Math/VoxImage.h>
#include "Core/ObjectFactory.h"
#include "Vtk/uLibVtkInterface.h"
class vtkImageData;
@@ -45,18 +46,21 @@ class vtkPiecewiseFunction;
namespace uLib {
namespace Vtk {
class VoxImage : public Prop3D {
class VoxImage : public Prop3D,
public uLib::ObjectWrapper<uLib::Abstract::VoxImage> {
public:
typedef Abstract::VoxImage Content;
VoxImage(Content &content);
VoxImage(Content *content);
~VoxImage();
void UpdateFromContent();
void UpdateToContent();
uLib::Object* GetContent() const override { return (uLib::Object*)&m_Content; }
uLib::Object *GetContent() const override {
return (uLib::Object *)m_model.get();
}
vtkProp3D *GetProp() override { return m_Asm; }
@@ -74,7 +78,8 @@ public:
void Update() override;
void SyncFromVtk() override;
void serialize_display(uLib::Archive::display_properties_archive & ar, const unsigned int version = 0) override;
void serialize_display(uLib::Archive::display_properties_archive &ar,
const unsigned int version = 0) override;
protected:
void InstallPipe();
@@ -90,7 +95,7 @@ private:
vtkXMLImageDataReader *m_Reader;
vtkXMLImageDataWriter *m_Writer;
VoxImage::Content &m_Content;
// ObjectWrapper provides m_model
float m_Window;
float m_Level;