Mercurial > hg > orthanc-stone
comparison OrthancStone/Sources/Scene2DViewport/AngleMeasureTool.cpp @ 1791:9b650ab68d4c
replaced unneeded use of boost::share_ptr for MeasureCommand mementos by std::unique_ptr
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 17 May 2021 16:11:17 +0200 |
parents | 9ac2a65d4172 |
children | fe5c7311a7fd |
comparison
equal
deleted
inserted
replaced
1790:b325761e0bd3 | 1791:9b650ab68d4c |
---|---|
103 { | 103 { |
104 SetAngleHighlightArea(AngleHighlightArea_None); | 104 SetAngleHighlightArea(AngleHighlightArea_None); |
105 } | 105 } |
106 | 106 |
107 | 107 |
108 boost::shared_ptr<MeasureToolMemento> AngleMeasureTool::GetMemento() const | 108 MeasureToolMemento* AngleMeasureTool::CreateMemento() const |
109 { | 109 { |
110 boost::shared_ptr<AngleMeasureToolMemento> memento(new AngleMeasureToolMemento()); | 110 std::unique_ptr<AngleMeasureToolMemento> memento(new AngleMeasureToolMemento()); |
111 memento->center_ = center_; | 111 memento->center_ = center_; |
112 memento->side1End_ = side1End_; | 112 memento->side1End_ = side1End_; |
113 memento->side2End_ = side2End_; | 113 memento->side2End_ = side2End_; |
114 return memento; | 114 return memento.release(); |
115 } | 115 } |
116 | 116 |
117 void AngleMeasureTool::SetMemento(boost::shared_ptr<MeasureToolMemento> mementoBase) | 117 void AngleMeasureTool::SetMemento(const MeasureToolMemento& mementoBase) |
118 { | 118 { |
119 boost::shared_ptr<AngleMeasureToolMemento> memento = | 119 const AngleMeasureToolMemento& memento = dynamic_cast<const AngleMeasureToolMemento&>(mementoBase); |
120 boost::dynamic_pointer_cast<AngleMeasureToolMemento>(mementoBase); | 120 center_ = memento.center_; |
121 | 121 side1End_ = memento.side1End_; |
122 ORTHANC_ASSERT(memento.get() != NULL, "Internal error: wrong (or bad) memento"); | 122 side2End_ = memento.side2End_; |
123 center_ = memento->center_; | |
124 side1End_ = memento->side1End_; | |
125 side2End_ = memento->side2End_; | |
126 RefreshScene(); | 123 RefreshScene(); |
127 } | 124 } |
128 | 125 |
129 std::string AngleMeasureTool::GetDescription() | 126 std::string AngleMeasureTool::GetDescription() |
130 { | 127 { |
350 | 347 |
351 double pointX = center_.GetX() + ox; | 348 double pointX = center_.GetX() + ox; |
352 double pointY = center_.GetY() + oy; | 349 double pointY = center_.GetY() + oy; |
353 | 350 |
354 char buf[64]; | 351 char buf[64]; |
355 double angleDeg = RadiansToDegrees(delta); | 352 double angleDeg = std::abs(RadiansToDegrees(delta)); |
356 | 353 |
357 // http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?input=00B0&mode=hex | 354 // http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?input=00B0&mode=hex |
358 sprintf(buf, "%0.02f\xc2\xb0", angleDeg); | 355 sprintf(buf, "%0.02f\xc2\xb0", angleDeg); |
359 | 356 |
360 #if ORTHANC_STONE_ENABLE_OUTLINED_TEXT == 1 | 357 #if ORTHANC_STONE_ENABLE_OUTLINED_TEXT == 1 |