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