Commit c646c2f8 authored by jean-pierre charras's avatar jean-pierre charras

convert_from_iu: erroneous definition of MILS_PER_IU, MM_PER_IU (and therefore Iu2Mils)

only for Pcbnew in Decimils version. These definitions are provided, but not yet used in code.
parent cc47e88b
/* /*
* This program source code file is part of KiCad, a free EDA CAD application. * This program source code file is part of KiCad, a free EDA CAD application.
* *
* Copyright (C) 2012 CERN * Copyright (C) 2012 CERN
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2 * as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version. * of the License, or (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here: * along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license, * or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc., * or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
/** /**
* @file convert_from_iu.h * @file convert_from_iu.h
* @brief Definitions and functions to convert from internal units to user units * @brief Definitions and functions to convert from internal units to user units
* depending upon the application and/or build options. * depending upon the application and/or build options.
*/ */
#ifndef _CONVERT_FROM_IU_ #ifndef _CONVERT_FROM_IU_
#define _CONVERT_FROM_IU_ #define _CONVERT_FROM_IU_
#include <config.h> // USE_PCBNEW_NANOMETRES is defined here #include <config.h> // USE_PCBNEW_NANOMETRES is defined here
/// Convert from internal units to user units. /// Convert from internal units to user units.
#if defined(PCBNEW) || defined(CVPCB) || defined(GERBVIEW) #if defined(PCBNEW) || defined(CVPCB) || defined(GERBVIEW)
#if defined( USE_PCBNEW_NANOMETRES ) #if defined( USE_PCBNEW_NANOMETRES )
#if defined(GERBVIEW) #if defined(GERBVIEW)
#define MM_PER_IU 1.0 / 1e5 // Gerbview uses 10 micrometer. #define MM_PER_IU 1.0 / 1e5 // Gerbview uses 10 micrometer.
#else #else
#define MM_PER_IU 1.0 / 1e6 // Pcbnew in nanometers. #define MM_PER_IU 1.0 / 1e6 // Pcbnew in nanometers.
#endif #endif
#define MILS_PER_IU ( MM_PER_IU * 0.0254 ) #define MILS_PER_IU ( MM_PER_IU * 0.0254 )
#define DECIMILS_PER_IU (MM_PER_IU * 0.00254 ) #define DECIMILS_PER_IU (MM_PER_IU * 0.00254 )
#else // Pcbnew in deci-mils. #else // Pcbnew in deci-mils.
#define DECIMILS_PER_IU 1 #define DECIMILS_PER_IU 1
#define MILS_PER_IU 10.0 #define MILS_PER_IU 0.1
#define MM_PER_IU (1e4 / 25.4) #define MM_PER_IU (25.4 / 1e4)
#endif #endif
/// Convert PCBNEW internal units (iu) to mils. /// Convert PCBNEW internal units (iu) to mils.
inline int Iu2Mils( int iu ) inline int Iu2Mils( int iu )
{ {
#if defined( USE_PCBNEW_NANOMETRES ) #if defined( USE_PCBNEW_NANOMETRES )
double x = iu * MILS_PER_IU; double x = iu * MILS_PER_IU;
return int( x < 0 ? x - 0.5 : x + 0.5 ); return int( x < 0 ? x - 0.5 : x + 0.5 );
#else #else
return iu * MILS_PER_IU; return iu * MILS_PER_IU;
#endif #endif
} }
/// Convert PCBNEW internal units (iu) to deci-mils. /// Convert PCBNEW internal units (iu) to deci-mils.
inline int Iu2DMils( int iu ) inline int Iu2DMils( int iu )
{ {
#if defined( USE_PCBNEW_NANOMETRES ) #if defined( USE_PCBNEW_NANOMETRES )
double x = iu * DECIMILS_PER_IU; double x = iu * DECIMILS_PER_IU;
return int( x < 0 ? x - 0.5 : x + 0.5 ); return int( x < 0 ? x - 0.5 : x + 0.5 );
#else #else
return iu; return iu;
#endif #endif
} }
#else // Eeschema and anything else. #else // Eeschema and anything else.
#define MILS_PER_IU 1.0 #define MILS_PER_IU 1.0
#define MM_PER_IU (MILS_PER_IU / 0.0254) #define MM_PER_IU (MILS_PER_IU / 0.0254)
inline int Iu2Mils( int iu ) inline int Iu2Mils( int iu )
{ {
return iu; return iu;
} }
#endif #endif
#endif // #define _CONVERT_FROM_IU_ #endif // #define _CONVERT_FROM_IU_
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment