From 621084fbfc011c46a51524b33b6f2ec6dbd1361b Mon Sep 17 00:00:00 2001 From: Paolo Andreetto Date: Wed, 7 Aug 2019 09:10:36 +0000 Subject: [PATCH] Removed dependencies from Core lib --- CMakeLists.txt | 69 --------------- src/Math/BitCode.h | 6 +- src/Math/Dense.cpp | 4 +- src/Math/Dense.h | 21 ++--- src/Math/Geometry.h | 1 - src/Math/Quote.h | 6 +- src/Math/StructuredData.h | 5 +- src/Math/StructuredGrid.h | 1 - src/Math/TriangleMesh.h | 5 +- src/Math/VoxImageFilter.h | 3 +- src/Math/VoxImageFilterCustom.hpp | 3 +- src/Math/VoxImageFilterUser.cpp | 1 - src/Math/VoxRaytracer.cpp | 2 + src/Math/VoxRaytracer.h | 5 +- src/Math/testing/VoxRaytracerTest.cpp | 2 +- src/Vtk/testing/CMakeLists.txt | 5 ++ src/Vtk/uLibVtkInterface.h | 18 +--- src/Vtk/uLibVtkViewer.h | 1 + src/Vtk/vtkVoxImage.cpp | 120 +++++++++----------------- src/Vtk/vtkVoxImage.h | 45 ++++++---- 20 files changed, 104 insertions(+), 219 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 42df1af..a06893f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,7 +56,6 @@ include(uLibConfigHeader) set(ULIB_SELECTED_MODULES Core Math - Root Detectors ) @@ -91,75 +90,10 @@ foreach(module ${ULIB_SELECTED_MODULES}) add_subdirectory(${SRC_DIR}/${module}) endforeach(module) -## SINGLE LIBRARY LINKING ## (work in progress ... ) -option(ULIB_SINGLELIBRARY "Link everything to a single library" OFF) -if(ULIB_SINGLELIBRARY) -# set(modgrp) -# foreach(module ${ULIB_SELECTED_MODULES}) -# set(grpn srcgrp_${module}) -# list(APPEND modgrp ${grpn}) -# endforeach(module) -# add_library(${project_name} SHARED ${srcgrp_Core}) -endif(ULIB_SINGLELIBRARY) - ## UTILITIES ## add_subdirectory("${SRC_DIR}/utils/make_recipe") -## PKG CONFIG compatible file ----------------------------------------------- ## - -set(PKGCONFIG_FILE_ENABLE OFF CACHE BOOL "enable pkg-config file") -if(PKGCONFIG_FILE_ENABLE) -message("/////////// PKG-CONFIG DISTILLER //////////////") -set(PKGCONFIG_FILE_DESTDIR "/lib/pkgconfig/" CACHE PATH "destination path for pkg-config file") -set(PKGCONFIG_LIBS) - -message(STATUS "[cflags] ${CMAKE_C_FLAGS}") -message(STATUS "[cxxflags] ${CMAKE_CXX_FLAGS}") - -foreach(module ${ULIB_SHARED_LIBRARIES}) -set(PKGCONFIG_LIBS "${PKGCONFIG_LIBS} ${CMAKE_LINK_LIBRARY_FLAG}${module}") -endforeach(module) -message(STATUS "[libs] ${PKGCONFIG_LIBS}") - -set(PKGCONFIG_FLAGS) -#add_custom_target(Dummy) - -# add the executable -uLib_add_target(Dummy test.cpp) -target_link_libraries(Dummy ${PACKAGE_LIBPREFIX}Core) -target_link_libraries(Dummy ${Boost_SERIALIZATION_LIBRARY}) -target_link_libraries(Dummy ${Boost_SIGNALS_LIBRARY}) -target_link_libraries(Dummy ${Boost_PROGRAM_OPTIONS_LIBRARY}) -target_link_libraries(Dummy ${Geant4_LIBRARIES}) -target_link_libraries(Dummy ${ROOT_LIBRARIES}) -target_link_libraries(Dummy ${VTK_LIBRARIES}) - -get_gcc_compile_flags(Dummy, gcc_flags_list) -foreach(item ${gcc_flags_list}) - message(STATUS "[gcc cflags] ${item}") - set(PKGCONFIG_FLAGS "${PKGCONFIG_FLAGS} ${item}") -endforeach(item) -message(STATUS "[includes] ${PKGCONFIG_FLAGS}") - -get_gcc_link_flags(Dummy, gcc_flags_list) -foreach(item ${gcc_flags_list}) - message(STATUS "[gcc libs] ${item}") -endforeach(item) - -configure_file( - "${PROJECT_SOURCE_DIR}/CMakePkgConfig.pc.in" - "${PROJECT_BINARY_DIR}/libmutom-${PACKAGE_VERSION}.pc" - ) -INSTALL_FILES(${PKGCONFIG_FILE_DESTDIR} FILES ${PROJECT_BINARY_DIR}/libmutom-${PACKAGE_VERSION}.pc) - -message("///////////////////////////////////////////") -endif(PKGCONFIG_FILE_ENABLE) - - - - - ## INSTALLS AND EXPORTS ----------------------------------------------------- ## #export(PACKAGE uLib) @@ -187,12 +121,9 @@ configure_file(uLibConfigVersion.cmake.in install(FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/uLibConfig.cmake" "${PROJECT_BINARY_DIR}/uLibConfigVersion.cmake" - "${PROJECT_SOURCE_DIR}/CMake/FindEigen3.cmake" "${PROJECT_SOURCE_DIR}/CMake/FindReadLine.cmake" "${PROJECT_SOURCE_DIR}/CMake/FindROOT.cmake" "${PROJECT_SOURCE_DIR}/CMake/FindROOTv6.cmake" - "${PROJECT_SOURCE_DIR}/CMake/FinduLib.cmake" - "${PROJECT_SOURCE_DIR}/CMake/FindVTK.cmake" "${PROJECT_SOURCE_DIR}/CMake/uLibCommon.cmake" "${PROJECT_SOURCE_DIR}/CMake/uLibConfigHeader.cmake" "${PROJECT_SOURCE_DIR}/CMake/uLibDebugMacro.cmake" diff --git a/src/Math/BitCode.h b/src/Math/BitCode.h index 97fd7c0..565c6da 100644 --- a/src/Math/BitCode.h +++ b/src/Math/BitCode.h @@ -29,13 +29,11 @@ #include #include -//#include -#include - -#include #include #include +#include + namespace uLib { diff --git a/src/Math/Dense.cpp b/src/Math/Dense.cpp index 22c50e5..76f3f59 100644 --- a/src/Math/Dense.cpp +++ b/src/Math/Dense.cpp @@ -27,8 +27,8 @@ #include "Dense.h" -#include "Core/Archives.h" +#ifdef ULIB_SERIALIZATION_ON ULIB_SERIALIZE(uLib::HPoint3f) { ar & boost::serialization::make_nvp(NULL,boost::serialization::base_object(ob)); } @@ -48,5 +48,5 @@ ULIB_SERIALIZE(uLib::HError3f) { ar & "HLine -> ( poserr: " & AR(position_error) & "; direrr: " & AR(direction_error) & ") "; } - +#endif // ULIB_SERIALIZATION_ON diff --git a/src/Math/Dense.h b/src/Math/Dense.h index 3912610..8cd5bd2 100644 --- a/src/Math/Dense.h +++ b/src/Math/Dense.h @@ -26,25 +26,25 @@ -/* +/* * * Copyright (C) 2012 Andrea Rigoni Garola - * + * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of the * License, or (at your option) any later version. - * + * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA - * + * */ @@ -54,9 +54,6 @@ #include #include -#include "Core/Types.h" -#include "Core/Serializable.h" - //// BOOST SERIALIZATION /////////////////////////////////////////////////////// @@ -109,6 +106,7 @@ std::ostream & operator << (std::ostream &os, const Eigen::Matrix &vec namespace uLib { +typedef id_t Id_t; typedef int Scalari; typedef unsigned int Scalarui; @@ -199,7 +197,7 @@ public: _HPoint3f

