Mercurial > hg > orthanc-stone
annotate OrthancStone/Sources/Fonts/GlyphTextureAlphabet.h @ 1854:4026a458349d
Fix values reported in "ww/wc" info panel (windowing width and center)
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 13 Aug 2021 17:53:50 +0200 |
parents | 9ac2a65d4172 |
children | 3889ae96d2e9 |
rev | line source |
---|---|
577 | 1 /** |
2 * Stone of Orthanc | |
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics | |
4 * Department, University Hospital of Liege, Belgium | |
1739
9ac2a65d4172
upgrade to year 2021
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1598
diff
changeset
|
5 * Copyright (C) 2017-2021 Osimis S.A., Belgium |
577 | 6 * |
7 * This program is free software: you can redistribute it and/or | |
1598
8563ea5d8ae4
relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1596
diff
changeset
|
8 * modify it under the terms of the GNU Lesser General Public License |
577 | 9 * as published by the Free Software Foundation, either version 3 of |
10 * the License, or (at your option) any later version. | |
11 * | |
12 * This program is distributed in the hope that it will be useful, but | |
13 * WITHOUT ANY WARRANTY; without even the implied warranty of | |
1598
8563ea5d8ae4
relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1596
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
8563ea5d8ae4
relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1596
diff
changeset
|
15 * Lesser General Public License for more details. |
1596
4fb8fdf03314
removed annoying whitespace
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1571
diff
changeset
|
16 * |
1598
8563ea5d8ae4
relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1596
diff
changeset
|
17 * You should have received a copy of the GNU Lesser General Public |
8563ea5d8ae4
relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1596
diff
changeset
|
18 * License along with this program. If not, see |
8563ea5d8ae4
relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1596
diff
changeset
|
19 * <http://www.gnu.org/licenses/>. |
577 | 20 **/ |
21 | |
22 | |
23 #pragma once | |
24 | |
25 #include "GlyphBitmapAlphabet.h" | |
26 | |
1455
30deba7bc8e2
simplifying include_directories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1298
diff
changeset
|
27 #include <Images/ImageAccessor.h> |
577 | 28 |
29 namespace OrthancStone | |
30 { | |
31 class GlyphTextureAlphabet : public boost::noncopyable | |
32 { | |
33 public: | |
34 class TextureLocation : public Orthanc::IDynamicObject | |
35 { | |
36 private: | |
37 unsigned int x_; | |
38 unsigned int y_; | |
39 | |
40 public: | |
41 TextureLocation(unsigned int x, | |
42 unsigned int y) : | |
43 x_(x), | |
44 y_(y) | |
45 { | |
46 } | |
47 | |
48 unsigned int GetX() const | |
49 { | |
50 return x_; | |
51 } | |
52 | |
53 unsigned int GetY() const | |
54 { | |
55 return y_; | |
56 } | |
57 }; | |
58 | |
59 private: | |
60 class GlyphSizeVisitor; | |
61 class TextureGenerator; | |
62 class RenderTextVisitor; | |
63 | |
64 GlyphAlphabet alphabet_; | |
1298
8a0a62189f46
replacing std::auto_ptr by std::unique_ptr
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1270
diff
changeset
|
65 std::unique_ptr<Orthanc::ImageAccessor> texture_; |
577 | 66 unsigned int textureWidth_; |
67 unsigned int textureHeight_; | |
68 | |
69 public: | |
1571 | 70 explicit GlyphTextureAlphabet(const GlyphBitmapAlphabet& sourceAlphabet); |
577 | 71 |
72 const Orthanc::ImageAccessor& GetTexture() const; | |
73 | |
74 Orthanc::ImageAccessor* ReleaseTexture(); | |
75 | |
76 Orthanc::ImageAccessor* RenderText(const std::string& utf8); | |
77 | |
78 const GlyphAlphabet& GetAlphabet() const | |
79 { | |
80 return alphabet_; | |
81 } | |
82 | |
83 unsigned int GetTextureWidth() const | |
84 { | |
85 return textureWidth_; | |
86 } | |
87 | |
88 unsigned int GetTextureHeight() const | |
89 { | |
90 return textureHeight_; | |
91 } | |
92 }; | |
93 } |