Skip to content
Snippets Groups Projects
Commit dde66cb1 authored by Kasper Marstal's avatar Kasper Marstal
Browse files

ENH: ELASTIX-1 Add test data manager to object factory

parent 62e6b950
No related branches found
No related tags found
No related merge requests found
cmake_minimum_required( VERSION 2.8 )
# Explicitly add INCREMENTAL linking option to command lines.
# http://www.cmake.org/pipermail/cmake/2010-February/035174.html
set( MSVC_INCREMENTAL_DEFAULT ON )
# ---------------------------------------------------------------------
project( Elastix )
# Include SuperElastix CMake scripts
list( APPEND CMAKE_MODULE_PATH
"${CMAKE_CURRENT_SOURCE_DIR}/CMake"
list( APPEND CMAKE_MODULE_PATH
"${CMAKE_CURRENT_SOURCE_DIR}/CMake"
)
if( CMAKE_HOST_WIN32 )
if( ${CMAKE_CXX_COMPILER_ID} STREQUAL "MSVC" )
include( elxWinConfig.cmake )
endif()
#---------------------------------------------------------------------
project( Elastix )
#---------------------------------------------------------------------
# ---------------------------------------------------------------------
# ITK
find_package( ITK REQUIRED )
set( ITK_NO_IO_FACTORY_REGISTER_MANAGER 1 )
include( ${ITK_USE_FILE} )
include( "${CMAKE_CURRENT_SOURCE_DIR}/CMake/elxITKRequiredModules.cmake" )
#---------------------------------------------------------------------
# ---------------------------------------------------------------------
# Build Elastix
#---------------------------------------------------------------------
# Testing
set( ELASTIX_COMMON_INCLUDE_DIRECTORIES
${CMAKE_SOURCE_DIR}/Modules/Core/Common/include
)
# Build tests by default
option( ELASTIX_BUILD_TESTING "Enable building tests." ON )
set( ELASTIX_CORE_INCLUDE_DIRECTORIES
${CMAKE_SOURCE_DIR}/Modules/Core/Blueprints/include
)
set( ELASTIX_INCLUDE_DIRECTORIES
${ELASTIX_COMMON_INCLUDE_DIRECTORIES}
${ELASTIX_CORE_INCLUDE_DIRECTORIES}
)
include_directories( ${ELASTIX_INCLUDE_DIRECTORIES} )
add_subdirectory( Modules )
# ExternalData module requires newer CMake versions
# ---------------------------------------------------------------------
# Testing
# Testing requires CMake version 2.8.11 to download test data
if( CMAKE_VERSION VERSION_LESS 2.8.11 )
set( ELASTIX_BUILD_TESTING OFF FORCE )
message( STATUS "ELASTIX_BUILD_TESTING was set to OFF because CMake version is less than 2.8.11")
set( ELASTIX_BUILD_TESTING_DEFAULT OFF )
message( STATUS "ELASTIX_BUILD_TESTING is set to OFF by default because CMake version is less than 2.8.11" )
else()
set( ELASTIX BUILD_TESTING_DEFAULT ON )
endif()
option( ELASTIX_BUILD_TESTING "Enable building tests." ${ELASTIX_BUILD_TESTING_DEFAULT} )
if( ELASTIX_BUILD_TESTING )
enable_testing()
add_subdirectory( Testing )
endif()
#---------------------------------------------------------------------
# ---------------------------------------------------------------------
# Build Documentation
mark_as_advanced( ELASTIX_BUILD_DOXYGEN )
......
add_subdirectory(
Core
)
\ No newline at end of file
add_subdirectory(
Common
Blueprints
)
\ No newline at end of file
include_directories( include )
\ No newline at end of file
#ifndef __elxMacro_h
#define __elxMacro_h
/**
* Register class with the object factory and provide
* associated RTTI (Run-Time Type Information)
*/
#define elxNewMacro( className, superClassName ) \
typedef className Self; \
typedef itk::SmartPointer< Self > Pointer; \
typedef itk::SmartPointer< const Self > ConstPointer; \
itkNewMacro( Self ); \
itkTypeMacro( Self, superClassName ); \
#endif // __elxMacro_h
\ No newline at end of file
#ifndef __elxTestDataDirectories_h
#define __elxTestDataDirectories_h
#ifndef __elxDataDirectories_h
#define __elxDataDirectories_h
#define ELASTIX_UNITTEST_INPUT_DATA_DIR "@ELASTIX_UNITTEST_INPUT_DATA_DIR@"
#define ELASTIX_UNITTEST_OUTPUT_DATA_DIR "@ELASTIX_UNITTEST_OUTPUT_DATA_DIR@"
......
......@@ -5,25 +5,25 @@
std::string
DataManager
::GetInput( const std::string filename ) const
::GetInputFullPath( const std::string filename ) const
{
const std::string path = this->GetInputDirectory() + this->GetPathSeparator() + filename;
const std::string path = this->GetInputDirectory() + this->GetFolderSeparator() + filename;
return path;
}
std::string
DataManager
::GetOutput( const std::string filename ) const
::GetOutputFullPath( const std::string filename ) const
{
const std::string path = this->GetOutputDirectory() + this->GetPathSeparator() + filename;
const std::string path = this->GetOutputDirectory() + this->GetFolderSeparator() + filename;
return path;
}
std::string
DataManager
::GetBaseline( const std::string filename ) const
::GetBaselineFullPath( const std::string filename ) const
{
const std::string path = this->GetBaselineDirectory() + this->GetPathSeparator() + filename;
const std::string path = this->GetBaselineDirectory() + this->GetFolderSeparator() + filename;
return path;
}
......
......@@ -3,15 +3,17 @@
#include <string>
#include "itkMacro.h"
#include "itkProcessObject.h"
#include "elxMacro.h"
#include "itkObjectFactory.h"
#include "itkLightObject.h"
#include "elxDataDirectories.h"
class DataManager
class DataManager : public itk::LightObject
{
public:
elxNewMacro( DataManager, itk::LightObject );
DataManager()
{
this->m_InputDirectory = ELASTIX_UNITTEST_INPUT_DATA_DIR;
......@@ -20,12 +22,21 @@ public:
}
std::string GetInputDirectory( void ) const { return this->m_InputDirectory; };
std::string GetOutputDirectory( void ) const { return this->m_InputDirectory; };
std::string GetBaselineDirectory( void ) const { return this->m_InputDirectory; };
std::string GetOutputDirectory( void ) const { return this->m_OutputDirectory; };
std::string GetBaselineDirectory( void ) const { return this->m_BaselineDirectory; };
std::string GetInput( const std::string filename ) const;
std::string GetOutput( const std::string filename ) const;
std::string GetBaseline( const std::string filename ) const;
std::string GetInputFullPath( const std::string filename ) const;
std::string GetOutputFullPath( const std::string filename ) const;
std::string GetBaselineFullPath( const std::string filename ) const;
std::string GetFolderSeparator() const
{
#ifdef WIN32
return "\\";
#else
return "/";
#endif
}
std::string GetPathSeparator () const
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment