Mercurial > hg > orthanc-stone
comparison OrthancStone/Sources/Scene2D/AnnotationsSceneLayer.cpp @ 1985:bb307007f8e2
improved interaction with rectangle probes
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 31 Oct 2022 15:01:09 +0100 |
parents | 187a261d7ae2 |
children | e29783c92419 |
comparison
equal
deleted
inserted
replaced
1984:187a261d7ae2 | 1985:bb307007f8e2 |
---|---|
1672 else if (&primitive == &segment1_) | 1672 else if (&primitive == &segment1_) |
1673 { | 1673 { |
1674 const double x1 = segment1_.GetPosition1().GetX(); | 1674 const double x1 = segment1_.GetPosition1().GetX(); |
1675 const double y1 = segment1_.GetPosition1().GetY(); | 1675 const double y1 = segment1_.GetPosition1().GetY(); |
1676 const double x2 = segment1_.GetPosition2().GetX(); | 1676 const double x2 = segment1_.GetPosition2().GetX(); |
1677 const double y2 = handle2_.GetCenter().GetY(); | 1677 |
1678 const double y2 = y1 + handle2_.GetCenter().GetY() - handle1_.GetCenter().GetY(); | |
1679 //const double y2 = handle2_.GetCenter().GetY(); | |
1680 | |
1678 handle1_.SetCenter(x1, y1); | 1681 handle1_.SetCenter(x1, y1); |
1679 handle2_.SetCenter(x2, y2); | 1682 handle2_.SetCenter(x2, y2); |
1680 segment2_.SetPosition(x2, y1, x2, y2); | 1683 segment2_.SetPosition(x2, y1, x2, y2); |
1681 segment3_.SetPosition(x2, y2, x1, y2); | 1684 segment3_.SetPosition(x2, y2, x1, y2); |
1682 segment4_.SetPosition(x1, y2, x1, y1); | 1685 segment4_.SetPosition(x1, y2, x1, y1); |
1683 } | 1686 } |
1684 else if (&primitive == &segment2_) | 1687 else if (&primitive == &segment2_) |
1685 { | 1688 { |
1686 const double x1 = handle1_.GetCenter().GetX(); | |
1687 const double y1 = segment2_.GetPosition1().GetY(); | 1689 const double y1 = segment2_.GetPosition1().GetY(); |
1688 const double x2 = segment2_.GetPosition2().GetX(); | 1690 const double x2 = segment2_.GetPosition2().GetX(); |
1689 const double y2 = segment2_.GetPosition2().GetY(); | 1691 const double y2 = segment2_.GetPosition2().GetY(); |
1692 | |
1693 const double x1 = x2 + handle1_.GetCenter().GetX() - handle2_.GetCenter().GetX(); | |
1694 //const double x1 = handle1_.GetCenter().GetX(); | |
1695 | |
1690 handle1_.SetCenter(x1, y1); | 1696 handle1_.SetCenter(x1, y1); |
1691 handle2_.SetCenter(x2, y2); | 1697 handle2_.SetCenter(x2, y2); |
1692 segment1_.SetPosition(x1, y1, x2, y1); | 1698 segment1_.SetPosition(x1, y1, x2, y1); |
1693 segment3_.SetPosition(x2, y2, x1, y2); | 1699 segment3_.SetPosition(x2, y2, x1, y2); |
1694 segment4_.SetPosition(x1, y2, x1, y1); | 1700 segment4_.SetPosition(x1, y2, x1, y1); |
1695 } | 1701 } |
1696 else if (&primitive == &segment3_) | 1702 else if (&primitive == &segment3_) |
1697 { | 1703 { |
1698 const double x1 = segment3_.GetPosition2().GetX(); | 1704 const double x1 = segment3_.GetPosition2().GetX(); |
1699 const double y1 = handle1_.GetCenter().GetY(); | |
1700 const double x2 = segment3_.GetPosition1().GetX(); | 1705 const double x2 = segment3_.GetPosition1().GetX(); |
1701 const double y2 = segment3_.GetPosition2().GetY(); | 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 | |
1702 handle1_.SetCenter(x1, y1); | 1711 handle1_.SetCenter(x1, y1); |
1703 handle2_.SetCenter(x2, y2); | 1712 handle2_.SetCenter(x2, y2); |
1704 segment1_.SetPosition(x1, y1, x2, y1); | 1713 segment1_.SetPosition(x1, y1, x2, y1); |
1705 segment2_.SetPosition(x2, y1, x2, y2); | 1714 segment2_.SetPosition(x2, y1, x2, y2); |
1706 segment4_.SetPosition(x1, y2, x1, y1); | 1715 segment4_.SetPosition(x1, y2, x1, y1); |
1707 } | 1716 } |
1708 else if (&primitive == &segment4_) | 1717 else if (&primitive == &segment4_) |
1709 { | 1718 { |
1710 const double x1 = segment4_.GetPosition2().GetX(); | 1719 const double x1 = segment4_.GetPosition2().GetX(); |
1711 const double y1 = segment4_.GetPosition2().GetY(); | 1720 const double y1 = segment4_.GetPosition2().GetY(); |
1712 const double x2 = handle2_.GetCenter().GetX(); | |
1713 const double y2 = segment4_.GetPosition1().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 | |
1714 handle1_.SetCenter(x1, y1); | 1726 handle1_.SetCenter(x1, y1); |
1715 handle2_.SetCenter(x2, y2); | 1727 handle2_.SetCenter(x2, y2); |
1716 segment1_.SetPosition(x1, y1, x2, y1); | 1728 segment1_.SetPosition(x1, y1, x2, y1); |
1717 segment2_.SetPosition(x2, y1, x2, y2); | 1729 segment2_.SetPosition(x2, y1, x2, y2); |
1718 segment3_.SetPosition(x2, y2, x1, y2); | 1730 segment3_.SetPosition(x2, y2, x1, y2); |