Mercurial > hg > orthanc-stone
comparison Framework/Layers/CircleMeasureTracker.cpp @ 365:ef31240a73f6 am-2
no automatic call to moc and uic, CircleMeasureTracker using Orthanc fonts
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 31 Oct 2018 18:10:29 +0100 |
parents | 50e5ec1bdd46 |
children | a7de01c8fd29 |
comparison
equal
deleted
inserted
replaced
364:aad2f9293089 | 365:ef31240a73f6 |
---|---|
22 #define _USE_MATH_DEFINES // To access M_PI in Visual Studio | 22 #define _USE_MATH_DEFINES // To access M_PI in Visual Studio |
23 #include <cmath> | 23 #include <cmath> |
24 | 24 |
25 #include "CircleMeasureTracker.h" | 25 #include "CircleMeasureTracker.h" |
26 | 26 |
27 #include "../Viewport/CairoFont.h" | |
28 | |
29 #include <stdio.h> | 27 #include <stdio.h> |
30 | 28 |
31 namespace OrthancStone | 29 namespace OrthancStone |
32 { | 30 { |
33 CircleMeasureTracker::CircleMeasureTracker(IStatusBar* statusBar, | 31 CircleMeasureTracker::CircleMeasureTracker(IStatusBar* statusBar, |
35 double x, | 33 double x, |
36 double y, | 34 double y, |
37 uint8_t red, | 35 uint8_t red, |
38 uint8_t green, | 36 uint8_t green, |
39 uint8_t blue, | 37 uint8_t blue, |
40 unsigned int fontSize) : | 38 const Orthanc::Font& font) : |
41 statusBar_(statusBar), | 39 statusBar_(statusBar), |
42 slice_(slice), | 40 slice_(slice), |
43 x1_(x), | 41 x1_(x), |
44 y1_(y), | 42 y1_(y), |
45 x2_(x), | 43 x2_(x), |
46 y2_(y), | 44 y2_(y), |
47 fontSize_(fontSize) | 45 font_(font) |
48 { | 46 { |
49 color_[0] = red; | 47 color_[0] = red; |
50 color_[1] = green; | 48 color_[1] = green; |
51 color_[2] = blue; | 49 color_[2] = blue; |
52 } | 50 } |
71 cairo_arc(cr, 0, 0, r, 0, 2 * M_PI); | 69 cairo_arc(cr, 0, 0, r, 0, 2 * M_PI); |
72 cairo_stroke_preserve(cr); | 70 cairo_stroke_preserve(cr); |
73 cairo_stroke(cr); | 71 cairo_stroke(cr); |
74 cairo_restore(cr); | 72 cairo_restore(cr); |
75 | 73 |
76 if (fontSize_ != 0) | 74 //context.SetSourceColor(0, 255, 0); |
77 { | 75 context.DrawText(font_, FormatRadius(), x, y); |
78 cairo_move_to(cr, x, y); | |
79 #if ORTHANC_ENABLE_NATIVE==1 // text rendering currently fails in wasm | |
80 CairoFont font("sans-serif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL); | |
81 font.Draw(context, FormatRadius(), static_cast<double>(fontSize_) / zoom); | |
82 #endif | |
83 } | |
84 } | 76 } |
85 | 77 |
86 | 78 |
87 double CircleMeasureTracker::GetRadius() const // In millimeters | 79 double CircleMeasureTracker::GetRadius() const // In millimeters |
88 { | 80 { |