All: change MILS_TO_IU_SCALING_FACTOR constant to IU_PER_MILS ( and MM_TO_IU_SCALING_FACTOR to IU_PER_MM)

Also fix bug 985654.
This commit is contained in:
jean-pierre charras 2012-04-26 23:34:20 +02:00
parent 3b671e09d1
commit 758f22161a
22 changed files with 70 additions and 70 deletions

View File

@ -41,10 +41,10 @@
#if defined( PCBNEW ) || defined( CVPCB ) || defined( EESCHEMA ) #if defined( PCBNEW ) || defined( CVPCB ) || defined( EESCHEMA )
#define IU_TO_MM( x ) ( x / MM_PER_IU ) #define IU_TO_MM( x ) ( x / IU_PER_MM )
#define IU_TO_IN( x ) ( x / MILS_PER_IU / 1000 ) #define IU_TO_IN( x ) ( x / IU_PER_MILS / 1000 )
#define MM_TO_IU( x ) ( x * MM_PER_IU ) #define MM_TO_IU( x ) ( x * IU_PER_MM )
#define IN_TO_IU( x ) ( x * MILS_PER_IU * 1000 ) #define IN_TO_IU( x ) ( x * IU_PER_MILS * 1000 )
#else #else
#error "Cannot resolve internal units due to no definition of EESCHEMA, CVPCB or PCBNEW." #error "Cannot resolve internal units due to no definition of EESCHEMA, CVPCB or PCBNEW."
#endif #endif

View File

@ -37,7 +37,7 @@
// Conversion to application internal units defined at build time. // Conversion to application internal units defined at build time.
#if defined( PCBNEW ) #if defined( PCBNEW )
#include <class_board_item.h> #include <class_board_item.h>
#define MILS_TO_IU( x ) ( x * MILS_PER_IU ); #define MILS_TO_IU( x ) ( x * IU_PER_MILS );
#elif defined( EESCHEMA ) #elif defined( EESCHEMA )
#include <sch_item_struct.h> #include <sch_item_struct.h>
#define MILS_TO_IU( x ) ( x ) #define MILS_TO_IU( x ) ( x )

View File

@ -237,7 +237,7 @@ bool DIALOG_SVG_PRINT::DrawSVGPage( EDA_DRAW_FRAME* frame,
sheetSize.y/2) ); sheetSize.y/2) );
if( aPrint_Sheet_Ref ) if( aPrint_Sheet_Ref )
frame->TraceWorkSheet( &dc, screen, g_DrawDefaultLineThickness, MILS_PER_IU ); frame->TraceWorkSheet( &dc, screen, g_DrawDefaultLineThickness, IU_PER_MILS );
screen->m_IsPrinting = false; screen->m_IsPrinting = false;
panel->SetClipBox( tmp ); panel->SetClipBox( tmp );

View File

@ -378,7 +378,7 @@ void SCH_PRINTOUT::DrawPage( SCH_SCREEN* aScreen )
aScreen->Draw( panel, dc, GR_DEFAULT_DRAWMODE ); aScreen->Draw( panel, dc, GR_DEFAULT_DRAWMODE );
if( printReference ) if( printReference )
parent->TraceWorkSheet( dc, aScreen, g_DrawDefaultLineThickness, MILS_PER_IU ); parent->TraceWorkSheet( dc, aScreen, g_DrawDefaultLineThickness, IU_PER_MILS );
g_DrawBgColor = bg_color; g_DrawBgColor = bg_color;
aScreen->m_IsPrinting = false; aScreen->m_IsPrinting = false;

View File

@ -71,7 +71,7 @@ void SCH_EDIT_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg )
GetScreen()->Draw( m_canvas, DC, GR_DEFAULT_DRAWMODE ); GetScreen()->Draw( m_canvas, DC, GR_DEFAULT_DRAWMODE );
TraceWorkSheet( DC, GetScreen(), g_DrawDefaultLineThickness, MILS_PER_IU ); TraceWorkSheet( DC, GetScreen(), g_DrawDefaultLineThickness, IU_PER_MILS );
#ifdef USE_WX_OVERLAY #ifdef USE_WX_OVERLAY
if( IsShown() ) if( IsShown() )

View File

@ -863,7 +863,7 @@ void SCH_EDIT_FRAME::SVG_Print( wxCommandEvent& event )
void SCH_EDIT_FRAME::PrintPage( wxDC* aDC, int aPrintMask, bool aPrintMirrorMode, void* aData ) void SCH_EDIT_FRAME::PrintPage( wxDC* aDC, int aPrintMask, bool aPrintMirrorMode, void* aData )
{ {
GetScreen()->Draw( m_canvas, aDC, GR_DEFAULT_DRAWMODE ); GetScreen()->Draw( m_canvas, aDC, GR_DEFAULT_DRAWMODE );
TraceWorkSheet( aDC, GetScreen(), g_DrawDefaultLineThickness, MILS_PER_IU ); TraceWorkSheet( aDC, GetScreen(), g_DrawDefaultLineThickness, IU_PER_MILS );
} }

View File

@ -17,10 +17,10 @@
#include <pcbnew_id.h> #include <pcbnew_id.h>
#define DMIL_GRID( x ) wxRealPoint( x * DECIMILS_PER_IU,\ #define DMIL_GRID( x ) wxRealPoint( x * IU_PER_DECIMILS,\
x * DECIMILS_PER_IU ) x * IU_PER_DECIMILS )
#define MM_GRID( x ) wxRealPoint( x * MM_PER_IU,\ #define MM_GRID( x ) wxRealPoint( x * IU_PER_MM,\
x * MM_PER_IU ) x * IU_PER_MM )
/** /**
@ -118,5 +118,5 @@ GBR_SCREEN::~GBR_SCREEN()
// virtual function // virtual function
int GBR_SCREEN::MilsToIuScalar() int GBR_SCREEN::MilsToIuScalar()
{ {
return (int)MILS_PER_IU; return (int)IU_PER_MILS;
} }

View File

@ -9,7 +9,7 @@
#include <base_units.h> #include <base_units.h>
#include <class_pcb_screen.h> #include <class_pcb_screen.h>
#define ZOOM_FACTOR( x ) ( x * DECIMILS_PER_IU ) #define ZOOM_FACTOR( x ) ( x * IU_PER_DECIMILS )
/* Handle info to display a board */ /* Handle info to display a board */

View File

@ -175,8 +175,8 @@ int GERBVIEW_FRAME::ReadDCodeDefinitionFile( const wxString& D_Code_FullFileName
/* Updating gerber scale: */ /* Updating gerber scale: */
double dcode_scale = MILS_PER_IU; // By uniting dCode = mil, double dcode_scale = IU_PER_MILS; // By uniting dCode = mil,
// internal unit = MILS_PER_IU // internal unit = IU_PER_MILS
current_Dcode = 0; current_Dcode = 0;
if( D_Code_FullFileName.IsEmpty() ) if( D_Code_FullFileName.IsEmpty() )

View File

@ -107,7 +107,7 @@ void GERBVIEW_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg )
if( IsElementVisible( DCODES_VISIBLE ) ) if( IsElementVisible( DCODES_VISIBLE ) )
DrawItemsDCodeID( DC, GR_COPY ); DrawItemsDCodeID( DC, GR_COPY );
TraceWorkSheet( DC, screen, 0, MILS_PER_IU ); TraceWorkSheet( DC, screen, 0, IU_PER_MILS );
if( m_canvas->IsMouseCaptured() ) if( m_canvas->IsMouseCaptured() )
m_canvas->CallMouseCapture( DC, wxDefaultPosition, false ); m_canvas->CallMouseCapture( DC, wxDefaultPosition, false );

View File

@ -432,7 +432,7 @@ bool EXCELLON_IMAGE::Execute_HEADER_Command( char*& text )
if( dcode == NULL ) if( dcode == NULL )
break; break;
// conv_scale = scaling factor from inch to Internal Unit // conv_scale = scaling factor from inch to Internal Unit
double conv_scale = MILS_PER_IU * 1000; double conv_scale = IU_PER_MILS * 1000;
if( m_GerbMetric ) if( m_GerbMetric )
conv_scale /= 25.4; conv_scale /= 25.4;

View File

@ -411,7 +411,7 @@ void GERBVIEW_FRAME::Liste_D_Codes()
D_CODE* pt_D_code; D_CODE* pt_D_code;
wxString Line; wxString Line;
wxArrayString list; wxArrayString list;
double scale = MILS_PER_IU * 1000; double scale = IU_PER_MILS * 1000;
int curr_layer = getActiveLayer(); int curr_layer = getActiveLayer();
for( int layer = 0; layer < 32; layer++ ) for( int layer = 0; layer < 32; layer++ )

View File

@ -21,16 +21,16 @@
// for metric gerber units, the imperial to metric conversion is made in read functions // for metric gerber units, the imperial to metric conversion is made in read functions
static double scale_list[10] = static double scale_list[10] =
{ {
1000.0 * MILS_PER_IU, 1000.0 * IU_PER_MILS,
100.0 * MILS_PER_IU, 100.0 * IU_PER_MILS,
10.0 * MILS_PER_IU, 10.0 * IU_PER_MILS,
1.0 * MILS_PER_IU, 1.0 * IU_PER_MILS,
0.1 * MILS_PER_IU, 0.1 * IU_PER_MILS,
0.01 * MILS_PER_IU, 0.01 * IU_PER_MILS,
0.001 * MILS_PER_IU, 0.001 * IU_PER_MILS,
0.0001 * MILS_PER_IU, 0.0001 * IU_PER_MILS,
0.00001 * MILS_PER_IU, 0.00001 * IU_PER_MILS,
0.000001 * MILS_PER_IU 0.000001 * IU_PER_MILS
}; };
@ -44,9 +44,9 @@ int scaletoIU( double aCoord, bool isMetric )
int ret; int ret;
if( isMetric ) if( isMetric )
ret = KiROUND( aCoord * MILS_PER_IU / 0.00254 ); ret = KiROUND( aCoord * IU_PER_MILS / 0.00254 );
else else
ret = KiROUND( aCoord * MILS_PER_IU ); ret = KiROUND( aCoord * IU_PER_MILS );
return ret; return ret;
} }
@ -94,9 +94,9 @@ wxPoint GERBER_IMAGE::ReadXYCoord( char*& Text )
{ {
// When X or Y values are float numbers, they are given in mm or inches // When X or Y values are float numbers, they are given in mm or inches
if( m_GerbMetric ) // units are mm if( m_GerbMetric ) // units are mm
current_coord = KiROUND( atof( line ) * MILS_PER_IU / 0.0254 ); current_coord = KiROUND( atof( line ) * IU_PER_MILS / 0.0254 );
else // units are inches else // units are inches
current_coord = KiROUND( atof( line ) * MILS_PER_IU * 1000 ); current_coord = KiROUND( atof( line ) * IU_PER_MILS * 1000 );
} }
else else
{ {
@ -185,9 +185,9 @@ wxPoint GERBER_IMAGE::ReadIJCoord( char*& Text )
{ {
// When X or Y values are float numbers, they are given in mm or inches // When X or Y values are float numbers, they are given in mm or inches
if( m_GerbMetric ) // units are mm if( m_GerbMetric ) // units are mm
current_coord = KiROUND( atof( line ) * MILS_PER_IU / 0.0254 ); current_coord = KiROUND( atof( line ) * IU_PER_MILS / 0.0254 );
else // units are inches else // units are inches
current_coord = KiROUND( atof( line ) * MILS_PER_IU * 1000 ); current_coord = KiROUND( atof( line ) * IU_PER_MILS * 1000 );
} }
else else
{ {

View File

@ -160,7 +160,7 @@ bool GERBER_IMAGE::ExecuteRS274XCommand( int command,
double fcoord; double fcoord;
// conv_scale = scaling factor from inch to Internal Unit // conv_scale = scaling factor from inch to Internal Unit
double conv_scale = MILS_PER_IU * 1000; double conv_scale = IU_PER_MILS * 1000;
if( m_GerbMetric ) if( m_GerbMetric )
conv_scale /= 25.4; conv_scale /= 25.4;
@ -294,7 +294,7 @@ bool GERBER_IMAGE::ExecuteRS274XCommand( int command,
m_GerbMetric = false; m_GerbMetric = false;
else if( code == MILLIMETER ) else if( code == MILLIMETER )
m_GerbMetric = true; m_GerbMetric = true;
conv_scale = m_GerbMetric ? MILS_PER_IU / 25.4 : MILS_PER_IU; conv_scale = m_GerbMetric ? IU_PER_MILS / 25.4 : IU_PER_MILS;
break; break;
case OFFSET: // command: OFAnnBnn (nn = float number) = layer Offset case OFFSET: // command: OFAnnBnn (nn = float number) = layer Offset

View File

@ -298,8 +298,8 @@ public:
// Accessors returning "Internal Units (IU)". IUs are mils in EESCHEMA, // Accessors returning "Internal Units (IU)". IUs are mils in EESCHEMA,
// and either deci-mils or nanometers in PCBNew. // and either deci-mils or nanometers in PCBNew.
#if defined(PCBNEW) || defined(EESCHEMA) || defined(GERBVIEW) #if defined(PCBNEW) || defined(EESCHEMA) || defined(GERBVIEW)
int GetWidthIU() const { return MILS_PER_IU * GetWidthMils(); } int GetWidthIU() const { return IU_PER_MILS * GetWidthMils(); }
int GetHeightIU() const { return MILS_PER_IU * GetHeightMils(); } int GetHeightIU() const { return IU_PER_MILS * GetHeightMils(); }
const wxSize GetSizeIU() const { return wxSize( GetWidthIU(), GetHeightIU() ); } const wxSize GetSizeIU() const { return wxSize( GetWidthIU(), GetHeightIU() ); }
#endif #endif

View File

@ -20,26 +20,26 @@
#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 1e5 // Gerbview uses 10 micrometer. #define IU_PER_MM 1e5 // Gerbview uses 10 micrometer.
#else #else
#define MM_PER_IU 1e6 // Pcbnew uses nanometers. #define IU_PER_MM 1e6 // Pcbnew uses nanometers.
#endif #endif
#define MILS_PER_IU ( MM_PER_IU * 0.0254 ) #define IU_PER_MILS ( IU_PER_MM * 0.0254 )
#define DECIMILS_PER_IU (MM_PER_IU * 0.00254 ) #define IU_PER_DECIMILS (IU_PER_MM * 0.00254 )
#else // Pcbnew in deci-mils. #else // Pcbnew in deci-mils.
#define DECIMILS_PER_IU 1 #define IU_PER_DECIMILS 1
#define MILS_PER_IU 10.0 #define IU_PER_MILS 10.0
#define MM_PER_IU (1e4 / 25.4) #define IU_PER_MM (1e4 / 25.4)
#endif #endif
/// Convert mils to PCBNEW internal units (iu). /// Convert mils to PCBNEW internal units (iu).
inline int Mils2iu( int mils ) inline int Mils2iu( int mils )
{ {
#if defined( USE_PCBNEW_NANOMETRES ) #if defined( USE_PCBNEW_NANOMETRES )
double x = mils * MILS_PER_IU; double x = mils * IU_PER_MILS;
return int( x < 0 ? x - 0.5 : x + 0.5 ); return int( x < 0 ? x - 0.5 : x + 0.5 );
#else #else
return mils * MILS_PER_IU; return mils * IU_PER_MILS;
#endif #endif
} }
@ -47,7 +47,7 @@ inline int Mils2iu( int mils )
inline int DMils2iu( int dmils ) inline int DMils2iu( int dmils )
{ {
#if defined( USE_PCBNEW_NANOMETRES ) #if defined( USE_PCBNEW_NANOMETRES )
double x = dmils * DECIMILS_PER_IU; double x = dmils * IU_PER_DECIMILS;
return int( x < 0 ? x - 0.5 : x + 0.5 ); return int( x < 0 ? x - 0.5 : x + 0.5 );
#else #else
return dmils; return dmils;
@ -55,8 +55,8 @@ inline int DMils2iu( int dmils )
} }
#else // Eeschema and anything else. #else // Eeschema and anything else.
#define MILS_PER_IU 1.0 #define IU_PER_MILS 1.0
#define MM_PER_IU (MILS_PER_IU / 0.0254) #define IU_PER_MM (IU_PER_MILS / 0.0254)
inline int Mils2iu( int mils ) inline int Mils2iu( int mils )
{ {

View File

@ -19,11 +19,11 @@
#include <pcbnew_id.h> #include <pcbnew_id.h>
#define ZOOM_FACTOR( x ) ( x * DECIMILS_PER_IU ) #define ZOOM_FACTOR( x ) ( x * IU_PER_DECIMILS )
#define DMIL_GRID( x ) wxRealPoint( x * DECIMILS_PER_IU,\ #define DMIL_GRID( x ) wxRealPoint( x * IU_PER_DECIMILS,\
x * DECIMILS_PER_IU ) x * IU_PER_DECIMILS )
#define MM_GRID( x ) wxRealPoint( x * MM_PER_IU,\ #define MM_GRID( x ) wxRealPoint( x * IU_PER_MM,\
x * MM_PER_IU ) x * IU_PER_MM )
/** /**
@ -133,7 +133,7 @@ PCB_SCREEN::~PCB_SCREEN()
int PCB_SCREEN::MilsToIuScalar() int PCB_SCREEN::MilsToIuScalar()
{ {
return (int)MILS_PER_IU; return (int)IU_PER_MILS;
} }

View File

@ -271,7 +271,7 @@ bool DIALOG_SVG_PRINT::DrawPage( const wxString& FullFileName,
g_DrawBgColor = WHITE; g_DrawBgColor = WHITE;
if( aPrint_Frame_Ref ) if( aPrint_Frame_Ref )
m_Parent->TraceWorkSheet( &dc, screen, s_Parameters.m_PenDefaultSize, MILS_PER_IU ); m_Parent->TraceWorkSheet( &dc, screen, s_Parameters.m_PenDefaultSize, IU_PER_MILS );
m_Parent->PrintPage( &dc, m_PrintMaskLayer, false, &s_Parameters); m_Parent->PrintPage( &dc, m_PrintMaskLayer, false, &s_Parameters);
g_DrawBgColor = bg_color; g_DrawBgColor = bg_color;

View File

@ -2694,7 +2694,7 @@ void LEGACY_PLUGIN::init( PROPERTIES* aProperties )
// then, during the file loading process, to start a conversion from // then, during the file loading process, to start a conversion from
// mm to nanometers. // mm to nanometers.
diskToBiu = DECIMILS_PER_IU; // BIUs are nanometers if USE_PCBNEW_NANOMETRES diskToBiu = IU_PER_DECIMILS; // BIUs are nanometers if USE_PCBNEW_NANOMETRES
// or BIUs are deci-mils // or BIUs are deci-mils
} }

View File

@ -181,7 +181,7 @@ void BOARD_PRINTOUT_CONTROLER::DrawPage()
if( userscale == 0 ) // fit in page if( userscale == 0 ) // fit in page
{ {
// Margin = 10mm // Margin = 10mm
int extra_margin = int( 10 * MM_PER_IU ); // deci-mils int extra_margin = int( 10 * IU_PER_MM ); // deci-mils
pageSizeIU.x = bbbox.GetWidth() + extra_margin * 2; pageSizeIU.x = bbbox.GetWidth() + extra_margin * 2;
pageSizeIU.y = bbbox.GetHeight() + extra_margin * 2; pageSizeIU.y = bbbox.GetHeight() + extra_margin * 2;
@ -212,8 +212,8 @@ void BOARD_PRINTOUT_CONTROLER::DrawPage()
MapScreenSizeToPaper(); MapScreenSizeToPaper();
int w, h; int w, h;
GetPPIPrinter( &w, &h ); GetPPIPrinter( &w, &h );
double accurate_Xscale = ( (double) ( DrawZoom * w ) ) / (double) PCB_INTERNAL_UNIT; double accurate_Xscale = ( (double) ( DrawZoom * w ) ) / (IU_PER_MILS*1000);
double accurate_Yscale = ( (double) ( DrawZoom * h ) ) / (double) PCB_INTERNAL_UNIT; double accurate_Yscale = ( (double) ( DrawZoom * h ) ) / (IU_PER_MILS*1000);
if( IsPreview() ) // Scale must take in account the DC size in Preview if( IsPreview() ) // Scale must take in account the DC size in Preview
{ {
@ -275,7 +275,7 @@ void BOARD_PRINTOUT_CONTROLER::DrawPage()
if( m_PrintParams.m_Print_Sheet_Ref ) if( m_PrintParams.m_Print_Sheet_Ref )
m_Parent->TraceWorkSheet( dc, screen, m_PrintParams.m_PenDefaultSize, m_Parent->TraceWorkSheet( dc, screen, m_PrintParams.m_PenDefaultSize,
MILS_PER_IU ); IU_PER_MILS );
if( printMirror ) if( printMirror )
{ {
@ -317,7 +317,7 @@ void BOARD_PRINTOUT_CONTROLER::DrawPage()
/* when printing in color mode, we use the graphic OR mode that gives the same look as the screen /* when printing in color mode, we use the graphic OR mode that gives the same look as the screen
* But because the background is white when printing, we must use a trick: * But because the background is white when printing, we must use a trick:
* In order to plot on a white background in OR mode we must: * In order to plot on a white background in OR mode we must:
* 1 - Plot all items in black, this creates a local black backgroud * 1 - Plot all items in black, this creates a local black background
* 2 - Plot in OR mode on black "local" background * 2 - Plot in OR mode on black "local" background
*/ */
if( !m_PrintParams.m_Print_Black_and_White ) if( !m_PrintParams.m_Print_Black_and_White )

View File

@ -171,10 +171,10 @@ static inline double scale( int kicadDist )
#if defined(USE_PCBNEW_NANOMETRES) #if defined(USE_PCBNEW_NANOMETRES)
// nanometers to um // nanometers to um
return kicadDist / ( MM_PER_IU / 1000.0 ); return kicadDist / ( IU_PER_MM / 1000.0 );
// nanometers to mils // nanometers to mils
// return kicadDist/MILS_PER_IU; // return kicadDist/IU_PER_MILS;
#else #else
// deci-mils to mils. // deci-mils to mils.
@ -185,7 +185,7 @@ static inline double scale( int kicadDist )
/// Convert integer internal units to float um /// Convert integer internal units to float um
static inline double IU2um( int kicadDist ) static inline double IU2um( int kicadDist )
{ {
return kicadDist * (1000.0 / MM_PER_IU); return kicadDist * (1000.0 / IU_PER_MM);
} }

View File

@ -67,7 +67,7 @@ void FOOTPRINT_EDIT_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg )
GRSetDrawMode( DC, GR_COPY ); GRSetDrawMode( DC, GR_COPY );
m_canvas->DrawBackGround( DC ); m_canvas->DrawBackGround( DC );
TraceWorkSheet( DC, screen, 0, MILS_PER_IU ); TraceWorkSheet( DC, screen, 0, IU_PER_MILS );
// Redraw the footprints // Redraw the footprints
for( MODULE* module = GetBoard()->m_Modules; module; module = module->Next() ) for( MODULE* module = GetBoard()->m_Modules; module; module = module->Next() )
@ -105,7 +105,7 @@ void PCB_EDIT_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg )
m_canvas->DrawBackGround( DC ); m_canvas->DrawBackGround( DC );
TraceWorkSheet( DC, GetScreen(), g_DrawDefaultLineThickness, MILS_PER_IU ); TraceWorkSheet( DC, GetScreen(), g_DrawDefaultLineThickness, IU_PER_MILS );
GetBoard()->Draw( m_canvas, DC, GR_OR | GR_ALLOW_HIGHCONTRAST); GetBoard()->Draw( m_canvas, DC, GR_OR | GR_ALLOW_HIGHCONTRAST);