Commit Graph

543 Commits

Author SHA1 Message Date
Roman Telezhynskyi
44345085c2 New option --manualPriority.
Helps to disable following manual priority without need to change settings for
each piece.

--HG--
branch : develop
2019-07-21 16:26:21 +03:00
Roman Telezhynskyi
95b9c3ed19 New function VFuzzyOnAxis.
--HG--
branch : develop
2019-07-21 15:22:09 +03:00
Roman Telezhynskyi
1ab19c05a3 Refactoring. Move VFuzzyComparePoints to VGeometry static library.
--HG--
branch : develop
2019-07-21 15:04:08 +03:00
Roman Telezhynskyi
d4a308af5b Optimize combining.
--HG--
branch : develop
2019-07-21 14:42:47 +03:00
Roman Telezhynskyi
9f6bb49a22 Fix adding a piece to global contour.
In case of combine we must skip one edge. In case of rotation we must add right
number of edges.

--HG--
branch : develop
2019-07-21 10:40:41 +03:00
Roman Telezhynskyi
a01490b4f4 Fix searching edge index for mirrored piece.
--HG--
branch : develop
2019-07-21 10:35:32 +03:00
Roman Telezhynskyi
93901f6a15 Fix getting edge for mirrored piece.
--HG--
branch : develop
2019-07-21 10:34:32 +03:00
Roman Telezhynskyi
a03b8318d1 Show global contour direction.
--HG--
branch : develop
2019-07-21 10:33:25 +03:00
Roman Telezhynskyi
24ec03c319 Do not show connect for first and last points in global contour.
--HG--
branch : develop
2019-07-21 10:32:42 +03:00
Roman Telezhynskyi
8482f3dd28 Left the most robust way to find intersections.
--HG--
branch : develop
2019-07-21 10:30:26 +03:00
Roman Telezhynskyi
cc2aa8d1ba - Fix edge position for empty sheet. Make it close to paper sheet.
- Fix getting contour edge. It must be based on position from empty sheet edge
for "empty" contour.

--HG--
branch : develop
2019-07-21 10:23:17 +03:00
Roman Telezhynskyi
e18d328178 Do not use piece's path for nesting. Use only layout allowance path.
--HG--
branch : develop
2019-07-21 10:19:00 +03:00
Roman Telezhynskyi
928626d6be Change starting shift value. It must be small enough to cover shape of long
pieces.

--HG--
branch : develop
2019-07-21 10:10:41 +03:00
Roman Telezhynskyi
48bb83a80e Fuzzy comparison is not enough to test points on axis.
--HG--
branch : develop
2019-07-21 10:07:58 +03:00
Roman Telezhynskyi
e37afae597 Allow controlling priority selecting pieces in layout.
--HG--
branch : develop
2019-07-19 10:45:57 +03:00
Roman Telezhynskyi
8888437b07 Fix way we calculate shift for empty sheet. Make it adjustable only if less
than default.

--HG--
branch : develop
2019-07-18 17:40:41 +03:00
Roman Telezhynskyi
a986f765a6 Fix memory leak.
--HG--
branch : develop
2019-07-18 17:34:43 +03:00
Roman Telezhynskyi
0d7c406df4 Fix calculating efficiency.
Piece square must be based on seam allowance or main path instead of layout
allowance.

--HG--
branch : develop
2019-07-18 17:32:19 +03:00
Roman Telezhynskyi
2dff387e5e Try another approach to suppress warning -Warray-bounds.
--HG--
branch : develop
2019-07-05 11:06:03 +03:00
Roman Telezhynskyi
c01dd8c1dc Backed out changeset: bea8c53b301d
--HG--
branch : develop
2019-07-05 10:59:54 +03:00
Roman Telezhynskyi
c74d25cd31 Backed out changeset: d56740267493
--HG--
branch : develop
2019-07-05 10:59:41 +03:00
Roman Telezhynskyi
13650f20a4 Try to suppress error: array subscript is above array bounds
[-Werror=array-bounds].

--HG--
branch : develop
2019-07-04 15:28:44 +03:00
Roman Telezhynskyi
e8804c90bb New layout option --nestQuantity.
--HG--
branch : develop
2019-07-04 14:33:45 +03:00
Roman Telezhynskyi
7e1c096fa1 Try to suppress error: array subscript is above array bounds
[-Werror=array-bounds].

