# HG changeset patch # User Sebastien Jodogne # Date 1667226018 -3600 # Node ID e29783c92419ff2814ec7786aef7249ff80f95de # Parent bb307007f8e28c220bc223e69665d01281240724 refactoring diff -r bb307007f8e2 -r e29783c92419 OrthancStone/Sources/Scene2D/AnnotationsSceneLayer.cpp --- a/OrthancStone/Sources/Scene2D/AnnotationsSceneLayer.cpp Mon Oct 31 15:01:09 2022 +0100 +++ b/OrthancStone/Sources/Scene2D/AnnotationsSceneLayer.cpp Mon Oct 31 15:20:18 2022 +0100 @@ -1621,8 +1621,8 @@ handle2_(AddTypedPrimitive(new Handle(*this, Handle::Shape_Square, p2))), segment1_(AddTypedPrimitive(new Segment(*this, p1.GetX(), p1.GetY(), p2.GetX(), p1.GetY()))), segment2_(AddTypedPrimitive(new Segment(*this, p2.GetX(), p1.GetY(), p2.GetX(), p2.GetY()))), - segment3_(AddTypedPrimitive(new Segment(*this, p2.GetX(), p2.GetY(), p1.GetX(), p2.GetY()))), - segment4_(AddTypedPrimitive(new Segment(*this, p1.GetX(), p2.GetY(), p1.GetX(), p1.GetY()))), + segment3_(AddTypedPrimitive(new Segment(*this, p1.GetX(), p2.GetY(), p2.GetX(), p2.GetY()))), + segment4_(AddTypedPrimitive(new Segment(*this, p1.GetX(), p1.GetY(), p1.GetX(), p2.GetY()))), label_(AddTypedPrimitive(new Text(that, *this))) { TextSceneLayer content; @@ -1660,74 +1660,70 @@ if (&primitive == &handle1_ || &primitive == &handle2_) { - const double x1 = handle1_.GetCenter().GetX(); - const double y1 = handle1_.GetCenter().GetY(); - const double x2 = handle2_.GetCenter().GetX(); - const double y2 = handle2_.GetCenter().GetY(); + double x1 = handle1_.GetCenter().GetX(); + double y1 = handle1_.GetCenter().GetY(); + double x2 = handle2_.GetCenter().GetX(); + double y2 = handle2_.GetCenter().GetY(); + segment1_.SetPosition(x1, y1, x2, y1); segment2_.SetPosition(x2, y1, x2, y2); - segment3_.SetPosition(x2, y2, x1, y2); - segment4_.SetPosition(x1, y2, x1, y1); + segment3_.SetPosition(x1, y2, x2, y2); + segment4_.SetPosition(x1, y1, x1, y2); } - else if (&primitive == &segment1_) + else if (&primitive == &segment1_ || + &primitive == &segment2_ || + &primitive == &segment3_ || + &primitive == &segment4_) { - const double x1 = segment1_.GetPosition1().GetX(); - const double y1 = segment1_.GetPosition1().GetY(); - const double x2 = segment1_.GetPosition2().GetX(); + const Segment& segment = dynamic_cast(primitive); + double x1 = segment.GetPosition1().GetX(); + double y1 = segment.GetPosition1().GetY(); + double x2 = segment.GetPosition2().GetX(); + double y2 = segment.GetPosition2().GetY(); - const double y2 = y1 + handle2_.GetCenter().GetY() - handle1_.GetCenter().GetY(); - //const double y2 = handle2_.GetCenter().GetY(); + if (&primitive == &segment1_) + { + y2 = y1 + handle2_.GetCenter().GetY() - handle1_.GetCenter().GetY(); + } + else if (&primitive == &segment2_) + { + x1 = x2 + handle1_.GetCenter().GetX() - handle2_.GetCenter().GetX(); + } + else if (&primitive == &segment3_) + { + y1 = y2 + handle1_.GetCenter().GetY() - handle2_.GetCenter().GetY(); + } + else if (&primitive == &segment4_) + { + x2 = x1 + handle2_.GetCenter().GetX() - handle1_.GetCenter().GetX(); + } + else + { + throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError); + } handle1_.SetCenter(x1, y1); handle2_.SetCenter(x2, y2); - segment2_.SetPosition(x2, y1, x2, y2); - segment3_.SetPosition(x2, y2, x1, y2); - segment4_.SetPosition(x1, y2, x1, y1); - } - else if (&primitive == &segment2_) - { - const double y1 = segment2_.GetPosition1().GetY(); - const double x2 = segment2_.GetPosition2().GetX(); - const double y2 = segment2_.GetPosition2().GetY(); - - const double x1 = x2 + handle1_.GetCenter().GetX() - handle2_.GetCenter().GetX(); - //const double x1 = handle1_.GetCenter().GetX(); - handle1_.SetCenter(x1, y1); - handle2_.SetCenter(x2, y2); - segment1_.SetPosition(x1, y1, x2, y1); - segment3_.SetPosition(x2, y2, x1, y2); - segment4_.SetPosition(x1, y2, x1, y1); - } - else if (&primitive == &segment3_) - { - const double x1 = segment3_.GetPosition2().GetX(); - const double x2 = segment3_.GetPosition1().GetX(); - const double y2 = segment3_.GetPosition2().GetY(); - - const double y1 = y2 + handle1_.GetCenter().GetY() - handle2_.GetCenter().GetY(); - //const double y1 = handle1_.GetCenter().GetY(); + if (&primitive != &segment1_) + { + segment1_.SetPosition(x1, y1, x2, y1); + } + + if (&primitive != &segment2_) + { + segment2_.SetPosition(x2, y1, x2, y2); + } - handle1_.SetCenter(x1, y1); - handle2_.SetCenter(x2, y2); - segment1_.SetPosition(x1, y1, x2, y1); - segment2_.SetPosition(x2, y1, x2, y2); - segment4_.SetPosition(x1, y2, x1, y1); - } - else if (&primitive == &segment4_) - { - const double x1 = segment4_.GetPosition2().GetX(); - const double y1 = segment4_.GetPosition2().GetY(); - const double y2 = segment4_.GetPosition1().GetY(); + if (&primitive != &segment3_) + { + segment3_.SetPosition(x1, y2, x2, y2); + } - const double x2 = x1 + handle2_.GetCenter().GetX() - handle1_.GetCenter().GetX(); - //const double x2 = handle2_.GetCenter().GetX(); - - handle1_.SetCenter(x1, y1); - handle2_.SetCenter(x2, y2); - segment1_.SetPosition(x1, y1, x2, y1); - segment2_.SetPosition(x2, y1, x2, y2); - segment3_.SetPosition(x2, y2, x1, y2); + if (&primitive != &segment4_) + { + segment4_.SetPosition(x1, y1, x1, y2); + } } else {