Mercurial > hg > orthanc-stl
annotate Resources/EmbedStaticAssets.py @ 59:21335e91225e nexus
closing nexus
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 21 May 2024 16:03:07 +0200 |
parents | 9b2a2fcc9878 |
children | b798387b085c |
rev | line source |
---|---|
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1 #!/usr/bin/python3 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
2 |
24 | 3 # SPDX-FileCopyrightText: 2023-2024 Sebastien Jodogne, UCLouvain, Belgium |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
4 # SPDX-License-Identifier: GPL-3.0-or-later |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
5 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
6 # STL plugin for Orthanc |
24 | 7 # Copyright (C) 2023-2024 Sebastien Jodogne, UCLouvain, Belgium |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
8 # |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
9 # This program is free software: you can redistribute it and/or |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
10 # modify it under the terms of the GNU General Public License as |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
11 # published by the Free Software Foundation, either version 3 of the |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
12 # License, or (at your option) any later version. |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
13 # |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
14 # This program is distributed in the hope that it will be useful, but |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
15 # WITHOUT ANY WARRANTY; without even the implied warranty of |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
17 # General Public License for more details. |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
18 # |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
19 # You should have received a copy of the GNU General Public License |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
20 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
21 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
22 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
23 import gzip |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
24 import hashlib |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
25 import io |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
26 import os |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
27 import sys |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
28 |
46
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
29 if len(sys.argv) <= 2: |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
30 raise Exception('Usage: %s [target C++] [source folders]' % sys.argv[0]) |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
31 |
46
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
32 SOURCES = sys.argv[2:] |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
33 TARGET = sys.argv[1] |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
34 |
46
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
35 for source in SOURCES: |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
36 if not os.path.isdir(source): |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
37 raise Exception('Nonexistent source folder: %s' % source) |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
38 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
39 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
40 def EncodeFileAsCString(f, variable, content): |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
41 f.write('static const uint8_t %s[%d] = \n "' % (variable, len(content) + 1)) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
42 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
43 column = 0 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
44 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
45 for c in content: |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
46 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
47 if sys.version_info < (3, 0): |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
48 # Python 2.7 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
49 i = ord(c) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
50 else: |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
51 # Python 3.x |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
52 i = c |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
53 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
54 if i < 32 or i >= 127 or i == ord('?'): |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
55 f.write('\\{0:03o}'.format(i)) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
56 elif i in [ ord('"'), ord('\\') ]: |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
57 f.write('\\' + chr(i)) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
58 else: |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
59 f.write(chr(i)) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
60 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
61 column += 1 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
62 if column >= 120: |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
63 f.write('"\n "') |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
64 column = 0 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
65 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
66 f.write('";\n\n') |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
67 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
68 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
69 def WriteChecksum(f, variable, content): |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
70 md5 = hashlib.md5(content).hexdigest() |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
71 g.write('static const char* %s = "%s";\n\n' % (variable, md5)) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
72 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
73 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
74 with open(TARGET, 'w') as g: |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
75 g.write(''' |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
76 #include <stdint.h> |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
77 #include <Compression/GzipCompressor.h> |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
78 #include <OrthancException.h> |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
79 #include <Toolbox.h> |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
80 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
81 static void Uncompress(std::string& target, const void* data, size_t size, const std::string& md5Expected) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
82 { |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
83 Orthanc::GzipCompressor compressor; |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
84 compressor.Uncompress(target, data, size); |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
85 std::string md5Actual; |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
86 Orthanc::Toolbox::ComputeMD5(md5Actual, target); |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
87 if (md5Actual != md5Expected) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
88 { |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
89 throw Orthanc::OrthancException(Orthanc::ErrorCode_CorruptedFile); |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
90 } |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
91 } |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
92 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
93 ''') |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
94 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
95 index = {} |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
96 count = 0 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
97 |
46
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
98 for source in SOURCES: |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
99 for root, dirs, files in os.walk(source): |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
100 files.sort() |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
101 dirs.sort() |
11
165447afdcde
make the build of static assets reproducible
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
102 |
46
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
103 for f in files: |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
104 fullPath = os.path.join(root, f) |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
105 relativePath = os.path.relpath(os.path.join(root, f), source) |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
106 variable = 'data_%06d' % count |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
107 |
46
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
108 with open(fullPath, 'rb') as f: |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
109 content = f.read() |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
110 |
46
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
111 if sys.version_info < (3, 0): |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
112 # Python 2.7 |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
113 fileobj = io.BytesIO() |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
114 gzip.GzipFile(fileobj=fileobj, mode='w', mtime=0).write(content) |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
115 compressed = fileobj.getvalue() |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
116 else: |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
117 # Python 3.x |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
118 compressed = gzip.compress(content, mtime=0) |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
119 |
46
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
120 EncodeFileAsCString(g, variable, compressed) |
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
121 WriteChecksum(g, variable + '_md5', content) |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
122 |
46
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
123 index[relativePath] = variable |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
124 |
46
9b2a2fcc9878
added option to disable Nexus support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
24
diff
changeset
|
125 count += 1 |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
126 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
127 g.write('void ReadStaticAsset(std::string& target, const std::string& path)\n') |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
128 g.write('{\n') |
11
165447afdcde
make the build of static assets reproducible
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
129 for (path, variable) in sorted(index.items()): |
0
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
130 g.write(' if (path == "%s")\n' % path) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
131 g.write(' {\n') |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
132 g.write(' Uncompress(target, %s, sizeof(%s) - 1, %s_md5);\n' % (variable, variable, variable)) |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
133 g.write(' return;\n') |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
134 g.write(' }\n\n') |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
135 |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
136 g.write(' throw Orthanc::OrthancException(Orthanc::ErrorCode_InexistentItem, "Unknown Three.js resource: " + path);\n') |
4e889a8e8be2
initial commit of the viewer plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
137 g.write('}\n') |