annotate README.md @ 700:059e1fd05fd6 refactor-viewport-controller

Introduced the ViewportController that sits between the application and the Scene2D to handle the trackers and measuring tools. This is a work in progress. The Scene2D is no longer an observable. Message sending is managed by the ViewportController. Move some refs to shared and weak to prevent lifetime issues.
author Benjamin Golinvaux <bgo@osimis.io>
date Sun, 19 May 2019 16:26:17 +0200
parents 8b6adfb62a2f
children d1feb89ea742
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 Stone of Orthanc
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 ================
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 General Information
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 -------------------
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 This repository contains the source code of the Stone of Orthanc.
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 Stone of Orthanc is a lightweight, cross-platform C++ framework for
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 the CPU-based rendering of medical images. It notably features support
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 for MPR (multiplanar reconstruction of volume images), PET-CT fusion,
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 and accurate physical world coordinates.
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 Stone of Orthanc comes bundled with its own software-based rendering
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 engine (based upon pixman). This engine will use CPU hardware
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 acceleration if available (notably SSE2, SSSE3, and NEON instruction
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 sets), but not the GPU. This makes Stone a highly versatile framework
9
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
18 that can run even on low-performance platforms. Note that Stone is
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
19 able to display DICOM series without having to entirely store them in
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
20 the RAM (i.e. frame by frame).
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
21
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
22 Thanks to its standalone rendering engine, Stone of Orthanc is also
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
23 compatible with any GUI framework (such as Qt, wxWidgets, MFC...). The
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
24 provided sample applications use the SDL framework.
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25
9
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
26 Stone is conceived as a companion toolbox to the Orthanc VNA (vendor
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
27 neutral archive, i.e. DICOM server). As a consequence, Stone will
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
28 smoothly interface with Orthanc out of the box. Interestingly, Stone
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
29 does not contain any DICOM toolkit: It entirely relies on the REST API
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
30 of Orthanc to parse/decode DICOM images. However, thanks to the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
31 object-oriented architecture of Stone, it is possible to avoid this
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
32 dependency upon Orthanc, e.g. to download DICOM datasets using
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4
diff changeset
33 DICOMweb.
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36 Comparison
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37 ----------
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39 Pay attention to the fact that Stone of Orthanc is a toolkit, and not
1
2dbe613f6c93 add orthanc core
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
40 a fully-featured application for the visualization of medical images
2dbe613f6c93 add orthanc core
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
41 (such as Horos/OsiriX or Ginkgo CADx). However, such applications
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
42 can be built on the top of Stone of Orthanc.
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44 Stone of Orthanc is quite similar to two other well-known toolkits:
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46 * Cornerstone, a client-side JavaScript toolkit to display medical
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 images in Web browsers, by Chris Hafey <chafey@gmail.com>:
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48 https://github.com/chafey/cornerstone
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 Contrarily to Cornerstone, Stone of Orthanc can be embedded into
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51 native, heavyweight applications.
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53 * VTK, a C++ toolkit for scientific visualization, by Kitware:
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54 http://www.vtk.org/
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 Contrarily to VTK, Stone of Orthanc is focused on CPU-based, 2D
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 rendering: The GPU will not be used.
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 Dependencies
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 ------------
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 Stone of Orthanc is based upon the following projects:
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65 * Orthanc, a lightweight Vendor Neutral Archive (DICOM server):
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 http://www.orthanc-server.com/
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68 * Cairo and pixman, a cross-platform 2D graphics library:
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69 https://www.cairographics.org/
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71 * Optionally, SDL, a cross-platform multimedia library:
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72 https://www.libsdl.org/
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
73
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
74 Prerequisites to compile natively on Ubuntu:
222
84844649a8fd continued: reusable applications
am@osimis.io
parents: 211
diff changeset
75 ```
84844649a8fd continued: reusable applications
am@osimis.io
parents: 211
diff changeset
76 sudo apt-get install -y libcairo-dev libpixman-1-dev libsdl2-dev
84844649a8fd continued: reusable applications
am@osimis.io
parents: 211
diff changeset
77 ```
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
78
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
79 The emscripten SDK is required for the WASM build. Please install it
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
80 in `~/apps/emsdk`. If you wish to use it in another way, please edit
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
81 the `build-wasm.sh` file.
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
82
466
5055031f4a06 - Added browserify to build. This allows using require calls for modules that
bgo-osimis
parents: 445
diff changeset
83 ninja (`sudo apt-get install -y ninja-build`) is used instead of make, for performance reasons.
5055031f4a06 - Added browserify to build. This allows using require calls for modules that
bgo-osimis
parents: 445
diff changeset
84
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
85 Installation and usage ----------------------
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
86
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
87 Build instructions are similar to that of Orthanc:
460
4d8ac609fc33 fix link
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 295
diff changeset
88 http://book.orthanc-server.com/faq/compiling.html
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
89
41
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 9
diff changeset
90 Usage details are available as part of the Orthanc Book:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 9
diff changeset
91 http://book.orthanc-server.com/developers/stone.html
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 9
diff changeset
92
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
93 Stone of Orthanc comes with several sample applications in the
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
94 `Samples` folder. These samples can be compiled into Web Assembly or
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
95 into native SDL applications.
264
6b98ac45aaee documented how to compile and execute WASM samples
am@osimis.io
parents: 222
diff changeset
96
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
97 The following assumes that the source code to be downloaded in
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
98 `~/orthanc-stone` and Orthanc source code to be checked out in
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
99 `~/orthanc`.
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
100
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
101 Building the WASM samples
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
102 -------------------------------------
264
6b98ac45aaee documented how to compile and execute WASM samples
am@osimis.io
parents: 222
diff changeset
103 ```
295
b04b13810540 unified CMakeLists.txt into a single file for WASM/Native + bootstrap Command (to rework) + doc
am@osimis.io
parents: 265
diff changeset
104 cd ~/orthanc-stone/Applications/Samples
264
6b98ac45aaee documented how to compile and execute WASM samples
am@osimis.io
parents: 222
diff changeset
105 ./build-wasm.sh
6b98ac45aaee documented how to compile and execute WASM samples
am@osimis.io
parents: 222
diff changeset
106 ```
6b98ac45aaee documented how to compile and execute WASM samples
am@osimis.io
parents: 222
diff changeset
107
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
108 Serving the WASM samples
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
109 ------------------------------------
264
6b98ac45aaee documented how to compile and execute WASM samples
am@osimis.io
parents: 222
diff changeset
110 ```
6b98ac45aaee documented how to compile and execute WASM samples
am@osimis.io
parents: 222
diff changeset
111 # launch an Orthanc listening on 8042 port:
6b98ac45aaee documented how to compile and execute WASM samples
am@osimis.io
parents: 222
diff changeset
112 Orthanc
6b98ac45aaee documented how to compile and execute WASM samples
am@osimis.io
parents: 222
diff changeset
113
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
114 # launch an nginx that will serve the WASM static files and reverse
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
115 # proxy
264
6b98ac45aaee documented how to compile and execute WASM samples
am@osimis.io
parents: 222
diff changeset
116 sudo nginx -p $(pwd) -c nginx.local.conf
6b98ac45aaee documented how to compile and execute WASM samples
am@osimis.io
parents: 222
diff changeset
117 ```
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
118
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
119 You can now open the samples in http://localhost:9977
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
120
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
121 Building the SDL native samples (SimpleViewer only)
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
122 ---------------------------------------------------
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
123
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
124 The following also assumes that you have checked out the Orthanc
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
125 source code in an `orthanc` folder next to the Stone of Orthanc
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
126 repository, please enter the following:
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
127
527
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
128 **Simple make generator with dynamic build**
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
129
265
30dc6e383b0b documented how to build the native sample
am@osimis.io
parents: 264
diff changeset
130 ```
527
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
131 # Please set $currentDir to the current folder
265
30dc6e383b0b documented how to build the native sample
am@osimis.io
parents: 264
diff changeset
132 mkdir -p ~/builds/orthanc-stone-build
30dc6e383b0b documented how to build the native sample
am@osimis.io
parents: 264
diff changeset
133 cd ~/builds/orthanc-stone-build
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
134 cmake -DORTHANC_FRAMEWORK_SOURCE=path \
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
135 -DORTHANC_FRAMEWORK_ROOT=$currentDir/../../../orthanc \
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
136 -DALLOW_DOWNLOADS=ON -DENABLE_SDL=ON \
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
137 ~/orthanc-stone/Applications/Samples/
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
138 ```
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
139
548
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
140 **Ninja generator with static SDL build (pwsh script)**
527
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
141
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
142 ```
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
143 # Please yourself one level above the orthanc-stone and orthanc folders
548
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
144 if( -not (test-path stone_build_sdl)) { mkdir stone_build_sdl }
527
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
145 cd stone_build_sdl
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
146 cmake -G Ninja -DSTATIC_BUILD=ON -DOPENSSL_NO_CAPIENG=ON -DORTHANC_FRAMEWORK_SOURCE=path -DORTHANC_FRAMEWORK_ROOT="$($pwd)\..\orthanc" -DALLOW_DOWNLOADS=ON -DENABLE_SDL=ON ../orthanc-stone/Applications/Samples/
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
147 ```
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
148
548
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
149 **Visual Studio 2017 generator with static SDL build (pwsh script)**
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
150
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
151 ```
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
152 # The following will use Visual Studio 2017 to build the SDL samples
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
153 # in debug mode (with multiple compilers in parallel). NOTE: place
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
154 # yourself one level above the `orthanc-stone` and `orthanc` folders
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
155
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
156 if( -not (test-path stone_build_sdl)) { mkdir stone_build_sdl }
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
157 cd stone_build_sdl
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
158 cmake -G "Visual Studio 15 2017 Win64" -DMSVC_MULTIPLE_PROCESSES=ON -DSTATIC_BUILD=ON -DOPENSSL_NO_CAPIENG=ON -DORTHANC_FRAMEWORK_SOURCE=path -DORTHANC_FRAMEWORK_ROOT="$($pwd)\..\orthanc" -DALLOW_DOWNLOADS=ON -DENABLE_SDL=ON ../orthanc-stone/Applications/Samples/
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
159 cmake --build . --config Debug
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
160 ```
527
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
161
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
162 If you are working on Windows, add the correct generator option to
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
163 cmake to, for instance, generate msbuild files for Visual Studio.
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
164
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
165 Then, under Linux:
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
166 ```
265
30dc6e383b0b documented how to build the native sample
am@osimis.io
parents: 264
diff changeset
167 cmake --build . --target OrthancStoneSimpleViewer -- -j 5
30dc6e383b0b documented how to build the native sample
am@osimis.io
parents: 264
diff changeset
168 ```
30dc6e383b0b documented how to build the native sample
am@osimis.io
parents: 264
diff changeset
169
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
170 Note: replace `$($pwd)` with the current directory when not using Powershell
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
171
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
172 Building the Qt native samples (SimpleViewer only) under Windows:
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
173 ------------------------------------------------------------------
527
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
174
548
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
175 **Visual Studio 2017 generator with static Qt build (pwsh script)**
527
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
176
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
177 For instance, if Qt is installed in `C:\Qt\5.12.0\msvc2017_64`
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
178
527
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
179 ```
548
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
180 # The following will use Visual Studio 2017 to build the SDL samples
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
181 # in debug mode (with multiple compilers in parallel). NOTE: place
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
182 # yourself one level above the `orthanc-stone` and `orthanc` folders
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
183
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
184 if( -not (test-path stone_build_qt)) { mkdir stone_build_qt }
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
185 cd stone_build_qt
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
186 cmake -G "Visual Studio 15 2017 Win64" -DMSVC_MULTIPLE_PROCESSES=ON -DSTATIC_BUILD=ON -DOPENSSL_NO_CAPIENG=ON -DCMAKE_PREFIX_PATH=C:\Qt\5.12.0\msvc2017_64 -DORTHANC_FRAMEWORK_SOURCE=path -DORTHANC_FRAMEWORK_ROOT="$($pwd)\..\orthanc" -DALLOW_DOWNLOADS=ON -DENABLE_QT=ON ../orthanc-stone/Applications/Samples/
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
187 cmake --build . --config Debug
527
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
188 ```
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
189
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
190 Note: replace `$($pwd)` with the current directory when not using Powershell
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
191
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
192
501
8424b10df93a Dummy change
bgo-osimis
parents: 466
diff changeset
193
548
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
194
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
195
d10a295b607a Added /MP option to cmakefile and improved readme with Windows command lines for configure/build
Benjamin Golinvaux <bgo@osimis.io>
parents: 527
diff changeset
196
445
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
197 Building the SDL native samples (SimpleViewer only) under Windows:
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
198 ------------------------------------------------------------------
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
199 `cmake -DSTATIC_BUILD=ON -DORTHANC_FRAMEWORK_SOURCE=path -DORTHANC_FRAMEWORK_ROOT="$($pwd)\..\orthanc" -DALLOW_DOWNLOADS=ON -DENABLE_SDL=ON -G "Visual Studio 15 2017 Win64" ../orthanc-stone/Applications/Samples/`
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
200
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
201 Note: replace `$($pwd)` with the current directory when not using Powershell
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
202
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
203 Executing the native samples:
ee41b6a017d7 dumb change
bgo-osimis
parents: 295
diff changeset
204 --------------------------------
265
30dc6e383b0b documented how to build the native sample
am@osimis.io
parents: 264
diff changeset
205 ```
30dc6e383b0b documented how to build the native sample
am@osimis.io
parents: 264
diff changeset
206 # launch an Orthanc listening on 8042 port:
30dc6e383b0b documented how to build the native sample
am@osimis.io
parents: 264
diff changeset
207 Orthanc
30dc6e383b0b documented how to build the native sample
am@osimis.io
parents: 264
diff changeset
208
30dc6e383b0b documented how to build the native sample
am@osimis.io
parents: 264
diff changeset
209 # launch the sample
295
b04b13810540 unified CMakeLists.txt into a single file for WASM/Native + bootstrap Command (to rework) + doc
am@osimis.io
parents: 265
diff changeset
210 ./OrthancStoneSimpleViewer --studyId=XX
265
30dc6e383b0b documented how to build the native sample
am@osimis.io
parents: 264
diff changeset
211 ```
30dc6e383b0b documented how to build the native sample
am@osimis.io
parents: 264
diff changeset
212
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
213 Licensing
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
214 ---------
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
215
49
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 41
diff changeset
216 Stone of Orthanc is licensed under the AGPL license.
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
217
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
218 We also kindly ask scientific works and clinical studies that make
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
219 use of Orthanc to cite Orthanc in their associated publications.
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
220 Similarly, we ask open-source and closed-source products that make
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
221 use of Orthanc to warn us about this use. You can cite our work
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
222 using the following BibTeX entry:
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
223
210
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
224 @Article{Jodogne2018,
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
225 author="Jodogne, S{\'e}bastien",
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
226 title="The {O}rthanc Ecosystem for Medical Imaging",
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
227 journal="Journal of Digital Imaging",
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
228 year="2018",
211
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 210
diff changeset
229 month="Jun",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 210
diff changeset
230 day="01",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 210
diff changeset
231 volume="31",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 210
diff changeset
232 number="3",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 210
diff changeset
233 pages="341--352",
210
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
234 issn="1618-727X",
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
235 doi="10.1007/s10278-018-0082-y",
101e487cd154 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 49
diff changeset
236 url="https://doi.org/10.1007/s10278-018-0082-y"
0
351ab0da0150 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
237 }
501
8424b10df93a Dummy change
bgo-osimis
parents: 466
diff changeset
238
611
e3f21a265be5 Added version directive to GLSL shader code + glew init function in sample code
Benjamin Golinvaux <bgo@osimis.io>
parents: 548
diff changeset
239 Various notes to be sorted
527
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
240 ---------------------------
611
e3f21a265be5 Added version directive to GLSL shader code + glew init function in sample code
Benjamin Golinvaux <bgo@osimis.io>
parents: 548
diff changeset
241 How to build the newest (2019-04-29) SDL samples under Windows, *inside* a
e3f21a265be5 Added version directive to GLSL shader code + glew init function in sample code
Benjamin Golinvaux <bgo@osimis.io>
parents: 548
diff changeset
242 folder that is sibling to the orthanc-stone folder:
527
b1377625e4ba Removed ICommand and friends + fixed warnings + added missing header files in
Benjamin Golinvaux <bgo@osimis.io>
parents: 506
diff changeset
243
611
e3f21a265be5 Added version directive to GLSL shader code + glew init function in sample code
Benjamin Golinvaux <bgo@osimis.io>
parents: 548
diff changeset
244 ```
e3f21a265be5 Added version directive to GLSL shader code + glew init function in sample code
Benjamin Golinvaux <bgo@osimis.io>
parents: 548
diff changeset
245 cmake -G "Visual Studio 15 2017 Win64" -DMSVC_MULTIPLE_PROCESSES=ON -DENABLE_OPENGL=ON -DSTATIC_BUILD=ON -DOPENSSL_NO_CAPIENG=ON -DORTHANC_FRAMEWORK_SOURCE=path -DORTHANC_FRAMEWORK_ROOT="$($pwd)\..\orthanc" -DALLOW_DOWNLOADS=ON -DENABLE_SDL=ON ../orthanc-stone/Samples/Sdl
e3f21a265be5 Added version directive to GLSL shader code + glew init function in sample code
Benjamin Golinvaux <bgo@osimis.io>
parents: 548
diff changeset
246 ```
644
f939f449482c Ongoing tracker work.
Benjamin Golinvaux <bgo@osimis.io>
parents: 611
diff changeset
247
f939f449482c Ongoing tracker work.
Benjamin Golinvaux <bgo@osimis.io>
parents: 611
diff changeset
248 And under Ubuntu (note the /mnt/c/osi/dev/orthanc folder):
f939f449482c Ongoing tracker work.
Benjamin Golinvaux <bgo@osimis.io>
parents: 611
diff changeset
249 ```
f939f449482c Ongoing tracker work.
Benjamin Golinvaux <bgo@osimis.io>
parents: 611
diff changeset
250 cmake -G "Ninja" -DENABLE_OPENGL=ON -DSTATIC_BUILD=OFF -DOPENSSL_NO_CAPIENG=ON -DORTHANC_FRAMEWORK_SOURCE=path -DORTHANC_FRAMEWORK_ROOT="/mnt/c/osi/dev/orthanc" -DALLOW_DOWNLOADS=ON -DENABLE_SDL=ON ../orthanc-stone/Samples/Sdl
f939f449482c Ongoing tracker work.
Benjamin Golinvaux <bgo@osimis.io>
parents: 611
diff changeset
251 ```
f939f449482c Ongoing tracker work.
Benjamin Golinvaux <bgo@osimis.io>
parents: 611
diff changeset
252
f939f449482c Ongoing tracker work.
Benjamin Golinvaux <bgo@osimis.io>
parents: 611
diff changeset
253 TODO trackers:
698
8b6adfb62a2f Code is broken -- stashing ongoing work in a branch
Benjamin Golinvaux <bgo@osimis.io>
parents: 644
diff changeset
254 - CANCELLED (using outlined text now) text overlay 50% --> ColorTextureLayer 50%
8b6adfb62a2f Code is broken -- stashing ongoing work in a branch
Benjamin Golinvaux <bgo@osimis.io>
parents: 644
diff changeset
255 - DONE angle tracker: draw arcs
8b6adfb62a2f Code is broken -- stashing ongoing work in a branch
Benjamin Golinvaux <bgo@osimis.io>
parents: 644
diff changeset
256 - Handles on arc
8b6adfb62a2f Code is broken -- stashing ongoing work in a branch
Benjamin Golinvaux <bgo@osimis.io>
parents: 644
diff changeset
257 - Select measure tool with hit test --> Delete command
644
f939f449482c Ongoing tracker work.
Benjamin Golinvaux <bgo@osimis.io>
parents: 611
diff changeset
258