]> Shamusworld >> Repos - architektonas/blob - src/base/rs_units.h
Initial import
[architektonas] / src / base / rs_units.h
1 /****************************************************************************
2 ** $Id: rs_units.h 1877 2004-05-15 09:09:21Z andrew $
3 **
4 ** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.
5 **
6 ** This file is part of the qcadlib Library project.
7 **
8 ** This file may be distributed and/or modified under the terms of the
9 ** GNU General Public License version 2 as published by the Free Software
10 ** Foundation and appearing in the file LICENSE.GPL included in the
11 ** packaging of this file.
12 **
13 ** Licensees holding valid qcadlib Professional Edition licenses may use
14 ** this file in accordance with the qcadlib Commercial License
15 ** Agreement provided with the Software.
16 **
17 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
18 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19 **
20 ** See http://www.ribbonsoft.com for further details.
21 **
22 ** Contact info@ribbonsoft.com if any conditions of this licensing are
23 ** not clear to you.
24 **
25 **********************************************************************/
26
27 #ifndef RS_UNITS_H
28 #define RS_UNITS_H
29
30 #include <QtCore>
31 #include "rs.h"
32 #include "vector.h"
33
34 /**
35  * Conversion methods for units
36  *
37  * @author Andrew Mustun
38  */
39 class RS_Units
40 {
41         public:
42                 //static char* unit2sign(RS2::Unit unit);
43
44                 //static RS2::Unit string2unit(const char* str, bool* ok=0);
45                 //static char* unit2string(RS2::Unit unit);
46
47                 static RS2::Unit dxfint2unit(int dxfint);
48
49                 static QString unitToString(RS2::Unit u, bool t = true);
50                 static RS2::Unit stringToUnit(const QString & u);
51
52                 static bool isMetric(RS2::Unit u);
53                 static double getFactorToMM(RS2::Unit u);
54                 static double convert(double val, RS2::Unit src, RS2::Unit dest);
55                 static Vector convert(const Vector val, RS2::Unit src, RS2::Unit dest);
56
57                 static QString unitToSign(RS2::Unit u);
58
59                 static QString formatLinear(double length, RS2::Unit unit,
60                         RS2::LinearFormat format, int prec, bool showUnit = false);
61                 static QString formatScientific(double length, RS2::Unit unit, int prec, bool showUnit = false);
62                 static QString formatDecimal(double length, RS2::Unit unit, int prec, bool showUnit = false);
63                 static QString formatEngineering(double length, RS2::Unit unit, int prec, bool showUnit = false);
64                 static QString formatArchitectural(double length, RS2::Unit unit, int prec, bool showUnit = false);
65                 static QString formatFractional(double length, RS2::Unit unit, int prec, bool showUnit = false);
66
67                 static QString formatAngle(double angle, RS2::AngleFormat format, int prec);
68
69                 static Vector paperFormatToSize(RS2::PaperFormat p);
70                 static RS2::PaperFormat paperSizeToFormat(const Vector s);
71
72                 static QString paperFormatToString(RS2::PaperFormat p);
73                 static RS2::PaperFormat stringToPaperFormat(const QString & p);
74
75                 static void test();
76 };
77
78 #endif