--HG--
branch : develop
2019-07-02 23:32:52 +03:00
Roman Telezhynskyi
f8dddca99f Fix build.
--HG--
branch : develop
2019-07-01 14:02:52 +03:00
Roman Telezhynskyi
762b0fc1d0 Fix build.
--HG--
branch : develop
2019-07-01 13:49:10 +03:00
Roman Telezhynskyi
4ab84bce38 Make full serialization/deserialization for class VLayoutPiece.
--HG--
branch : develop
2019-07-01 12:26:08 +03:00
Roman Telezhynskyi
0658d92688 New marcos Q_DISABLE_ASSIGN.
--HG--
branch : develop
2019-07-01 11:33:29 +03:00
Roman Telezhynskyi
0330869796 Serialization/deserialization for class VLayoutPiece.
--HG--
branch : develop
2019-07-01 11:02:09 +03:00
Roman Telezhynskyi
89f786d98a Refactoring. Moving enum class LayoutExportFormats.
--HG--
branch : develop
2019-07-01 09:57:49 +03:00
Roman Telezhynskyi
a2e71d6e1c Catch exceptions inside of QRunnable. ref #974.
--HG--
branch : develop
2019-06-24 12:14:10 +03:00
Roman Telezhynskyi
a4a6b18561 Cppcheck warning.
--HG--
branch : develop
2019-06-18 16:04:50 +03:00
Roman Telezhynskyi
f7c4bdf2a7 Improve handling layout errors.
Show Timeout error only if none errors appeared before.

--HG--
branch : develop
2019-06-18 15:14:52 +03:00
Roman Telezhynskyi
80d55659ab Refactoring.
--HG--
branch : develop
2019-06-18 15:10:08 +03:00
Roman Telezhynskyi
d16b0d5501 Remove obsolete debugging system.
--HG--
branch : develop
2019-06-18 14:53:00 +03:00
Roman Telezhynskyi
3ca666fba3 Pass original paper orientation. We cannot rely on paper size because it can be
stripped.

--HG--
branch : develop
2019-06-18 14:36:20 +03:00
Roman Telezhynskyi
b80103e088 Improve saving a layout result.
--HG--
branch : develop
2019-06-18 14:28:16 +03:00
Roman Telezhynskyi
d0cd313df0 Fix export passmarks for layout.
Because we did not search in united path we could not draw them and silently
skipped. Now user also will see a warning.

--HG--
branch : develop
2019-06-08 15:32:25 +03:00
Roman Telezhynskyi
a97c90378d Fix bug in VPiece::IsBufferAllowanceValid.
--HG--
branch : develop
2019-06-18 13:48:32 +03:00
Roman Telezhynskyi
12871f0708 Fix issue with artificial loop.
--HG--
branch : develop
2019-06-18 13:45:40 +03:00
Roman Telezhynskyi
d2396820c5 Fix bug with landscape oriention.
--HG--
branch : develop
2019-06-18 12:35:43 +03:00
Roman Telezhynskyi
5c55778d66 Since Q5.12 available support for C++17.
--HG--
branch : develop
2019-05-28 17:41:15 +03:00
Roman Telezhynskyi
d5a1f96bdd constFirst() introduced since Qt 5.6.
--HG--
branch : develop
2019-05-28 16:21:52 +03:00
Roman Telezhynskyi
c2091c6337 Cppcheck warning.
--HG--
branch : develop
2019-05-27 17:21:48 +03:00
Roman Telezhynskyi
6590742f09 Improve "Remove point on line".
Now it should handle circular shapes.

--HG--
branch : develop
2019-05-27 17:07:18 +03:00
Roman Telezhynskyi
d58b3f523d Methods to get a passmark base lines.
--HG--
branch : develop
2019-05-27 17:05:42 +03:00
Roman Telezhynskyi
a87f821327 Introduce mapped versions of methods. In some cases we will do mapping manually.
--HG--
branch : develop
2019-05-27 17:04:26 +03:00
Roman Telezhynskyi
6294dc0748 New struct VLayoutPassmark to store data about a passmark.
--HG--
branch : develop
2019-05-27 14:57:36 +03:00
Roman Telezhynskyi
bd611bf333 Refactor class VPlaceLabelItem.
Store more info about a placelabel.

--HG--
branch : develop
2019-05-27 14:54:44 +03:00
Roman Telezhynskyi
7dc420ad47 Refactor class VLayoutPiecePath.
Optimizing code style.

