72 aPt.
setX( aPt.
X() * nXMul );
73 aPt.
setX( aPt.
X() / nXDiv );
76 aPt.
setY( aPt.
Y() * nYMul );
77 aPt.
setY( aPt.
Y() / nYDiv );
84 if (aPt.
Y()<aBound.
Top ()) aPt.
setY(aBound.
Top () );
113 if (nXMul==0) nXMul=1;
114 if (nYMul==0) nYMul=1;
118 aPt.
setX( aPt.
X() * nXDiv );
119 aPt.
setX( aPt.
X() / nXMul );
122 aPt.
setY( aPt.
Y() * nYDiv );
123 aPt.
setY( aPt.
Y() / nYMul );
180 if (nAngle>=31500_deg100 || nAngle<4500_deg100)
182 if (nAngle<13500_deg100)
184 if (nAngle<22500_deg100)
218 nAW+=2_deg100*(nAngle-nAW);
226 nEW+=2_deg100*(nAngle-nEW);
231 nEW+=2_deg100*(nAngle-nEW);
236 nEW+=2_deg100*(nAngle-nEW);
241 nEW+=2_deg100*(nAngle-nEW);
269 rWin.
Invalidate(aRect, InvalidateFlags::NoErase);
300 sal_uInt16 nInsPos=
nCount;
303 bool bHole = nLastId>
nCount;
305 if (!bHole ||
nId==0) {
309 for (sal_uInt16 nNum=0; nNum<
nCount && !bBrk; nNum++) {
310 const auto& pGP2=
aList[nNum];
311 sal_uInt16 nTmpId=pGP2.GetId();
332 for (
auto& xGP :
aList)
333 xGP.Invalidate(rWin,pObj);
343 const auto& pGP=
aList[nNum];
344 if (pGP.GetId()==
nId) nRet=nNum;
356 const auto& pGP =
aList[nNum];
357 if (pGP.IsHit(rPnt,rOut,pObj))
365 for (
auto& xGP :
aList)
366 xGP.SetReallyAbsolute(bOn,rObj);
371 for (
auto& xGP :
aList)
372 xGP.Rotate(rRef,nAngle,sn,cs,pObj);
377 Point aPt(rRef2); aPt-=rRef1;
379 Mirror(rRef1,rRef2,nAngle,pObj);
384 for (
auto& xGP :
aList)
385 xGP.Mirror(rRef1,rRef2,nAngle,pObj);
390 for (
auto& xGP :
aList)
391 xGP.Shear(rRef,tn,bVShear,pObj);
SAL_WARN_UNUSED_RESULT Point PixelToLogic(const Point &rDevicePt) const
constexpr tools::Long Y() const
void setX(tools::Long nX)
void setY(tools::Long nY)
constexpr tools::Long X() const
std::vector< SdrGluePoint > aList
sal_uInt16 Insert(const SdrGluePoint &rGP)
void SetReallyAbsolute(bool bOn, const SdrObject &rObj)
sal_uInt16 FindGluePoint(sal_uInt16 nId) const
sal_uInt16 HitTest(const Point &rPnt, const OutputDevice &rOut, const SdrObject *pObj) const
void Rotate(const Point &rRef, Degree100 nAngle, double sn, double cs, const SdrObject *pObj)
void Mirror(const Point &rRef1, const Point &rRef2, const SdrObject *pObj)
void Invalidate(vcl::Window &rWin, const SdrObject *pObj) const
SdrGluePointList & operator=(const SdrGluePointList &rSrcList)
void Shear(const Point &rRef, double tn, bool bVShear, const SdrObject *pObj)
sal_uInt16 GetCount() const
void Shear(const Point &rRef, double tn, bool bVShear, const SdrObject *pObj)
void Rotate(const Point &rRef, Degree100 nAngle, double sn, double cs, const SdrObject *pObj)
bool IsHit(const Point &rPnt, const OutputDevice &rOut, const SdrObject *pObj) const
Point GetAbsolutePos(const SdrObject &rObj) const
Degree100 GetAlignAngle() const
void Invalidate(vcl::Window &rWin, const SdrObject *pObj) const
static Degree100 EscDirToAngle(SdrEscapeDirection nEsc)
void SetPos(const Point &rNewPos)
void Mirror(const Point &rRef1, const Point &rRef2, Degree100 nAngle, const SdrObject *pObj)
void SetAlignAngle(Degree100 nAngle)
void SetId(sal_uInt16 nNewId)
SdrEscapeDirection nEscDir
void SetReallyAbsolute(bool bOn, const SdrObject &rObj)
SdrAlign GetVertAlign() const
static SdrEscapeDirection EscAngleToDir(Degree100 nAngle)
SdrAlign GetHorzAlign() const
void SetAbsolutePos(const Point &rNewPos, const SdrObject &rObj)
const Point & GetPos() const
virtual const tools::Rectangle & GetSnapRect() const
constexpr tools::Long Height() const
constexpr tools::Long Width() const
Point LogicToPixel(const Point &rLogicPt) const
bool IsMapModeEnabled() const
void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
void EnableMapMode(bool bEnable=true)
#define DBG_ASSERT(sCon, aError)
const Size aGlueHalfSize(4, 4)
#define SDRGLUEPOINT_NOTFOUND
Degree100 GetAngle(const Point &rPnt)
The Y axis points down! The function negates the Y axis, when calculating the angle,...
void MirrorPoint(Point &rPnt, const Point &rRef1, const Point &rRef2)
Degree100 NormAngle36000(Degree100 a)
Normalize angle to -180.00..179.99.
void ShearPoint(Point &rPnt, const Point &rRef, double tn, bool bVShear=false)
void RotatePoint(Point &rPnt, const Point &rRef, double sn, double cs)