Mercurial > hg > orthanc-stone
comparison OrthancStone/Sources/Scene2D/Internals/CairoInfoPanelRenderer.cpp @ 1571:85e117739eca
cppcheck
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 21 Sep 2020 17:46:39 +0200 |
parents | 244ad1e4e76a |
children | 4fb8fdf03314 |
comparison
equal
deleted
inserted
replaced
1570:9a04f42098a3 | 1571:85e117739eca |
---|---|
66 static_cast<int32_t>(0.5 * texture_.GetWidth()); | 66 static_cast<int32_t>(0.5 * texture_.GetWidth()); |
67 | 67 |
68 int32_t halfHeight = | 68 int32_t halfHeight = |
69 static_cast<int32_t>(0.5 * texture_.GetHeight()); | 69 static_cast<int32_t>(0.5 * texture_.GetHeight()); |
70 | 70 |
71 AffineTransform2D translation1 = | |
72 AffineTransform2D::CreateOffset(-halfWidth, -halfHeight); | |
73 | |
74 const Matrix& sceneTransformM = transform.GetHomogeneousMatrix(); | 71 const Matrix& sceneTransformM = transform.GetHomogeneousMatrix(); |
75 Matrix r; | 72 Matrix r; |
76 Matrix q; | 73 Matrix q; |
77 LinearAlgebra::RQDecomposition3x3(r, q, sceneTransformM); | 74 LinearAlgebra::RQDecomposition3x3(r, q, sceneTransformM); |
78 | 75 |
80 cairo_matrix_t m; | 77 cairo_matrix_t m; |
81 cairo_matrix_init( | 78 cairo_matrix_init( |
82 &m, q(0, 0), q(1, 0), q(0, 1), q(1, 1), q(0, 2), q(1, 2)); | 79 &m, q(0, 0), q(1, 0), q(0, 1), q(1, 1), q(0, 2), q(1, 2)); |
83 | 80 |
84 // now let's build the transform piece by piece | 81 // now let's build the transform piece by piece |
85 // first translation (directly written in `transform`) | 82 // first translation (directly written in `t`) |
86 cairo_matrix_t transform; | 83 cairo_matrix_t t; |
87 cairo_matrix_init_identity(&transform); | 84 cairo_matrix_init_identity(&t); |
88 cairo_matrix_translate(&transform, -halfWidth, -halfHeight); | 85 cairo_matrix_translate(&t, -halfWidth, -halfHeight); |
89 | 86 |
90 // then the rotation | 87 // then the rotation |
91 cairo_matrix_multiply(&transform, &transform, &m); | 88 cairo_matrix_multiply(&t, &t, &m); |
92 | 89 |
93 // then the second translation | 90 // then the second translation |
94 { | 91 { |
95 cairo_matrix_t translation2; | 92 cairo_matrix_t translation2; |
96 cairo_matrix_init_translate(&translation2, halfWidth, halfHeight); | 93 cairo_matrix_init_translate(&translation2, halfWidth, halfHeight); |
97 cairo_matrix_multiply(&transform, &transform, &m); | 94 cairo_matrix_multiply(&t, &t, &m); |
98 } | 95 } |
99 | 96 |
100 // then the last translation | 97 // then the last translation |
101 { | 98 { |
102 cairo_matrix_t translation3; | 99 cairo_matrix_t translation3; |
103 cairo_matrix_init_translate(&translation3, dx, dy); | 100 cairo_matrix_init_translate(&translation3, dx, dy); |
104 cairo_matrix_multiply(&transform, &transform, &translation3); | 101 cairo_matrix_multiply(&t, &t, &translation3); |
105 } | 102 } |
106 cairo_transform(cr, &transform); | 103 cairo_transform(cr, &t); |
107 } | 104 } |
108 else | 105 else |
109 { | 106 { |
110 cairo_matrix_t t; | 107 cairo_matrix_t t; |
111 cairo_matrix_init_identity(&t); | 108 cairo_matrix_init_identity(&t); |