--HG--
branch : develop
2019-05-27 14:51:58 +03:00
Roman Telezhynskyi
3b51ccb31d Refactoring. Move drawing passmarks to separate class.
--HG--
branch : develop
2019-05-08 15:19:03 +03:00
Roman Telezhynskyi
f420812f5d Fixed build on Windows with Qt 5.6.
--HG--
branch : develop
2019-04-17 17:35:11 +03:00
Roman Telezhynskyi
52dfb912ee Resolved issue #965. Control passmark length with formula.
--HG--
branch : develop
2019-04-17 13:02:22 +03:00
Roman Telezhynskyi
aa1d30bdb8 Alternative approach to search intersection in layout.
--HG--
branch : develop
2019-04-10 15:54:18 +03:00
Roman Telezhynskyi
0987428a93 Increase required Qt version up to 5.4.
--HG--
branch : develop
2019-04-05 15:42:22 +03:00
Roman Telezhynskyi
c26d4d0942 Fixing issue with progress bar in console mode.
--HG--
branch : develop
2019-04-03 13:29:42 +03:00
Roman Telezhynskyi
7b72ea5bc1 Optimize layout algorithm after profiling.
--HG--
branch : feature
2019-04-02 15:30:31 +03:00
Roman Telezhynskyi
4adce13a4d Abort after timeout must have own signal.
--HG--
branch : feature
2019-04-02 15:29:33 +03:00
Roman Telezhynskyi
69df0922af Check timeout inside the layout generator.
--HG--
branch : feature
2019-03-30 11:17:54 +02:00
Roman Telezhynskyi
4565a47b91 Fix bug in VLayoutPieceData class.
--HG--
branch : feature
2019-03-30 11:15:14 +02:00
Roman Telezhynskyi
46bf68521e Nesting with timeout.
--HG--
branch : feature
2019-03-29 19:52:37 +02:00
Roman Telezhynskyi
47bcfd74ab Changes for dialog.
--HG--
branch : feature
2019-03-29 11:31:17 +02:00
Roman Telezhynskyi
91925c2618 Cppcheck warning.
--HG--
branch : develop
2019-03-27 11:45:25 +02:00
Roman Telezhynskyi
c2672b4b69 Shows global contour.
For debugging purposes.
* * *
Show nodes on global contour.

--HG--
branch : develop
2019-03-27 10:29:59 +02:00
Roman Telezhynskyi
635922faec Instead of squares compare depth position.
--HG--
branch : develop
2019-03-27 10:22:00 +02:00
Roman Telezhynskyi
39f24d2dcc When append whole piece don't miss piece edge.
This will potentially create less reserved space.

--HG--
branch : develop
2019-03-15 16:36:37 +02:00
Roman Telezhynskyi
762ee18026 Extend layout sheet paper size to cover coner cases.
--HG--
branch : develop
2019-03-15 15:33:30 +02:00
Roman Telezhynskyi
1393be669b Fix auto cropping.
--HG--
branch : develop
2019-03-12 19:45:27 +02:00
Roman Telezhynskyi
08415eb4ef Refactoring. Move best square result in separate struct.
--HG--
branch : develop
2019-03-27 09:31:02 +02:00
Roman Telezhynskyi
63ea3bf2f9 If user selects SaveLength option add fake contour edge.
* * *
Fixing issue with pieces on edge.

--HG--
branch : develop
2019-03-27 09:03:19 +02:00
Roman Telezhynskyi
ed23a4ee71 Refactoring. Define default values.
--HG--
branch : develop
2019-03-26 19:14:05 +02:00
Roman Telezhynskyi
e7bd65bde9 Refactoring. Move code in functions.
--HG--
branch : develop
2019-03-26 19:10:13 +02:00
Roman Telezhynskyi
1f462586cd Convert to implicitly shared object.
--HG--
branch : develop
2019-03-26 19:02:12 +02:00
Roman Telezhynskyi
81cda14c06 Refactoring. Pass position data as struct.
--HG--
branch : develop
2019-03-26 18:54:59 +02:00
Roman Telezhynskyi
93334c7f7d Show error when preparing pieces fails.
--HG--
branch : develop
2019-03-26 18:21:31 +02:00
Roman Telezhynskyi
6b6d124cbb Refactoring.
--HG--
branch : develop
2019-03-26 17:47:27 +02:00
Roman Telezhynskyi
335d4e2b81 Fix typo.
--HG--
branch : develop
2019-03-26 17:30:25 +02:00
Roman Telezhynskyi
c4d07125dc Refactoring define new type for id value.
--HG--
branch : develop
2019-03-26 17:15:03 +02:00
Roman Telezhynskyi
a479f3cb40 Improve checking allowance validity.
--HG--
branch : develop
2019-02-27 20:33:59 +02:00
Roman Telezhynskyi
77ae13ae18 New pedantic check. Check if allowance path is valid.
This check validate seam allowance path and layout allowance path.

