comparison Framework/Scene2DViewport/MeasureToolsToolbox.cpp @ 900:f9ae731fdc25 am-dev

Merge
author Alain Mazy <alain@mazy.be>
date Tue, 16 Jul 2019 12:42:31 +0200
parents 0c5201499af8
children 240359ab1651
comparison
equal deleted inserted replaced
897:9c2f6d6b9f4a 900:f9ae731fdc25
58 static const double factor = 180.0 / g_pi; 58 static const double factor = 180.0 / g_pi;
59 return angleRad * factor; 59 return angleRad * factor;
60 } 60 }
61 61
62 void AddSquare(PolylineSceneLayer::Chain& chain, 62 void AddSquare(PolylineSceneLayer::Chain& chain,
63 boost::shared_ptr<const Scene2D> scene, 63 const Scene2D& scene,
64 const ScenePoint2D& centerS, 64 const ScenePoint2D& centerS,
65 const double& sideLengthS) 65 const double& sideLengthS)
66 { 66 {
67 // get the scaling factor 67 // get the scaling factor
68 const double sceneToCanvas = 68 const double sceneToCanvas =
69 scene->GetSceneToCanvasTransform().ComputeZoom(); 69 scene.GetSceneToCanvasTransform().ComputeZoom();
70 70
71 chain.clear(); 71 chain.clear();
72 chain.reserve(4); 72 chain.reserve(4);
73 ScenePoint2D centerC = centerS.Apply(scene->GetSceneToCanvasTransform()); 73 ScenePoint2D centerC = centerS.Apply(scene.GetSceneToCanvasTransform());
74 //TODO: take DPI into account 74 //TODO: take DPI into account
75 double handleLX = centerC.GetX() - sideLengthS * sceneToCanvas * 0.5; 75 double handleLX = centerC.GetX() - sideLengthS * sceneToCanvas * 0.5;
76 double handleTY = centerC.GetY() - sideLengthS * sceneToCanvas * 0.5; 76 double handleTY = centerC.GetY() - sideLengthS * sceneToCanvas * 0.5;
77 double handleRX = centerC.GetX() + sideLengthS * sceneToCanvas * 0.5; 77 double handleRX = centerC.GetX() + sideLengthS * sceneToCanvas * 0.5;
78 double handleBY = centerC.GetY() + sideLengthS * sceneToCanvas * 0.5; 78 double handleBY = centerC.GetY() + sideLengthS * sceneToCanvas * 0.5;
79 ScenePoint2D LTC(handleLX, handleTY); 79 ScenePoint2D LTC(handleLX, handleTY);
80 ScenePoint2D RTC(handleRX, handleTY); 80 ScenePoint2D RTC(handleRX, handleTY);
81 ScenePoint2D RBC(handleRX, handleBY); 81 ScenePoint2D RBC(handleRX, handleBY);
82 ScenePoint2D LBC(handleLX, handleBY); 82 ScenePoint2D LBC(handleLX, handleBY);
83 83
84 ScenePoint2D startLT = LTC.Apply(scene->GetCanvasToSceneTransform()); 84 ScenePoint2D startLT = LTC.Apply(scene.GetCanvasToSceneTransform());
85 ScenePoint2D startRT = RTC.Apply(scene->GetCanvasToSceneTransform()); 85 ScenePoint2D startRT = RTC.Apply(scene.GetCanvasToSceneTransform());
86 ScenePoint2D startRB = RBC.Apply(scene->GetCanvasToSceneTransform()); 86 ScenePoint2D startRB = RBC.Apply(scene.GetCanvasToSceneTransform());
87 ScenePoint2D startLB = LBC.Apply(scene->GetCanvasToSceneTransform()); 87 ScenePoint2D startLB = LBC.Apply(scene.GetCanvasToSceneTransform());
88 88
89 chain.push_back(startLT); 89 chain.push_back(startLT);
90 chain.push_back(startRT); 90 chain.push_back(startRT);
91 chain.push_back(startRB); 91 chain.push_back(startRB);
92 chain.push_back(startLB); 92 chain.push_back(startLB);
286 This utility function assumes that the layer holder contains 5 text layers 286 This utility function assumes that the layer holder contains 5 text layers
287 and will use the first four ones for the text background and the fifth one 287 and will use the first four ones for the text background and the fifth one
288 for the actual text 288 for the actual text
289 */ 289 */
290 void SetTextLayerOutlineProperties( 290 void SetTextLayerOutlineProperties(
291 boost::shared_ptr<Scene2D> scene, boost::shared_ptr<LayerHolder> layerHolder, 291 Scene2D& scene, boost::shared_ptr<LayerHolder> layerHolder,
292 const char* text, ScenePoint2D p) 292 const char* text, ScenePoint2D p)
293 { 293 {
294 double xoffsets[5] = { 2, 0, -2, 0, 0 }; 294 double xoffsets[5] = { 2, 0, -2, 0, 0 };
295 double yoffsets[5] = { 0, -2, 0, 2, 0 }; 295 double yoffsets[5] = { 0, -2, 0, 2, 0 };
296 296
297 // get the scaling factor 297 // get the scaling factor
298 const double pixelToScene = 298 const double pixelToScene =
299 scene->GetCanvasToSceneTransform().ComputeZoom(); 299 scene.GetCanvasToSceneTransform().ComputeZoom();
300 300
301 for (int i = 0; i < 5; ++i) 301 for (int i = 0; i < 5; ++i)
302 { 302 {
303 TextSceneLayer* textLayer = layerHolder->GetTextLayer(i); 303 TextSceneLayer* textLayer = layerHolder->GetTextLayer(i);
304 textLayer->SetText(text); 304 textLayer->SetText(text);