KiCad PCB EDA Suite
base_units.h
Go to the documentation of this file.
1 /*
2  * This program source code file is part of KiCad, a free EDA CAD application.
3  *
4  * Copyright (C) 2012 CERN
5  * Copyright (C) 1992-2017 KiCad Developers, see AUTHORS.txt for contributors.
6  *
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, you may find one here:
20  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
21  * or you may search the http://www.gnu.org website for the version 2 license,
22  * or you may write to the Free Software Foundation, Inc.,
23  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
24  */
25 
33 #ifndef _BASE_UNITS_H_
34 #define _BASE_UNITS_H_
35 
36 
37 #include <common.h>
38 #include <convert_to_biu.h>
39 
40 
45 #define INDETERMINATE wxString( "<...>" )
46 
47 
49 inline int Mm2mils( double x ) { return KiROUND( x * 1000./25.4 ); }
50 
52 inline int Mils2mm( double x ) { return KiROUND( x * 25.4 / 1000. ); }
53 
62 std::string Double2Str( double aValue );
63 
70 void StripTrailingZeros( wxString& aStringValue, unsigned aTrailingZeroAllowed = 1 );
71 
72 
82 double To_User_Unit( EDA_UNITS_T aUnit, double aValue, bool aUseMils = false );
83 
89 wxString AngleToStringDegrees( double aAngle );
90 
109 wxString MessageTextFromValue( EDA_UNITS_T aUnits, double aValue, bool aUseMils = false );
110 
111 wxString MessageTextFromValue( EDA_UNITS_T aUnits, int aValue, bool aUseMils = false );
112 
133 wxString StringFromValue( EDA_UNITS_T aUnit, int aValue, bool aAddUnitSymbol = false,
134  bool aUseMils = false );
135 
140 double From_User_Unit( EDA_UNITS_T aUnit, double aValue, bool aUseMils = false );
141 
142 
151 double DoubleValueFromString( EDA_UNITS_T aUnits, const wxString& aTextValue,
152  bool aUseMils = false );
153 
163 int ValueFromString( EDA_UNITS_T aUnits, const wxString& aTextValue, bool aUseMils = false );
164 
169 void FetchUnitsFromString( const wxString& aTextValue, EDA_UNITS_T& aUnits, bool& aUseMils );
170 
177 wxString GetAbbreviatedUnitsLabel( EDA_UNITS_T aUnit, bool aUseMils = false );
178 
179 
180 #endif // _BASE_UNITS_H_
int Mm2mils(double x)
Convert mm to mils.
Definition: base_units.h:49
int ValueFromString(EDA_UNITS_T aUnits, const wxString &aTextValue, bool aUseMils=false)
Function ValueFromString converts aTextValue in aUnits to internal units used by the application...
Definition: base_units.cpp:409
static int KiROUND(double v)
Round a floating point number to an integer using "round halfway cases away from zero".
Definition: common.h:120
double From_User_Unit(EDA_UNITS_T aUnit, double aValue, bool aUseMils=false)
Return in internal units the value "val" given in a real unit such as "in", "mm" or "deg"...
Definition: base_units.cpp:278
double To_User_Unit(EDA_UNITS_T aUnit, double aValue, bool aUseMils=false)
Function To_User_Unit convert aValue in internal units to the appropriate user units defined by aUnit...
Definition: base_units.cpp:93
std::string Double2Str(double aValue)
Helper function Double2Str to print a float number without using scientific notation and no trailing ...
Definition: base_units.cpp:63
int Mils2mm(double x)
Convert mils to mm.
Definition: base_units.h:52
double DoubleValueFromString(EDA_UNITS_T aUnits, const wxString &aTextValue, bool aUseMils=false)
Function DoubleValueFromString converts aTextValue to a double.
Definition: base_units.cpp:302
wxString AngleToStringDegrees(double aAngle)
Function AngleToStringDegrees is a helper to convert the double aAngle (in internal unit) to a string...
Definition: base_units.cpp:421
wxString StringFromValue(EDA_UNITS_T aUnit, int aValue, bool aAddUnitSymbol=false, bool aUseMils=false)
Function StringFromValue returns the string from aValue according to units (inch, mm ...
Definition: base_units.cpp:210
void FetchUnitsFromString(const wxString &aTextValue, EDA_UNITS_T &aUnits, bool &aUseMils)
Function FetchUnitsFromString writes any unit info found in the string to aUnits and aUseMils...
Definition: base_units.cpp:370
void StripTrailingZeros(wxString &aStringValue, unsigned aTrailingZeroAllowed=1)
Function StripTrailingZeros Remove trailing 0 from a string containing a converted float number...
Definition: base_units.cpp:178
The common library.
wxString GetAbbreviatedUnitsLabel(EDA_UNITS_T aUnit, bool aUseMils=false)
Get the units string for a given units type.
Definition: base_units.cpp:432
wxString MessageTextFromValue(EDA_UNITS_T aUnits, double aValue, bool aUseMils=false)
Function MessageTextFromValue is a helper to convert the double length aValue to a string in inches...
Definition: base_units.cpp:132
EDA_UNITS_T
Definition: common.h:159