--HG--
branch : develop
2019-02-23 18:43:06 +02:00
Roman Telezhynskyi
81bde9bb95 Fix issue with loop clearing.
--HG--
branch : develop
2019-02-20 09:59:59 +02:00
Roman Telezhynskyi
883d2c04f6 Resolved issue #937. Wrong symmetrical seam corners on pieces.
(grafted from 8c1b09cc7bc40d6d40e39d931d3e040b0323bd87)

--HG--
branch : develop
2019-02-13 16:32:38 +02:00
Roman Telezhynskyi
107af20c80 Clazy warnings.
--HG--
branch : develop
2019-02-13 12:24:26 +02:00
Roman Telezhynskyi
dc4fca7a76 Forgot to comment test data dump functions.
(grafted from 3f7b9889eedf7ae49f804cf6ace7cebec122fbec)

--HG--
branch : develop
2019-02-12 15:37:38 +02:00
Roman Telezhynskyi
63e402ba8a Resolved issue #937. Wrong symmetrical seam corners on pieces.
(grafted from f15fbf536959418dcd9a2f2caf7c0267ae46eaee)

--HG--
branch : develop
2019-02-12 14:51:21 +02:00
Roman Telezhynskyi
84c96c35dd Refactoring layout piece.
--HG--
branch : develop
2019-01-28 20:35:10 +02:00
Roman Telezhynskyi
6efc6f11c8 Fixed issue #924. Valentina produces wrong passmark for rollback case.
(grafted from 5ff3a91f41efebed4963d3377cb2f194983cc7f7)

--HG--
branch : develop
2019-01-09 17:46:02 +02:00
Roman Telezhynskyi
60c4e2880f Fixed issue #923. Valentina produces wrong seam allowance for rollback case.
(grafted from 111ae73392a265baecbb3031cf3963682e0bea77)

--HG--
branch : develop
2019-01-07 18:20:36 +02:00
Roman Telezhynskyi
2f717fd365 Fix uniting and cropping pages.
Code missed handling landscape orienation.

--HG--
branch : develop
2019-01-03 19:35:04 +02:00
Roman Telezhynskyi
b66f516a74 Fix missing arrow type when follow a grainline.
--HG--
branch : develop
2019-01-02 21:36:51 +02:00
Roman Telezhynskyi
b1ef2a0f7a Fixing warnings.
--HG--
branch : develop
2019-01-02 16:52:07 +02:00
Roman Telezhynskyi
25fc7227f0 Fix strip optimization. It must follow paper sheet orientation settings.
--HG--
branch : develop
2019-01-02 16:49:57 +02:00
Roman Telezhynskyi
3dfa269224 Implement "pull left" behavior.
Between valid best results select most top or most left for portrait and
landscape orientation.

--HG--
branch : develop
2018-12-31 13:35:42 +02:00
Roman Telezhynskyi
da0ee5ce6f Fix bug with flipped piece and follow grainline option.
--HG--
branch : develop
2018-12-31 11:33:20 +02:00
Roman Telezhynskyi
a35a6f2e55 Fix warning Wunused-function.
For some reasons suppressing doesn't work.

--HG--
branch : develop
2018-12-28 22:40:19 +02:00
Roman Telezhynskyi
8c676948ff Fixing regression. ref #915.
(grafted from 4a1f66408bca3eab9df83d5b9ef46ac9c3cc6278)

--HG--
branch : develop
2018-12-28 21:55:48 +02:00
Roman Telezhynskyi
bcb7def7b8 Improving contour edge for empty sheet.
It must follow sheet orientation, plus added control of numbers of points with
shift option.

--HG--
branch : develop
2018-12-28 15:57:24 +02:00
Roman Telezhynskyi
6bc160075b Refactoring. Fixing warnings.
--HG--
branch : develop
2018-12-28 15:55:47 +02:00
Roman Telezhynskyi
55a3ecb8cb Improvement for option "Save layout length".
This option worked only for portrait orientation. In landscape orientation
instead of width need save height. Additionally we keep original comaprison for
the smallest bounding rect. This creates more humanlike output.

--HG--
branch : develop
2018-12-28 15:53:18 +02:00
Roman Telezhynskyi
f678174729 Refactoring. Hide private static methods.
--HG--
branch : develop
2018-12-28 13:19:41 +02:00