24 |
24 |
25 class LDDocument; |
25 class LDDocument; |
26 class QColor; |
26 class QColor; |
27 class QAction; |
27 class QAction; |
28 |
28 |
29 // Simplifies the given fraction. |
|
30 void Simplify (int& numer, int& denom); |
|
31 |
|
32 using ApplyToMatrixFunction = std::function<void (int, double&)>; |
29 using ApplyToMatrixFunction = std::function<void (int, double&)>; |
33 using ApplyToMatrixConstFunction = std::function<void (int, double)>; |
30 using ApplyToMatrixConstFunction = std::function<void (int, double)>; |
34 |
31 |
35 void RoundToDecimals (double& a, int decimals); |
|
36 void ApplyToMatrix (Matrix& a, ApplyToMatrixFunction func); |
|
37 void ApplyToMatrix (const Matrix& a, ApplyToMatrixConstFunction func); |
|
38 |
|
39 double GetCoordinateOf (const Vertex& a, Axis ax); |
|
40 QString MakePrettyFileSize (qint64 size); |
|
41 |
|
42 QString Join (QList<StringFormatArg> vals, QString delim = " "); |
|
43 |
|
44 // Grid stuff |
|
45 float gridCoordinateSnap(); |
|
46 float gridAngleSnap(); |
|
47 float gridBezierCurveSegments(); |
|
48 |
|
49 // ============================================================================= |
|
50 enum class RotationPoint |
32 enum class RotationPoint |
51 { |
33 { |
52 ObjectOrigin, |
34 ObjectOrigin, |
53 WorldOrigin, |
35 WorldOrigin, |
54 CustomPoint, |
36 CustomPoint, |
55 NumValues |
37 NumValues |
56 }; |
38 }; |
57 |
39 |
58 Vertex GetRotationPoint (const LDObjectList& objs); |
|
59 void ConfigureRotationPoint(); |
|
60 |
|
61 // ============================================================================= |
|
62 namespace Grid |
40 namespace Grid |
63 { |
41 { |
64 enum Type |
42 enum Type |
65 { |
43 { |
66 Coarse, |
44 Coarse, |
71 enum Config |
49 enum Config |
72 { |
50 { |
73 Coordinate, |
51 Coordinate, |
74 Angle |
52 Angle |
75 }; |
53 }; |
|
54 } |
76 |
55 |
77 double Snap (double value, const Grid::Config type); |
56 void applyToMatrix (Matrix& a, ApplyToMatrixFunction func); |
78 } |
57 void applyToMatrix (const Matrix& a, ApplyToMatrixConstFunction func); |
|
58 void configureRotationPoint(); |
|
59 QString formatFileSize (qint64 size); |
|
60 int gcd (int a, int b); |
|
61 Vertex getRotationPoint (const LDObjectList& objs); |
|
62 float gridAngleSnap(); |
|
63 float gridBezierCurveSegments(); |
|
64 float gridCoordinateSnap(); |
|
65 QString joinStrings (QList<StringFormatArg> vals, QString delim = " "); |
|
66 void roundToDecimals (double& a, int decimals); |
|
67 void simplify (int& numer, int& denom); |
|
68 double snapToGrid (double value, const Grid::Config type); |