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);