changeset 534:31f1b7d5d7d2 laaw

cleaning up
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 19 Jul 2013 17:17:36 +0200
parents 7f9467b5f33b
children 2890721b0f57
files OrthancCppClient/Package/OrthancCppClient.cmake OrthancCppClient/Package/Test/Basic/Build.sh OrthancCppClient/Package/Test/Basic/CMakeLists.txt OrthancCppClient/Package/Test/Basic/main.cpp OrthancCppClient/Package/Test/Vtk/CMakeLists.txt OrthancCppClient/Package/Test/Vtk/main.cpp Resources/Archives/OrthancCppClient.cmake
diffstat 7 files changed, 62 insertions(+), 365 deletions(-) [+]
line wrap: on
line diff
--- a/OrthancCppClient/Package/OrthancCppClient.cmake	Fri Jul 19 17:16:15 2013 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-include_directories(${ORTHANC_ROOT}/OrthancCppClient/Package/Laaw)
-
-set(STATIC_BUILD ON)
-include(${ORTHANC_ROOT}/Resources/CMake/DownloadPackage.cmake)
-include(${ORTHANC_ROOT}/Resources/CMake/JsonCppConfiguration.cmake)
-include(${ORTHANC_ROOT}/Resources/CMake/LibCurlConfiguration.cmake)
-include(${ORTHANC_ROOT}/Resources/CMake/LibPngConfiguration.cmake)
-include(${ORTHANC_ROOT}/Resources/CMake/BoostConfiguration.cmake)
-include(${ORTHANC_ROOT}/Resources/CMake/ZlibConfiguration.cmake)
-
-if (${CMAKE_COMPILER_IS_GNUCXX})
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pedantic -Wno-implicit-function-declaration")  # --std=c99 makes libcurl not to compile
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -Wno-long-long -Wno-variadic-macros")
-  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
-  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
-elseif (${MSVC})
-  add_definitions(-D_CRT_SECURE_NO_WARNINGS=1)  
-endif()
-
-if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
-  if (${CMAKE_SIZEOF_VOID_P} EQUAL 4)
-    set(WINDOWS_DEF ${ORTHANC_ROOT}/OrthancCppClient/Package/Build/Windows32.def)
-  elseif (${CMAKE_SIZEOF_VOID_P} EQUAL 8)
-    set(WINDOWS_DEF ${ORTHANC_ROOT}/OrthancCppClient/Package/Build/Windows64.def)
-  else()
-    message(FATAL_ERROR "Support your platform here")
-  endif()
-endif()
-
-add_library(OrthancCppClient SHARED
-  ${THIRD_PARTY_SOURCES}
-  ${ORTHANC_ROOT}/Core/OrthancException.cpp
-  ${ORTHANC_ROOT}/Core/Enumerations.cpp
-  ${ORTHANC_ROOT}/Core/Toolbox.cpp
-  ${ORTHANC_ROOT}/Core/HttpClient.cpp
-  ${ORTHANC_ROOT}/Core/MultiThreading/ArrayFilledByThreads.cpp
-  ${ORTHANC_ROOT}/Core/MultiThreading/ThreadedCommandProcessor.cpp
-  ${ORTHANC_ROOT}/Core/MultiThreading/SharedMessageQueue.cpp
-  ${ORTHANC_ROOT}/Core/FileFormats/PngReader.cpp
-  ${ORTHANC_ROOT}/OrthancCppClient/OrthancConnection.cpp
-  ${ORTHANC_ROOT}/OrthancCppClient/Series.cpp
-  ${ORTHANC_ROOT}/OrthancCppClient/Study.cpp
-  ${ORTHANC_ROOT}/OrthancCppClient/Instance.cpp
-  ${ORTHANC_ROOT}/OrthancCppClient/Patient.cpp
-  ${ORTHANC_ROOT}/OrthancCppClient/Package/SharedLibrary.cpp
-  ${ORTHANC_ROOT}/Resources/sha1/sha1.cpp
-  ${ORTHANC_ROOT}/Resources/md5/md5.c
-  ${ORTHANC_ROOT}/Resources/base64/base64.cpp
-  ${WINDOWS_DEF}
-  )
-
-if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
-  set_target_properties(OrthancCppClient
-    PROPERTIES LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--version-script=${ORTHANC_ROOT}/OrthancCppClient/Package/Laaw/VersionScript.map"
-    )
-  target_link_libraries(OrthancCppClient pthread)
-else()
-  set_target_properties(OrthancCppClient
-    PROPERTIES LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--allow-multiple-definition -static-libgcc -static-libstdc++"
-    )
-  target_link_libraries(OrthancCppClient ws2_32)
-endif()
--- a/OrthancCppClient/Package/Test/Basic/Build.sh	Fri Jul 19 17:16:15 2013 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-rm -rf i w32 w64
-mkdir i
-mkdir w32
-mkdir w64
-
-cd i && cmake .. && cd .. && \
-    cd w32 && cmake .. -DCMAKE_TOOLCHAIN_FILE=../../../../Resources/MinGWToolchain.cmake && cd .. && \
-    cd w64 && cmake .. -DCMAKE_TOOLCHAIN_FILE=../../../../Resources/MinGW64Toolchain.cmake && cd ..
-
-make -C i -j12
-make -C w32 -j12
-make -C w64 -j12
-
-nm -C -D --defined-only i/libOrthancCppClient.so 
--- a/OrthancCppClient/Package/Test/Basic/CMakeLists.txt	Fri Jul 19 17:16:15 2013 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-
-project(OrthancCppClientTest)
-
-set(ORTHANC_ROOT ${CMAKE_SOURCE_DIR}/../../../..)
-include(../../OrthancCppClient.cmake)
-
-add_executable(Test main.cpp)
-
-if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
-  target_link_libraries(Test dl)
-else()
-  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++")
-endif()
--- a/OrthancCppClient/Package/Test/Basic/main.cpp	Fri Jul 19 17:16:15 2013 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/**
- * Orthanc - A Lightweight, RESTful DICOM Store
- * Copyright (C) 2012-2013 Medical Physics Department, CHU of Liege,
- * Belgium
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy,
- * modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- **/
-
-
-#include <iostream>
-
-#include "../../Build/OrthancClient.h"
-
-int main()
-{
-  try
-  {
-#ifdef _WIN32
-    OrthancClient::Initialize("libOrthancCppClient.dll");
-#else
-    OrthancClient::Initialize("libOrthancCppClient.so");
-#endif
-
-    // Display the content of the local Orthanc instance
-    OrthancClient::OrthancConnection orthanc("http://localhost:8042");
-
-    for (unsigned int i = 0; i < orthanc.GetPatientCount(); i++)
-    {
-      OrthancClient::Patient patient = orthanc.GetPatient(i);
-      std::cout << "Patient: " << patient.GetId() << std::endl;
-
-      for (unsigned int j = 0; j < patient.GetStudyCount(); j++)
-      {
-        OrthancClient::Study study = patient.GetStudy(j);
-        std::cout << "  Study: " << study.GetId() << std::endl;
-
-        for (unsigned int k = 0; k < study.GetSeriesCount(); k++)
-        {
-          OrthancClient::Series series = study.GetSeries(k);
-          std::cout << "    Series: " << series.GetId() << std::endl;
-
-          for (unsigned int l = 0; l < series.GetInstanceCount(); l++)
-          {
-            std::cout << "      Instance: " << series.GetInstance(l).GetId() << std::endl;
-          }
-        }
-      }
-    }
-
-    return 0;
-  }
-  catch (OrthancClient::OrthancClientException e)
-  {
-    std::cerr << "EXCEPTION: [" << e.What() << "]" << std::endl;
-    return -1;
-  }
-}
--- a/OrthancCppClient/Package/Test/Vtk/CMakeLists.txt	Fri Jul 19 17:16:15 2013 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-
-project(OrthancCppClientTest)
-
-set(ORTHANC_ROOT ${CMAKE_SOURCE_DIR}/../../../..)
-include(../../OrthancCppClient.cmake)
-
-find_package(VTK REQUIRED)
-include(${VTK_USE_FILE})
-
-add_executable(Test
-  main.cpp
-  )
-
-if(VTK_LIBRARIES)
-  target_link_libraries(Test ${VTK_LIBRARIES})
-else()
-  target_link_libraries(Test vtkHybrid vtkVolumeRendering)
-endif()
--- a/OrthancCppClient/Package/Test/Vtk/main.cpp	Fri Jul 19 17:16:15 2013 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-/**
- * Orthanc - A Lightweight, RESTful DICOM Store
- * Copyright (C) 2012-2013 Medical Physics Department, CHU of Liege,
- * Belgium
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy,
- * modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- **/
-
-
-#include <iostream>
-
-#include <vtkRenderWindow.h>
-#include <vtkImageData.h>
-#include <vtkPiecewiseFunction.h>
-#include <vtkFixedPointVolumeRayCastMapper.h>
-#include <vtkColorTransferFunction.h>
-#include <vtkVolumeProperty.h>
-#include <vtkRenderWindowInteractor.h>
-#include <vtkRenderer.h>
-#include <vtkSmartPointer.h>
-#include <vtkOpenGLRenderer.h>
-#include <vtkInteractorStyleTrackballCamera.h>
-
-#include "../../Build/OrthancClient.h"
-
-
-void Display(OrthancClient::Series& series)
-{
-  /**
-   * Load the 3D image from Orthanc into VTK.
-   **/
-
-  vtkSmartPointer<vtkImageData> image = vtkSmartPointer<vtkImageData>::New();
-  image->SetDimensions(series.GetWidth(), series.GetHeight(), series.GetInstanceCount());
-  image->SetScalarType(VTK_SHORT);
-  image->AllocateScalars();
-
-  if (series.GetWidth() != 0 &&
-      series.GetHeight() != 0 && 
-      series.GetInstanceCount() != 0)
-  {
-    series.Load3DImage(image->GetScalarPointer(0, 0, 0), Orthanc::PixelFormat_SignedGrayscale16,
-                       2 * series.GetWidth(), 2 * series.GetHeight() * series.GetWidth());
-  }
-
-  image->SetSpacing(series.GetVoxelSizeX(), 
-                    series.GetVoxelSizeY(), 
-                    series.GetVoxelSizeZ());
-
-
-  /**
-   * The following code is based on the VTK sample for MIP
-   * http://www.vtk.org/Wiki/VTK/Examples/Cxx/VolumeRendering/MinIntensityRendering
-   **/
-
-  // Create a transfer function mapping scalar value to opacity
-  double range[2];
-  image->GetScalarRange(range);
-
-  vtkSmartPointer<vtkPiecewiseFunction> opacityTransfer = 
-    vtkSmartPointer<vtkPiecewiseFunction>::New();
-  opacityTransfer->AddSegment(range[0], 0.0, range[1], 1.0);
- 
-  vtkSmartPointer<vtkColorTransferFunction> colorTransfer = 
-    vtkSmartPointer<vtkColorTransferFunction>::New();
-  colorTransfer->AddRGBPoint(0, 1.0, 1.0, 1.0);
-  colorTransfer->AddRGBPoint(range[1], 1.0, 1.0, 1.0);
- 
-  vtkSmartPointer<vtkVolumeProperty> property = 
-    vtkSmartPointer<vtkVolumeProperty>::New();
-  property->SetScalarOpacity(opacityTransfer);
-  property->SetColor(colorTransfer);
-  property->SetInterpolationTypeToLinear();
-
-  // Create a Maximum Intensity Projection rendering
-  vtkSmartPointer<vtkFixedPointVolumeRayCastMapper> mapper = 
-    vtkSmartPointer<vtkFixedPointVolumeRayCastMapper>::New();
-  mapper->SetBlendModeToMaximumIntensity();
-  mapper->SetInput(image);
-
-  vtkSmartPointer<vtkVolume> volume = vtkSmartPointer<vtkVolume>::New();
-  volume->SetMapper(mapper);
-  volume->SetProperty(property);
-  
-  vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkOpenGLRenderer>::New();
-  renderer->AddViewProp(volume);
-  renderer->SetBackground(0.1, 0.2, 0.3); // Background color dark blue
-
-  vtkSmartPointer<vtkInteractorStyleTrackballCamera> style = 
-    vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();
- 
-  vtkSmartPointer<vtkRenderWindow> window = vtkSmartPointer<vtkRenderWindow>::New();
-  window->AddRenderer(renderer); 
-
-  vtkSmartPointer<vtkRenderWindowInteractor> interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
-  interactor->SetRenderWindow(window);
-  interactor->SetInteractorStyle(style);
-  interactor->Start();
-}
-
-
-int main()
-{
-  try
-  {
-    OrthancClient::Initialize("libOrthancCppClient.so");
-
-    // Use the commented code below if you know the identifier of a
-    // series that corresponds to a 3D image.
-
-    /*
-      {
-      OrthancClient::OrthancConnection orthanc("http://localhost:8042");
-      OrthancClient::Series series(orthanc, "c1c4cb95-05e3bd11-8da9f5bb-87278f71-0b2b43f5");
-      Display(series);
-      return 0;
-      }
-    */
-
-
-    // Try and find a 3D image inside the local store
-    OrthancClient::OrthancConnection orthanc("http://localhost:8042");
-
-    for (unsigned int i = 0; i < orthanc.GetPatientCount(); i++)
-    {
-      OrthancClient::Patient patient = orthanc.GetPatient(i);
-      std::cout << "Patient: " << patient.GetId() << std::endl;
-
-      for (unsigned int j = 0; j < patient.GetStudyCount(); j++)
-      {
-        OrthancClient::Study study = patient.GetStudy(j);
-        std::cout << "  Study: " << study.GetId() << std::endl;
-
-        for (unsigned int k = 0; k < study.GetSeriesCount(); k++)
-        {
-          OrthancClient::Series series = study.GetSeries(k);
-          std::cout << "    Series: " << series.GetId() << std::endl;
-
-          if (series.Is3DImage())
-          {
-            Display(series);
-            return 0;
-          }
-          else
-          {
-            std::cout << "      => Not a 3D image..." << std::endl;
-          }
-        }
-      }
-    }
-
-    std::cout << "Unable to find a 3D image in the local Orthanc store" << std::endl;
-
-    return 0;
-  }
-  catch (OrthancClient::OrthancClientException e)
-  {
-    std::cerr << "EXCEPTION: [" << e.What() << "]" << std::endl;
-    return -1;
-  }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Resources/Archives/OrthancCppClient.cmake	Fri Jul 19 17:17:36 2013 +0200
@@ -0,0 +1,62 @@
+include_directories(${ORTHANC_ROOT}/OrthancCppClient/Package/Laaw)
+
+set(STATIC_BUILD ON)
+include(${ORTHANC_ROOT}/Resources/CMake/DownloadPackage.cmake)
+include(${ORTHANC_ROOT}/Resources/CMake/JsonCppConfiguration.cmake)
+include(${ORTHANC_ROOT}/Resources/CMake/LibCurlConfiguration.cmake)
+include(${ORTHANC_ROOT}/Resources/CMake/LibPngConfiguration.cmake)
+include(${ORTHANC_ROOT}/Resources/CMake/BoostConfiguration.cmake)
+include(${ORTHANC_ROOT}/Resources/CMake/ZlibConfiguration.cmake)
+
+if (${CMAKE_COMPILER_IS_GNUCXX})
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pedantic -Wno-implicit-function-declaration")  # --std=c99 makes libcurl not to compile
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -Wno-long-long -Wno-variadic-macros")
+  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
+  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
+elseif (${MSVC})
+  add_definitions(-D_CRT_SECURE_NO_WARNINGS=1)  
+endif()
+
+if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
+  if (${CMAKE_SIZEOF_VOID_P} EQUAL 4)
+    set(WINDOWS_DEF ${ORTHANC_ROOT}/OrthancCppClient/Package/Build/Windows32.def)
+  elseif (${CMAKE_SIZEOF_VOID_P} EQUAL 8)
+    set(WINDOWS_DEF ${ORTHANC_ROOT}/OrthancCppClient/Package/Build/Windows64.def)
+  else()
+    message(FATAL_ERROR "Support your platform here")
+  endif()
+endif()
+
+add_library(OrthancCppClient SHARED
+  ${THIRD_PARTY_SOURCES}
+  ${ORTHANC_ROOT}/Core/OrthancException.cpp
+  ${ORTHANC_ROOT}/Core/Enumerations.cpp
+  ${ORTHANC_ROOT}/Core/Toolbox.cpp
+  ${ORTHANC_ROOT}/Core/HttpClient.cpp
+  ${ORTHANC_ROOT}/Core/MultiThreading/ArrayFilledByThreads.cpp
+  ${ORTHANC_ROOT}/Core/MultiThreading/ThreadedCommandProcessor.cpp
+  ${ORTHANC_ROOT}/Core/MultiThreading/SharedMessageQueue.cpp
+  ${ORTHANC_ROOT}/Core/FileFormats/PngReader.cpp
+  ${ORTHANC_ROOT}/OrthancCppClient/OrthancConnection.cpp
+  ${ORTHANC_ROOT}/OrthancCppClient/Series.cpp
+  ${ORTHANC_ROOT}/OrthancCppClient/Study.cpp
+  ${ORTHANC_ROOT}/OrthancCppClient/Instance.cpp
+  ${ORTHANC_ROOT}/OrthancCppClient/Patient.cpp
+  ${ORTHANC_ROOT}/OrthancCppClient/Package/SharedLibrary.cpp
+  ${ORTHANC_ROOT}/Resources/sha1/sha1.cpp
+  ${ORTHANC_ROOT}/Resources/md5/md5.c
+  ${ORTHANC_ROOT}/Resources/base64/base64.cpp
+  ${WINDOWS_DEF}
+  )
+
+if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+  set_target_properties(OrthancCppClient
+    PROPERTIES LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--version-script=${ORTHANC_ROOT}/OrthancCppClient/Package/Laaw/VersionScript.map"
+    )
+  target_link_libraries(OrthancCppClient pthread)
+else()
+  set_target_properties(OrthancCppClient
+    PROPERTIES LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--allow-multiple-definition -static-libgcc -static-libstdc++"
+    )
+  target_link_libraries(OrthancCppClient ws2_32)
+endif()