Applied patch 1586499: wxCoordRound function

Centralises rounding and adds nearest-value rounding to
prntbase.cpp.
by Robert J. Lang


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2006-10-29 17:01:34 +00:00
parent 6ea48c514e
commit 6445acc783
11 changed files with 114 additions and 331 deletions

View File

@@ -158,88 +158,45 @@ public:
public:
wxCoord XDEV2LOG(wxCoord x) const
{
long new_x = x - m_deviceOriginX;
if (new_x > 0)
return (wxCoord)((double)new_x / m_scaleX + 0.5) * m_signX + m_logicalOriginX;
else
return (wxCoord)((double)new_x / m_scaleX - 0.5) * m_signX + m_logicalOriginX;
return wxCoordRound((double)(x - m_deviceOriginX) / m_scaleX) * m_signX + m_logicalOriginX;
}
wxCoord XDEV2LOGREL(wxCoord x) const
{
if (x > 0)
return (wxCoord)((double)x / m_scaleX + 0.5);
else
return (wxCoord)((double)x / m_scaleX - 0.5);
return wxCoordRound((double)(x) / m_scaleX);
}
wxCoord YDEV2LOG(wxCoord y) const
{
long new_y = y - m_deviceOriginY;
if (new_y > 0)
return (wxCoord)((double)new_y / m_scaleY + 0.5) * m_signY + m_logicalOriginY;
else
return (wxCoord)((double)new_y / m_scaleY - 0.5) * m_signY + m_logicalOriginY;
return wxCoordRound((double)(y - m_deviceOriginY) / m_scaleY) * m_signY + m_logicalOriginY;
}
wxCoord YDEV2LOGREL(wxCoord y) const
{
if (y > 0)
return (wxCoord)((double)y / m_scaleY + 0.5);
else
return (wxCoord)((double)y / m_scaleY - 0.5);
return wCoordRound((double)(y) / m_scaleY);
}
wxCoord XLOG2DEV(wxCoord x) const
{
long new_x = x - m_logicalOriginX;
if (new_x > 0)
return (wxCoord)((double)new_x * m_scaleX + 0.5) * m_signX + m_deviceOriginX;
else
return (wxCoord)((double)new_x * m_scaleX - 0.5) * m_signX + m_deviceOriginX;
return wxCoordRound((double)(x - m_logicalOriginX) * m_scaleX) * m_signX + m_deviceOriginX;
}
wxCoord XLOG2DEVREL(wxCoord x) const
{
if (x > 0)
return (wxCoord)((double)x * m_scaleX + 0.5);
else
return (wxCoord)((double)x * m_scaleX - 0.5);
return wxCoordRound((double)(x) * m_scaleX);
}
wxCoord YLOG2DEV(wxCoord y) const
{
long new_y = y - m_logicalOriginY;
if (new_y > 0)
return (wxCoord)((double)new_y * m_scaleY + 0.5) * m_signY + m_deviceOriginY;
else
return (wxCoord)((double)new_y * m_scaleY - 0.5) * m_signY + m_deviceOriginY;
return wxCoordRound((double)(y - m_logicalOriginY) * m_scaleY) * m_signY + m_deviceOriginY;
}
wxCoord YLOG2DEVREL(wxCoord y) const
{
if (y > 0)
return (wxCoord)((double)y * m_scaleY + 0.5);
else
return (wxCoord)((double)y * m_scaleY - 0.5);
return wxCoordRound((double)(y) * m_scaleY);
}
wxCoord XLOG2DEVMAC(wxCoord x) const
{
long new_x = x - m_logicalOriginX;
if (new_x > 0)
return (wxCoord)((double)new_x * m_scaleX + 0.5) * m_signX + m_deviceOriginX + m_macLocalOrigin.x;
else
return (wxCoord)((double)new_x * m_scaleX - 0.5) * m_signX + m_deviceOriginX + m_macLocalOrigin.x;
return wxCoordRound((double)(x - m_logicalOriginX) * m_scaleX) * m_signX + m_deviceOriginX + m_macLocalOrigin.x;
}
wxCoord YLOG2DEVMAC(wxCoord y) const
{
long new_y = y - m_logicalOriginY;
if (new_y > 0)
return (wxCoord)((double)new_y * m_scaleY + 0.5) * m_signY + m_deviceOriginY + m_macLocalOrigin.y;
else
return (wxCoord)((double)new_y * m_scaleY - 0.5) * m_signY + m_deviceOriginY + m_macLocalOrigin.y;
return wxCoordRound((double)(y - m_logicalOriginY) * m_scaleY) * m_signY + m_deviceOriginY + m_macLocalOrigin.y;
}
#if wxMAC_USE_CORE_GRAPHICS