(Vector3f &in) : BaseClass(in.homogeneous()) { this->operator()(3) = p; } void operator delete(void* _p, size_t _s) {} - + // This constructor allows to construct MyVectorType from Eigen expressions template inline _HPoint3f

(const Eigen::MatrixBase& other) @@ -264,6 +262,9 @@ operator<< (std::ostream& stream, const HError3f &err) { //////////////////////////////////////////////////////////////////////////////// // SERIALIZTION // +#ifdef ULIB_SERIALIZATION_ON +#include "Core/Serializable.h" + ULIB_SERIALIZABLE(uLib::HPoint3f) ULIB_SERIALIZABLE(uLib::HVector3f) @@ -272,7 +273,7 @@ ULIB_SERIALIZABLE(uLib::HVector3f) ULIB_SERIALIZABLE(uLib::HLine3f) ULIB_SERIALIZABLE(uLib::HError3f) - +#endif // ULIB_SERIALIZATION_ON diff --git a/src/Math/Geometry.h b/src/Math/Geometry.h index c2c9912..5c78cf6 100644 --- a/src/Math/Geometry.h +++ b/src/Math/Geometry.h @@ -28,7 +28,6 @@ #ifndef U_GEOMETRY_H #define U_GEOMETRY_H -#include "Core/Object.h" #include "Math/Dense.h" #include "Math/Transform.h" diff --git a/src/Math/Quote.h b/src/Math/Quote.h index f10f042..3f257ae 100644 --- a/src/Math/Quote.h +++ b/src/Math/Quote.h @@ -32,11 +32,11 @@ namespace uLib { -class Quote : public Vector2f { +class Quote : public Vector2f +{ public: - - uLibRefMacro(Offset,Scalarf); + inline Scalarf& Offset() { return this->m_Offset; } private: Scalarf m_Offset; diff --git a/src/Math/StructuredData.h b/src/Math/StructuredData.h index 56a8f38..9fa7c5f 100644 --- a/src/Math/StructuredData.h +++ b/src/Math/StructuredData.h @@ -28,14 +28,12 @@ #ifndef STRUCTUREDDATA_H #define STRUCTUREDDATA_H -#include "Core/Object.h" #include "Math/Dense.h" namespace uLib { -class StructuredData : public Object { +class StructuredData { public: - typedef Object BaseClass; enum _Order { CustomOrder = 0, @@ -52,7 +50,6 @@ public: StructuredData(const Vector3i &size); StructuredData(const StructuredData ©) : - BaseClass(copy), m_DataOrder(copy.m_DataOrder), m_Dims(copy.m_Dims), m_Increments(copy.m_Increments) diff --git a/src/Math/StructuredGrid.h b/src/Math/StructuredGrid.h index a389332..7646a8d 100644 --- a/src/Math/StructuredGrid.h +++ b/src/Math/StructuredGrid.h @@ -28,7 +28,6 @@ #ifndef U_MATH_STRUCTUREDGRID_H #define U_MATH_STRUCTUREDGRID_H -#include "Core/Object.h" #include "Math/ContainerBox.h" #include "Math/StructuredData.h" diff --git a/src/Math/TriangleMesh.h b/src/Math/TriangleMesh.h index 58b5c15..70d6fe9 100644 --- a/src/Math/TriangleMesh.h +++ b/src/Math/TriangleMesh.h @@ -30,13 +30,12 @@ #include -#include "Core/Object.h" #include "Math/Dense.h" namespace uLib { -class TriangleMesh : public Object { - +class TriangleMesh +{ public: void PrintSelf(std::ostream &o); diff --git a/src/Math/VoxImageFilter.h b/src/Math/VoxImageFilter.h index 47958fe..77b9260 100644 --- a/src/Math/VoxImageFilter.h +++ b/src/Math/VoxImageFilter.h @@ -29,7 +29,6 @@ #define VOXIMAGEFILTER_H #include "Core/StaticInterface.h" -#include "Core/Object.h" #include "Math/Dense.h" #include "Math/VoxImage.h" @@ -64,7 +63,7 @@ protected: template < typename VoxelT, typename AlgorithmT > -class VoxImageFilter : public Abstract::VoxImageFilter, public Object +class VoxImageFilter : public Abstract::VoxImageFilter { public: diff --git a/src/Math/VoxImageFilterCustom.hpp b/src/Math/VoxImageFilterCustom.hpp index a0cb60c..ad9f402 100644 --- a/src/Math/VoxImageFilterCustom.hpp +++ b/src/Math/VoxImageFilterCustom.hpp @@ -28,6 +28,7 @@ #ifndef VOXIMAGEFILTERCUSTOM_HPP #define VOXIMAGEFILTERCUSTOM_HPP +#include "Core/Macros.h" #include #include "Math/VoxImage.h" #include "VoxImageFilter.h" @@ -76,7 +77,7 @@ public: } - uLibSetMacro(CustomEvaluate,FunctionPt) + inline void SetCustomEvaluate(FunctionPt funPt) { this->m_CustomEvaluate = funPt; } private: FunctionPt m_CustomEvaluate; diff --git a/src/Math/VoxImageFilterUser.cpp b/src/Math/VoxImageFilterUser.cpp index d82fe21..0d7fa39 100644 --- a/src/Math/VoxImageFilterUser.cpp +++ b/src/Math/VoxImageFilterUser.cpp @@ -26,7 +26,6 @@ -#include "Core/Vector.h" #include "Dense.h" #include "VoxImage.h" #include "VoxImageFilterUser.h" diff --git a/src/Math/VoxRaytracer.cpp b/src/Math/VoxRaytracer.cpp index c5791c4..76ee855 100644 --- a/src/Math/VoxRaytracer.cpp +++ b/src/Math/VoxRaytracer.cpp @@ -29,6 +29,8 @@ #include "VoxRaytracer.h" #include "Utils.h" +#include "Core/Macros.h" + inline float fast_sign(float f) { return 1 - 2 * (f < 0); } namespace uLib { diff --git a/src/Math/VoxRaytracer.h b/src/Math/VoxRaytracer.h index a7660c1..39ea821 100644 --- a/src/Math/VoxRaytracer.h +++ b/src/Math/VoxRaytracer.h @@ -51,8 +51,9 @@ public: void AppendRay ( const RayData &in); - uLibConstRefMacro(Data,std::vector) - uLibConstRefMacro(TotalLength,Scalarf) + inline const std::vector& Data() const { return this->m_Data; } + + inline const Scalarf& TotalLength() const { return this->m_TotalLength; } void PrintSelf(std::ostream &o); diff --git a/src/Math/testing/VoxRaytracerTest.cpp b/src/Math/testing/VoxRaytracerTest.cpp index 79a7a1d..af46a82 100644 --- a/src/Math/testing/VoxRaytracerTest.cpp +++ b/src/Math/testing/VoxRaytracerTest.cpp @@ -94,7 +94,7 @@ int main() TEST1( pt == HPoint3f(-3,-3,-3) ); Raytracer::RayData rdata = ray.TraceBetweenPoints(HPoint3f(-3,-3,-3), HPoint3f(3,3,3)); - foreach (const Raytracer::RayData::Element &el, rdata.Data()) + for(const Raytracer::RayData::Element &el : rdata.Data()) { std::cout << " " << el.vox_id << " , " << el.L << "\n"; } diff --git a/src/Vtk/testing/CMakeLists.txt b/src/Vtk/testing/CMakeLists.txt index 33a3847..66f7c98 100644 --- a/src/Vtk/testing/CMakeLists.txt +++ b/src/Vtk/testing/CMakeLists.txt @@ -9,5 +9,10 @@ set( TESTS # vtkTriangleMeshTest ) +set(LIBRARIES + ${PACKAGE_LIBPREFIX}Core + ${PACKAGE_LIBPREFIX}Vtk +) + include(${VTK_USE_FILE}) uLib_add_tests(${uLib-module}) diff --git a/src/Vtk/uLibVtkInterface.h b/src/Vtk/uLibVtkInterface.h index e9d13a2..4dd9e00 100644 --- a/src/Vtk/uLibVtkInterface.h +++ b/src/Vtk/uLibVtkInterface.h @@ -33,8 +33,6 @@ #include #include -#include - // vtk classes forward declaration // @@ -48,22 +46,8 @@ class vtkRendererCollection; namespace uLib { namespace Vtk { - - -//template -//class Tie { - -//public: -// typedef T Content; - - -//}; - - - -class Puppet : public Object +class Puppet { - uLibTypeMacro(Puppet, Object) public: Puppet(); ~Puppet(); diff --git a/src/Vtk/uLibVtkViewer.h b/src/Vtk/uLibVtkViewer.h index cc9e8a9..99f796b 100644 --- a/src/Vtk/uLibVtkViewer.h +++ b/src/Vtk/uLibVtkViewer.h @@ -28,6 +28,7 @@ #ifndef ULIBVTKVIEWER_H #define ULIBVTKVIEWER_H +#include #include "uLibVtkInterface.h" diff --git a/src/Vtk/vtkVoxImage.cpp b/src/Vtk/vtkVoxImage.cpp index 806ec68..4c6f134 100644 --- a/src/Vtk/vtkVoxImage.cpp +++ b/src/Vtk/vtkVoxImage.cpp @@ -63,53 +63,8 @@ namespace uLib { namespace Vtk { -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// PIMPL -class vtkVoxImagePimpl { -public: - vtkVoxImagePimpl(vtkVoxImage::Content &content) : - m_Content(content), - m_Actor(vtkVolume::New()), - m_Image(vtkImageData::New()), - m_Outline(vtkCubeSource::New()), - m_Reader(NULL), - m_Writer(NULL) - {} - - ~vtkVoxImagePimpl() - { - m_Image->Delete(); - m_Actor->Delete(); - m_Outline->Delete(); - } - - void GetContent(); - - void SetContent(); - - // members // - vtkVolume *m_Actor; - vtkImageData *m_Image; - vtkCubeSource *m_Outline; - - // io // - vtkXMLImageDataReader *m_Reader; - vtkXMLImageDataWriter *m_Writer; - - // content // - vtkVoxImage::Content &m_Content; - - // visual // - float m_Window; - float m_Level; -}; - - - -void vtkVoxImagePimpl::GetContent() +void vtkVoxImage::GetContent() { // ULIB -> VTK // const int *dims = static_cast(m_Content.GetDims().data()); @@ -139,7 +94,7 @@ void vtkVoxImagePimpl::GetContent() // m_Image->Update(); } -void vtkVoxImagePimpl::SetContent() +void vtkVoxImage::SetContent() { // VTK -> ULIB // int *ext = m_Image->GetExtent(); @@ -181,22 +136,29 @@ void vtkVoxImagePimpl::SetContent() // VTK VOXIMAGE vtkVoxImage::vtkVoxImage(Content &content) : - d(new vtkVoxImagePimpl(content)) -{ - init_properties(); - d->GetContent(); + m_Content(content), + m_Actor(vtkVolume::New()), + m_Image(vtkImageData::New()), + m_Outline(vtkCubeSource::New()), + m_Reader(NULL), + m_Writer(NULL), + writer_factor(1.E6) +{ + GetContent(); InstallPipe(); } vtkVoxImage::~vtkVoxImage() { - delete d; + m_Image->Delete(); + m_Actor->Delete(); + m_Outline->Delete(); } vtkImageData *vtkVoxImage::GetImageData() { - d->GetContent(); - return d->m_Image; + GetContent(); + return m_Image; } void vtkVoxImage::SaveToXMLFile(const char *fname) @@ -204,16 +166,16 @@ void vtkVoxImage::SaveToXMLFile(const char *fname) vtkSmartPointer writer = vtkSmartPointer::New(); writer->SetFileName(fname); - d->GetContent(); + GetContent(); vtkSmartPointer vtkscale = vtkSmartPointer::New(); # if VTK_MAJOR_VERSION <= 5 - vtkscale->SetInputConnection(d->m_Image->GetProducerPort()); + vtkscale->SetInputConnection(m_Image->GetProducerPort()); # else - vtkscale->SetInputData(d->m_Image); + vtkscale->SetInputData(m_Image); # endif - vtkscale->SetScale(p().writer_factor); + vtkscale->SetScale(writer_factor); vtkscale->Update(); writer->SetInputConnection(vtkscale->GetOutputPort()); writer->Update(); @@ -225,22 +187,22 @@ void vtkVoxImage::ReadFromVKTFile(const char *fname) vtkSmartPointer reader = vtkSmartPointer::New(); reader->SetFileName(fname); - reader->Update(); + reader->Update(); if(reader->IsFileStructuredPoints()) { vtkSmartPointer vtkscale = vtkSmartPointer::New(); vtkscale->SetInputConnection(reader->GetOutputPort()); - vtkscale->SetScale(1/p().writer_factor); + vtkscale->SetScale(1/writer_factor); vtkscale->Update(); - d->m_Image->DeepCopy(vtkscale->GetOutput()); // FIX! (pipe connection) - d->SetContent(); + m_Image->DeepCopy(vtkscale->GetOutput()); // FIX! (pipe connection) + SetContent(); } else { std::cerr << "Error: file does not contain structured points\n"; } - d->m_Actor->Update(); + m_Actor->Update(); } void vtkVoxImage::ReadFromXMLFile(const char *fname) @@ -252,25 +214,25 @@ void vtkVoxImage::ReadFromXMLFile(const char *fname) vtkSmartPointer vtkscale = vtkSmartPointer::New(); vtkscale->SetInputConnection(reader->GetOutputPort()); - vtkscale->SetScale(1/p().writer_factor); + vtkscale->SetScale(1/writer_factor); vtkscale->Update(); - d->m_Image->DeepCopy(vtkscale->GetOutput()); - d->SetContent(); + m_Image->DeepCopy(vtkscale->GetOutput()); + SetContent(); } void vtkVoxImage::setShadingPreset(int blendType) { vtkSmartVolumeMapper *mapper = - (vtkSmartVolumeMapper *)d->m_Actor->GetMapper(); - vtkVolumeProperty *property = d->m_Actor->GetProperty(); + (vtkSmartVolumeMapper *)m_Actor->GetMapper(); + vtkVolumeProperty *property = m_Actor->GetProperty(); static vtkColorTransferFunction *colorFun = vtkColorTransferFunction::New(); static vtkPiecewiseFunction *opacityFun = vtkPiecewiseFunction::New(); - float window = 40 / $$.writer_factor; - float level = 20 / $$.writer_factor; + float window = 40 / writer_factor; + float level = 20 / writer_factor; property->SetColor(colorFun); property->SetScalarOpacity(opacityFun); @@ -346,9 +308,9 @@ void vtkVoxImage::setShadingPreset(int blendType) } void vtkVoxImage::Update() { - d->m_Actor->Update(); - d->m_Outline->SetBounds(d->m_Image->GetBounds()); - d->m_Outline->Update(); + m_Actor->Update(); + m_Outline->SetBounds(m_Image->GetBounds()); + m_Outline->Update(); } void vtkVoxImage::InstallPipe() @@ -356,26 +318,26 @@ void vtkVoxImage::InstallPipe() vtkSmartPointer mapper = vtkSmartPointer::New(); # if VTK_MAJOR_VERSION <= 5 - mapper->SetInputConnection(d->m_Image->GetProducerPort()); + mapper->SetInputConnection(m_Image->GetProducerPort()); # else - mapper->SetInputData(d->m_Image); + mapper->SetInputData(m_Image); # endif mapper->Update(); - d->m_Actor->SetMapper(mapper); + m_Actor->SetMapper(mapper); this->setShadingPreset(0); mapper->Update(); - d->m_Outline->SetBounds(d->m_Image->GetBounds()); + m_Outline->SetBounds(m_Image->GetBounds()); vtkSmartPointer mmapper = vtkSmartPointer::New(); - mmapper->SetInputConnection(d->m_Outline->GetOutputPort()); + mmapper->SetInputConnection(m_Outline->GetOutputPort()); vtkSmartPointer actor = vtkSmartPointer::New(); actor->SetMapper(mmapper); actor->GetProperty()->SetRepresentationToWireframe(); actor->GetProperty()->SetAmbient(0.7); // this->SetProp(actor); - this->SetProp(d->m_Actor); + this->SetProp(m_Actor); } diff --git a/src/Vtk/vtkVoxImage.h b/src/Vtk/vtkVoxImage.h index 6497f0a..442efe7 100644 --- a/src/Vtk/vtkVoxImage.h +++ b/src/Vtk/vtkVoxImage.h @@ -28,7 +28,12 @@ #ifndef U_VTKVOXIMAGE_H #define U_VTKVOXIMAGE_H -#include +#include "vtk/vtkVolume.h" +#include "vtk/vtkImageData.h" +#include "vtk/vtkXMLImageDataReader.h" +#include "vtk/vtkXMLImageDataWriter.h" +#include "vtk/vtkCubeSource.h" + #include #include "uLibVtkInterface.h" @@ -39,14 +44,8 @@ class vtkImageData; namespace uLib { namespace Vtk { -class vtkVoxImage : public Puppet { - uLibTypeMacro(vtkVoxImage,Puppet) -public: - properties() - { - float writer_factor; - }; - +class vtkVoxImage : public Puppet +{ public: typedef Abstract::VoxImage Content; @@ -54,6 +53,10 @@ public: ~vtkVoxImage(); + void GetContent(); + + void SetContent(); + vtkImageData * GetImageData(); void SaveToXMLFile(const char *fname); @@ -67,20 +70,24 @@ public: void Update(); protected: - void InstallPipe(); + void InstallPipe(); + float writer_factor; private: - class vtkVoxImagePimpl *d; + vtkVolume *m_Actor; + vtkImageData *m_Image; + vtkCubeSource *m_Outline; + + vtkXMLImageDataReader *m_Reader; + vtkXMLImageDataWriter *m_Writer; + + vtkVoxImage::Content &m_Content; + + float m_Window; + float m_Level; + }; - -inline void vtkVoxImage::init_properties() -{ - $_init(); - $$.writer_factor = 1.E6; -} - - } // vtk } // uLib