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);