summaryrefslogtreecommitdiff
path: root/support/dktools/WxdkdrawControlTools.cpt
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-10-12 03:04:00 +0000
committerNorbert Preining <norbert@preining.info>2020-10-12 03:04:00 +0000
commit0ce40abb18ec02ec6fd6bcc5f21612c88daa7578 (patch)
tree416289fe1448873fd8ca33051f50ad85bffa8aaa /support/dktools/WxdkdrawControlTools.cpt
parentfdb18507cd80dc17f5a5256153d34668b4f4e61c (diff)
CTAN sync 202010120303
Diffstat (limited to 'support/dktools/WxdkdrawControlTools.cpt')
-rw-r--r--support/dktools/WxdkdrawControlTools.cpt403
1 files changed, 0 insertions, 403 deletions
diff --git a/support/dktools/WxdkdrawControlTools.cpt b/support/dktools/WxdkdrawControlTools.cpt
deleted file mode 100644
index 31fc6a84fe..0000000000
--- a/support/dktools/WxdkdrawControlTools.cpt
+++ /dev/null
@@ -1,403 +0,0 @@
-%% options
-copyright owner = Dirk Krause
-copyright year = 2019-xxxx
-SPDX-License-Identifier: BSD-3-Clause
-
-
-# vim: set ai sw=4 ts=4 :
-
-%% module
-
-
-#include "wxdkdraw.h"
-
-#ifndef WXDKDRAWFRAME_H_INCLUDED
-#include "WxdkdrawFrame.h"
-#endif
-
-
-
-$!trace-include
-
-
-
-void
-WxdkdrawFrame::Control::CalculateZoomFactor(void)
-{
- int8_t zl; /* Local copy of zoom level to analyze */
-
- m_dZoom = 1.0;
- if (NULL != m_pParent) {
- if (NULL != m_pParent->m_pDrw) {
- if ((uint8_t)0U != m_pParent->m_pDrw->gridunit) {
- /* Grid is in cm */
- m_uGridOptical = 6400000UL;
- }
- else {
- /* Grid is inch based (1/2 inch) */
- m_uGridOptical = 8128000UL;
- }
- zl = m_pParent->m_pDrw->zl;
- if ((int8_t)0 < zl) {
- while ((int8_t)1 < zl) {
- zl -= (int8_t)2;
- m_dZoom *= 2.0;
- m_uGridOptical /= (uint32_t)2UL;
- }
- if ((int8_t)0 < zl) {
- m_dZoom *= M_SQRT2;
- m_uGridOptical /= (uint32_t)2UL;
- }
- }
- else {
- if ((int8_t)0 > zl) {
- while ((int8_t)(-1) > zl) {
- zl += (int8_t)2;
- m_dZoom /= 2.0;
- m_uGridOptical *= (uint32_t)2UL;
- }
- if ((int8_t)0 > zl) {
- m_dZoom /= M_SQRT2;
- m_uGridOptical *= (uint32_t)2UL;
- }
- }
- }
- if ((uint8_t)0U != m_pParent->m_pDrw->gridbase) {
- m_uGridSnap = m_uGridOptical / (uint32_t)5UL;
- }
- else {
- m_uGridSnap = m_uGridOptical / (uint32_t)4UL;
- }
- }
- }
-}
-
-
-
-void
-WxdkdrawFrame::Control::CalculateGridDistances(void)
-{
-
- int8_t zl; /* Local copy of zoom level to analyze */
-
- if (NULL != m_pParent) {
- if (NULL != m_pParent->m_pDrw) {
- if ((uint8_t)0U != m_pParent->m_pDrw->gridunit) {
- /* Grid is in cm */
- m_uGridOptical = 6400000UL;
- }
- else {
- /* Grid is inch based (1/2 inch) */
- m_uGridOptical = 8128000UL;
- }
- zl = m_pParent->m_pDrw->zl;
- if ((int8_t)0 < zl) {
- while ((int8_t)1 < zl) {
- zl -= (int8_t)2;
- m_uGridOptical /= (uint32_t)2UL;
- }
- if ((int8_t)0 < zl) {
- m_uGridOptical /= (uint32_t)2UL;
- }
- }
- else {
- if ((int8_t)0 > zl) {
- while ((int8_t)(-1) > zl) {
- zl += (int8_t)2;
- m_uGridOptical *= (uint32_t)2UL;
- }
- if ((int8_t)0 > zl) {
- m_uGridOptical *= (uint32_t)2UL;
- }
- }
- }
- if ((uint8_t)0U != m_pParent->m_pDrw->gridbase) {
- m_uGridSnap = m_uGridOptical / (uint32_t)5UL;
- }
- else {
- m_uGridSnap = m_uGridOptical / (uint32_t)4UL;
- }
- }
- }
-}
-
-
-
-void
-WxdkdrawFrame::Control::CalculateConversionCoefficients(void)
-{
- $? "+ CalculateConversionCoefficients"
- m_ptM.x = (m_ptRes.x * m_dZoom) / 16256000.0;
- m_ptN.x = (double)(m_szDrawco.GetWidth()) / 2.0;
- m_ptN.x -= ((double)(m_pParent->m_pDrw->cx) * m_ptRes.x * m_dZoom)
- / 16256000.0;
- m_ptM.y = 0.0 - (m_ptRes.y * m_dZoom) / 16256000.0;
- m_ptN.y = (double)(m_szDrawco.GetHeight()) / 2.0;
- m_ptN.y += ((double)(m_pParent->m_pDrw->cy) * m_ptRes.y * m_dZoom)
- / 16256000.0;
- $? ". mx = %g nx = %g", m_ptM.x, m_ptN.x
- $? ". my = %g ny = %g", m_ptM.y, m_ptN.y
- $? "- CalculateConversionCoefficients"
-}
-
-
-
-double
-WxdkdrawFrame::Control::ConvDist(double d)
-{
-#if TRACE_DEBUG
- double back;
- back = fabs(m_ptM.x * d);
- $? "= ConvDist ( %g ) = %g", d, back
- return back;
-#else
- return (fabs(m_ptM.x * d));
-#endif
-}
-
-
-
-double
-WxdkdrawFrame::Control::ConvX(double x)
-{
-#if TRACE_DEBUG
- double back;
- back = m_ptM.x * x + m_ptN.x;
- $? "= ConvX ( %g ) = %g", x, back
- return back;
-#else
- return (m_ptM.x * x + m_ptN.x);
-#endif
-}
-
-
-
-double
-WxdkdrawFrame::Control::ConvY(double y)
-{
-#if TRACE_DEBUG
- double back;
- back = m_ptM.y * y + m_ptN.y;
- $? "= ConvY ( %g ) = %g", y, back
- return back;
-#else
- return (m_ptM.y * y + m_ptN.y);
-#endif
-}
-
-
-
-double
-WxdkdrawFrame::Control::ConvDist(int32_t d)
-{
- return (ConvDist((double)d));
-}
-
-
-
-double
-WxdkdrawFrame::Control::ConvX(int32_t x)
-{
- return (ConvX((double)x));
-}
-
-
-
-double
-WxdkdrawFrame::Control::ConvY(int32_t y)
-{
- return (ConvY((double)y));
-}
-
-
-
-double
-WxdkdrawFrame::Control::InvX(double x)
-{
-#if TRACE_DEBUG
- double back;
- back = (x - m_ptN.x) / m_ptM.x;
- $? "= InvX ( %g ) = %g", x, back
- return back;
-#else
- return ((x - m_ptN.x) / m_ptM.x);
-#endif
-}
-
-
-
-double
-WxdkdrawFrame::Control::InvY(double y)
-{
-#if TRACE_DEBUG
- double back;
- back = (y - m_ptN.y) / m_ptM.y;
- $? "= InvY ( %g ) = %g", y, back
- return back;
-#else
- return ((y - m_ptN.y) / m_ptM.y);
-#endif
-}
-
-
-
-int32_t
-WxdkdrawFrame::Control::InvX(double x, bool & ok)
-{
- dk4_er_t er; /* Error report */
- double invx; /* Inverted x value */
- int32_t i32; /* Intermediate result */
- int32_t back = (int32_t)0L;
- $? "+ InvX %g", x
- dk4error_init(&er);
- invx = InvX(x);
- i32 = dk4ma_int32_from_double(dk4ma_rint(invx), &er);
- if (DK4_E_NONE == er.ec) {
- back = i32;
- }
- else { $? "! overflow"
- ok = false;
- }
- $? "- InvX %ld", (long)back
- return back;
-}
-
-
-
-int32_t
-WxdkdrawFrame::Control::InvY(double y, bool & ok)
-{
- dk4_er_t er; /* Error report */
- double invy; /* Inverted y value */
- int32_t i32; /* Intermediate result */
- int32_t back = (int32_t)0L;
- $? "+ InvY %g", y
- dk4error_init(&er);
- invy = InvY(y);
- i32 = dk4ma_int32_from_double(dk4ma_rint(invy), &er);
- if (DK4_E_NONE == er.ec) {
- back = i32;
- }
- else { $? "! overflow"
- ok = false;
- }
- $? "- InvY %ld", (long)back
- return back;
-}
-
-
-
-int32_t
-WxdkdrawFrame::Control::GridRoundDown(int32_t x,uint32_t gr,bool & ok,bool fo)
-{
- dk4_er_t er; /* Error report */
- int32_t back; /* Function result */
- int32_t rem; /* Division remainder */
- $? "+ GridRoundDown %ld %lu %d", (long)x, (unsigned long)gr, (fo ? 1 : 0)
- back = x / (int32_t)gr; $? ". back = %ld", (long)back
- rem = x % (int32_t)gr; $? ". rem = %ld", (long)rem
- dk4error_init(&er);
- if (((int32_t)0L > rem) || ((fo) && ((int32_t)0L == rem))) {
- back--;
- }
- back = dk4ma_int32_t_mul(back, (int32_t)gr, &er);
- if (DK4_E_NONE != er.ec) {
- ok = false;
- }
- $? "- GridRoundDown %ld", (long)back
- return back;
-}
-
-
-
-int32_t
-WxdkdrawFrame::Control::GridRoundUp(int32_t x, uint32_t gr, bool & ok, bool fo)
-{
- dk4_er_t er; /* Error report */
- int32_t back; /* Function result */
- int32_t rem; /* Division remainder */
- $? "+ GridRoundUp %ld %lu %d", (long)x, (unsigned long)gr, (fo ? 1 : 0)
- dk4error_init(&er);
- back = x / (int32_t)gr;
- rem = x % (int32_t)gr;
- if (((int32_t)0L < rem) || ((fo) && ((int32_t)0L == rem))) {
- back++;
- }
- back = dk4ma_int32_t_mul(back, (int32_t)gr, &er);
- if (DK4_E_NONE != er.ec) {
- ok = false;
- }
- $? "- GridRoundUp %ld", (long)back
- return back;
-
-}
-
-
-
-int32_t
-WxdkdrawFrame::Control::GridRoundNearest(int32_t x, uint32_t gr, bool & ok)
-{
- dk4_er_t er; /* Error report */
- int32_t back; /* Function result */
- int32_t rem; /* Division remainder */
- $? "+ GridRoundNearest %ld %lu", (long)x, (unsigned long)gr
- dk4error_init(&er);
- back = x / (int32_t)gr;
- rem = x % (int32_t)gr;
- if ((int32_t)0L > rem) {
- if (rem <= ((int32_t)0L - (int32_t)gr / (int32_t)2L)) {
- back = dk4ma_int32_t_sub(back, (int32_t)1L, &er);
- }
- }
- else {
- if (rem >= (int32_t)gr / (int32_t)2L) {
- back = dk4ma_int32_t_add(back, (int32_t)1L, &er);
- }
- }
- back = dk4ma_int32_t_mul(back, (int32_t)gr, &er);
- if (DK4_E_NONE != er.ec) {
- ok = false;
- }
- $? "- GridRoundNearest %ld", (long)back
- return back;
-}
-
-
-
-int
-WxdkdrawFrame::Control::LineWidthForObject(
- Wxd_drawing_t const *pDrw, Wxd_object_t const *pObj, int iMarkup
-)
-{
- int back;
- uint16_t lw;
- $? "+ LineWidthForObject"
-#if TRACE_DEBUG
- $? ". base lw = %d", (int)(pDrw->baselw)
- $? ". obj lw = %d", (int)(pObj->lw)
- $? ". product = %g", (double)(pDrw->baselw) * (double)(pObj->lw)
- $? ". convert = %g", ConvDist((double)(pDrw->baselw) * (double)(pObj->lw))
-#endif
-
-#if VERSION_BEFORE_2020_08_16
- back = (int)dk4ma_rint(
- ConvDist((double)(pDrw->baselw) * (double)(pObj->lw))
- );
-#else
- lw = pObj->lw;
- if (((uint16_t)0U == lw) && (WXD_MARKUP_NONE != iMarkup)) {
- lw = (uint16_t)2U; $? ". lw correction for iMarkup
- }
- back = (int)dk4ma_rint(
- ConvDist((double)(pDrw->baselw) * (double)lw)
- );
-#endif
- $? ". back = %d", back
- if (0 == back) { back = 1; }
- $? "- LineWidthForObject %d", back
- return back;
-}
-
-
-/* vim: set ai sw=4 ts=4 : */
-