comparison OrthancStone/Sources/Scene2D/AnnotationsSceneLayer.cpp @ 1986:e29783c92419

refactoring
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 31 Oct 2022 15:20:18 +0100
parents bb307007f8e2
children a595776232bb
comparison
equal deleted inserted replaced
1985:bb307007f8e2 1986:e29783c92419
1619 ProbingAnnotation(that, units), 1619 ProbingAnnotation(that, units),
1620 handle1_(AddTypedPrimitive<Handle>(new Handle(*this, Handle::Shape_Square, p1))), 1620 handle1_(AddTypedPrimitive<Handle>(new Handle(*this, Handle::Shape_Square, p1))),
1621 handle2_(AddTypedPrimitive<Handle>(new Handle(*this, Handle::Shape_Square, p2))), 1621 handle2_(AddTypedPrimitive<Handle>(new Handle(*this, Handle::Shape_Square, p2))),
1622 segment1_(AddTypedPrimitive<Segment>(new Segment(*this, p1.GetX(), p1.GetY(), p2.GetX(), p1.GetY()))), 1622 segment1_(AddTypedPrimitive<Segment>(new Segment(*this, p1.GetX(), p1.GetY(), p2.GetX(), p1.GetY()))),
1623 segment2_(AddTypedPrimitive<Segment>(new Segment(*this, p2.GetX(), p1.GetY(), p2.GetX(), p2.GetY()))), 1623 segment2_(AddTypedPrimitive<Segment>(new Segment(*this, p2.GetX(), p1.GetY(), p2.GetX(), p2.GetY()))),
1624 segment3_(AddTypedPrimitive<Segment>(new Segment(*this, p2.GetX(), p2.GetY(), p1.GetX(), p2.GetY()))), 1624 segment3_(AddTypedPrimitive<Segment>(new Segment(*this, p1.GetX(), p2.GetY(), p2.GetX(), p2.GetY()))),
1625 segment4_(AddTypedPrimitive<Segment>(new Segment(*this, p1.GetX(), p2.GetY(), p1.GetX(), p1.GetY()))), 1625 segment4_(AddTypedPrimitive<Segment>(new Segment(*this, p1.GetX(), p1.GetY(), p1.GetX(), p2.GetY()))),
1626 label_(AddTypedPrimitive<Text>(new Text(that, *this))) 1626 label_(AddTypedPrimitive<Text>(new Text(that, *this)))
1627 { 1627 {
1628 TextSceneLayer content; 1628 TextSceneLayer content;
1629 content.SetAnchor(BitmapAnchor_CenterLeft); 1629 content.SetAnchor(BitmapAnchor_CenterLeft);
1630 content.SetBorder(10); 1630 content.SetBorder(10);
1658 const Scene2D& scene) ORTHANC_OVERRIDE 1658 const Scene2D& scene) ORTHANC_OVERRIDE
1659 { 1659 {
1660 if (&primitive == &handle1_ || 1660 if (&primitive == &handle1_ ||
1661 &primitive == &handle2_) 1661 &primitive == &handle2_)
1662 { 1662 {
1663 const double x1 = handle1_.GetCenter().GetX(); 1663 double x1 = handle1_.GetCenter().GetX();
1664 const double y1 = handle1_.GetCenter().GetY(); 1664 double y1 = handle1_.GetCenter().GetY();
1665 const double x2 = handle2_.GetCenter().GetX(); 1665 double x2 = handle2_.GetCenter().GetX();
1666 const double y2 = handle2_.GetCenter().GetY(); 1666 double y2 = handle2_.GetCenter().GetY();
1667
1667 segment1_.SetPosition(x1, y1, x2, y1); 1668 segment1_.SetPosition(x1, y1, x2, y1);
1668 segment2_.SetPosition(x2, y1, x2, y2); 1669 segment2_.SetPosition(x2, y1, x2, y2);
1669 segment3_.SetPosition(x2, y2, x1, y2); 1670 segment3_.SetPosition(x1, y2, x2, y2);
1670 segment4_.SetPosition(x1, y2, x1, y1); 1671 segment4_.SetPosition(x1, y1, x1, y2);
1671 } 1672 }
1672 else if (&primitive == &segment1_) 1673 else if (&primitive == &segment1_ ||
1673 { 1674 &primitive == &segment2_ ||
1674 const double x1 = segment1_.GetPosition1().GetX(); 1675 &primitive == &segment3_ ||
1675 const double y1 = segment1_.GetPosition1().GetY(); 1676 &primitive == &segment4_)
1676 const double x2 = segment1_.GetPosition2().GetX(); 1677 {
1677 1678 const Segment& segment = dynamic_cast<const Segment&>(primitive);
1678 const double y2 = y1 + handle2_.GetCenter().GetY() - handle1_.GetCenter().GetY(); 1679 double x1 = segment.GetPosition1().GetX();
1679 //const double y2 = handle2_.GetCenter().GetY(); 1680 double y1 = segment.GetPosition1().GetY();
1681 double x2 = segment.GetPosition2().GetX();
1682 double y2 = segment.GetPosition2().GetY();
1683
1684 if (&primitive == &segment1_)
1685 {
1686 y2 = y1 + handle2_.GetCenter().GetY() - handle1_.GetCenter().GetY();
1687 }
1688 else if (&primitive == &segment2_)
1689 {
1690 x1 = x2 + handle1_.GetCenter().GetX() - handle2_.GetCenter().GetX();
1691 }
1692 else if (&primitive == &segment3_)
1693 {
1694 y1 = y2 + handle1_.GetCenter().GetY() - handle2_.GetCenter().GetY();
1695 }
1696 else if (&primitive == &segment4_)
1697 {
1698 x2 = x1 + handle2_.GetCenter().GetX() - handle1_.GetCenter().GetX();
1699 }
1700 else
1701 {
1702 throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError);
1703 }
1680 1704
1681 handle1_.SetCenter(x1, y1); 1705 handle1_.SetCenter(x1, y1);
1682 handle2_.SetCenter(x2, y2); 1706 handle2_.SetCenter(x2, y2);
1683 segment2_.SetPosition(x2, y1, x2, y2); 1707
1684 segment3_.SetPosition(x2, y2, x1, y2); 1708 if (&primitive != &segment1_)
1685 segment4_.SetPosition(x1, y2, x1, y1); 1709 {
1686 } 1710 segment1_.SetPosition(x1, y1, x2, y1);
1687 else if (&primitive == &segment2_) 1711 }
1688 { 1712
1689 const double y1 = segment2_.GetPosition1().GetY(); 1713 if (&primitive != &segment2_)
1690 const double x2 = segment2_.GetPosition2().GetX(); 1714 {
1691 const double y2 = segment2_.GetPosition2().GetY(); 1715 segment2_.SetPosition(x2, y1, x2, y2);
1692 1716 }
1693 const double x1 = x2 + handle1_.GetCenter().GetX() - handle2_.GetCenter().GetX(); 1717
1694 //const double x1 = handle1_.GetCenter().GetX(); 1718 if (&primitive != &segment3_)
1695 1719 {
1696 handle1_.SetCenter(x1, y1); 1720 segment3_.SetPosition(x1, y2, x2, y2);
1697 handle2_.SetCenter(x2, y2); 1721 }
1698 segment1_.SetPosition(x1, y1, x2, y1); 1722
1699 segment3_.SetPosition(x2, y2, x1, y2); 1723 if (&primitive != &segment4_)
1700 segment4_.SetPosition(x1, y2, x1, y1); 1724 {
1701 } 1725 segment4_.SetPosition(x1, y1, x1, y2);
1702 else if (&primitive == &segment3_) 1726 }
1703 {
1704 const double x1 = segment3_.GetPosition2().GetX();
1705 const double x2 = segment3_.GetPosition1().GetX();
1706 const double y2 = segment3_.GetPosition2().GetY();
1707
1708 const double y1 = y2 + handle1_.GetCenter().GetY() - handle2_.GetCenter().GetY();
1709 //const double y1 = handle1_.GetCenter().GetY();
1710
1711 handle1_.SetCenter(x1, y1);
1712 handle2_.SetCenter(x2, y2);
1713 segment1_.SetPosition(x1, y1, x2, y1);
1714 segment2_.SetPosition(x2, y1, x2, y2);
1715 segment4_.SetPosition(x1, y2, x1, y1);
1716 }
1717 else if (&primitive == &segment4_)
1718 {
1719 const double x1 = segment4_.GetPosition2().GetX();
1720 const double y1 = segment4_.GetPosition2().GetY();
1721 const double y2 = segment4_.GetPosition1().GetY();
1722
1723 const double x2 = x1 + handle2_.GetCenter().GetX() - handle1_.GetCenter().GetX();
1724 //const double x2 = handle2_.GetCenter().GetX();
1725
1726 handle1_.SetCenter(x1, y1);
1727 handle2_.SetCenter(x2, y2);
1728 segment1_.SetPosition(x1, y1, x2, y1);
1729 segment2_.SetPosition(x2, y1, x2, y2);
1730 segment3_.SetPosition(x2, y2, x1, y2);
1731 } 1727 }
1732 else 1728 else
1733 { 1729 {
1734 throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented); 1730 throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented);
1735 } 1731 }