refactor: migrate vtk classes to use ObjectWrapper for model management and update registration logic
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user