Commit graph

1307 commits

Author SHA1 Message Date
Johannes Sixt
515c0c183c Work around ambiguous operator== reported by modern clang.
The warning is about an ambiguity between a regular call and one with the
argument order reversed. Mark the operator const so that both operands are
treated equally.
2020-12-12 21:31:31 +01:00
Leonardo Zide
70d5daaac4 New command line options. 2020-12-12 11:27:06 -08:00
Leonardo Zide
489f5e6f7e Merged DrawViewport(). 2020-12-11 18:01:04 -08:00
Leonardo Zide
c758ef2910 Qt deprecated cleanup. 2020-12-11 15:49:32 -08:00
Leonardo
6ae6fbade7 Removed deprecated functions. 2020-12-11 14:51:46 -08:00
Leonardo
eda0a705de Removed deprecated QResource usage. 2020-12-11 14:14:54 -08:00
Leonardo
caed332b3f Warn when assigning a keyboard shortcut that is already assigned to something else. Fixes #517. 2020-12-10 14:59:13 -08:00
Leonardo
14f891bd08 Update current step item in the timeline widget. 2020-12-09 13:58:44 -08:00
Leonardo Zide
db7259b7a5 Fixed ugly border in the Minifig Wizard. 2020-12-06 19:33:15 -08:00
Leonardo Zide
e52ea0ab63 Added LC_ARRAY_SIZE_CHECK for static array checks. 2020-12-06 11:26:55 -08:00
Leonardo Zide
c6c0718d18 Hide cursor while dragging. 2020-12-06 11:15:23 -08:00
Leonardo Zide
b981de80c5 Widget merge. 2020-12-06 10:52:57 -08:00
Leonardo Zide
28ccd8f681 Widget merge. 2020-12-05 12:17:09 -08:00
Leonardo Zide
8d09f90c54 Compile fix. 2020-12-05 11:19:11 -08:00
Leonardo Zide
60a0f9190d Widget merging. 2020-12-05 11:02:10 -08:00
Leonardo Zide
21d36bbac4 View Sphere cleanup. 2020-12-05 10:29:39 -08:00
Leonardo Zide
20a42e8fef Cleanup. 2020-12-05 08:50:12 -08:00
Leonardo Zide
a9fac6110b Inlined lcInputState. 2020-12-05 08:45:29 -08:00
Leonardo
525df8ad21 Widget cleanup. 2020-12-04 16:52:57 -08:00
Leonardo
7b320edc7a Scoped lcTrackTool. 2020-12-04 16:06:39 -08:00
Leonardo
366018ee8c Scoped lcTool. 2020-12-04 15:38:49 -08:00
Leonardo
256d3792b1 Widget cleanup. 2020-12-04 12:49:01 -08:00
Leonardo
194e02c74c Widget cleanup. 2020-12-04 11:40:53 -08:00
Leonardo Zide
9e12b480ce Moved DrawBackground to lcGLWidget. 2020-11-26 12:07:41 -08:00
Leonardo Zide
ef2220ffdc Moved background color to global options. 2020-11-26 11:51:50 -08:00
Leonardo Zide
462897caf7 Handle some malformed mpd files. Fixes #533.
- Skip duplicate submodels
- Skip recursive includes
2020-11-25 19:54:32 -08:00
Leonardo Zide
e2fb7b2ed9 Widget cleanup. 2020-11-14 12:47:55 -08:00
Leonardo Zide
f8ca2b848b Fix for GLES. 2020-11-06 18:55:36 -08:00
Leonardo Zide
6decd02761 Fixed crash on exit. Fixes #520. 2020-10-17 14:41:59 -07:00
Leonardo Zide
f7e89ee5c8 Better decorated part match. Fixes #510. 2020-10-17 10:32:22 -07:00
Trevor SANDY
a9912cc28c 3D Preview - add to toolbars menu and popup. Treats #514 2020-10-13 01:26:39 +02:00
Trevor SANDY
c5426abf24 3D Preview - update background from submodel properties. Treats #513 2020-10-13 01:26:39 +02:00
Leonardo Zide
28437d16f7 Fixed memory leak. 2020-10-11 17:29:32 -07:00
Leonardo Zide
8dad9dd269 Fixed AA not being applied to the preview widget. 2020-10-11 17:22:18 -07:00
Trevor SANDY
bdc4061a79 3D Preview - ignore update if existing piece and color matches 2020-10-08 15:17:31 +02:00
Trevor SANDY
959c815ad1 3D Preview - only update timeline item on double-click when in 'Floating' position
Remove duplicate updates in because when in 'Dockable' position, updates are triggered by single-click via the property tree
2020-10-08 14:00:52 +02:00
Trevor SANDY
b4e376a90d 3D Preview - treat object management and add missed call 2020-10-07 16:56:49 +02:00
Trevor SANDY
07d0365167 3D Preview - add preview display lock 2020-10-07 15:44:14 +02:00
Trevor SANDY
11966ca428 3D Preview - refactor and enable on property tree 2020-10-07 15:44:14 +02:00
Trevor SANDY
506b7a175f 3D Preview - Leo's fixes and formatting 2020-10-07 12:08:14 +02:00
Trevor SANDY
a239e504ec 3D Preview
3D Preview - restore doc format
2020-10-03 16:20:59 +02:00
Leonardo Zide
33679e4f70 Added shortcut to toggle axis display. Fixes #498. 2020-09-13 10:04:34 -07:00
Leonardo Zide
546eaf47cd Added option to duplicate submodels. Closes #502. 2020-09-07 11:29:37 -07:00
Leonardo Zide
0b4984672d Fixed selection/zoom region not being drawn in some cases. Fixes #491. 2020-08-23 10:16:54 -07:00
Leonardo Zide
8958e822a0 Added option to import/export mouse shortcuts. Fixes #490. 2020-08-22 18:47:03 -07:00
Leonardo Zide
0828fd1e2c Added mesh LOD distance option. 2020-08-15 16:16:26 -07:00
Leonardo Zide
e17a5719d9 Qt 4.8 fix. 2020-07-25 17:48:48 -07:00
Leonardo Zide
f4ddf94729 Old Qt fix. 2020-07-25 13:25:45 -07:00
Leonardo Zide
3903e905fe Dark color theme. 2020-07-25 13:21:22 -07:00
Leonardo Zide
92d75c4963 Support assigning shortcuts to toolbars. Fixes #463. 2020-07-11 12:22:01 -07:00
Leonardo Zide
0cead36c7f Added option to select the overlay and axis colors. Fixes #464. 2020-07-11 10:47:52 -07:00
Leonardo Zide
7ca69e37b7 Fixed crash on exit with Qt 5.15. 2020-07-11 09:17:43 -07:00
Leonardo Zide
aefe36dbca Use AA lines when AA is enabled. 2020-06-06 11:15:39 -07:00
Leonardo Zide
899c4c3cec
Merge pull request #479 from j6t/synth-update
Support small linear actuators; handle move large actuators and a new universal joint.
2020-06-01 12:31:20 -07:00
Leonardo Zide
cc68126a48 gcc fix. 2020-06-01 12:29:30 -07:00
Johannes Sixt
7ab0928fed Synthesize another universal joint.
The LDraw 2019-03 library update brought a new universal joint piece.

Adjust titles of the other joint that were updated at the same time.
2020-06-01 19:20:42 +02:00
Johannes Sixt
303b42ba12 Synthesize Technic Linear Actuator 4 x 1 x 1. 2020-06-01 18:23:20 +02:00
Johannes Sixt
48d6f14532 Synthesize linear actuators with new IDs.
Technic Power Functions Linear Actuators were moved to a new ID in the
2017-01 LDraw library update and then renamed in the 2019-03 update.
2020-06-01 18:22:48 +02:00
Leonardo Zide
44fa79ecb6 Instructions Dialog mockup. 2020-05-31 18:46:36 -07:00
Leonardo Zide
9e8400cbba Support local transforms for translations. 2020-05-08 17:53:53 -07:00
Leonardo Zide
f309d3fb0a Fixed translucent parts drawn with shading in flat shaded mode. Fixes #470. 2020-05-07 11:50:43 -07:00
Leonardo Zide
2390feb88f Deleted unsafe default operations. 2020-05-03 15:39:39 -07:00
Leonardo Zide
9fa660313a Use scoped enum. 2020-05-03 13:04:40 -07:00
Leonardo Zide
13ae577533 Use simple multiplicative tint for fade. 2020-05-03 12:39:04 -07:00
Leonardo Zide
b94b401b06 Save files with OMR style header. 2020-05-03 12:11:51 -07:00
Leonardo Zide
ab6b325b0a Fixed not being able to disable lines in flat shading mode. Fixes #466. 2020-04-28 16:11:52 -07:00
Leonardo Zide
53ed56e60f Added option to rotate pieces around their local center. Closes #430. 2020-04-26 20:01:35 -07:00
Leonardo Zide
a5fde91ee9 Configurable fade color. 2020-04-25 12:16:37 -07:00
Leonardo Zide
acd7dd3f9a Allow highlight color to be set by the user. 2020-04-25 11:36:28 -07:00
Leonardo Zide
b7f57c03f0 Skip faded passes when fade is disabled. 2020-04-24 18:13:53 -07:00
Leonardo Zide
47755fd4a0 Don't draw faded translucent parts in the prepass. 2020-04-24 18:08:48 -07:00
Leonardo Zide
4e6306a649 Translucent step fade. 2020-04-19 20:21:18 -07:00
Leonardo Zide
5a76f4c870 Scoped enums. 2020-04-18 19:45:21 -07:00
Leonardo Zide
a5c2e617d5 Array cleanup. 2020-04-18 19:38:29 -07:00
Leonardo Zide
ad45bb9a47 Paste pieces to the current step. Fixes #452. 2020-04-12 13:01:28 -07:00
Leonardo Zide
5e8baffcf7 Added shortcut option for Fade Previous Steps. Fixes #420. 2020-04-11 11:16:21 -07:00
Leonardo Zide
70da56bb05 More accurate bounding box calculation for submodels. 2020-04-11 11:04:27 -07:00
Johannes Sixt
ca73f3e3ad
Synthesis of Technic Universal Joints (#456)
* Split synth info initialzation by type.

We are going to remove the type enumeration and use a class hierarchy
instead. This preparation will then be helpful.

* Make Add...Parts() overrides of a virtual AddPart() function.

Since we have a class hierarchy for the different synthesized pieces, we
can now turn a case distinction into a virtual function call.

* Move initialization based on type to derived class constructors.

Move initialization of end transformations of flexible parts into
class lcSynthInfoCurved.

* Make GetDefaultControlPoints() virtual with overrides.

* Remove obsolete enum lcSynthType.

We have replaced its purpose by derived classes by now.

* Initialize shock absorbers' spring part ID early.

This removes the awkward early return that is needed in the if-else
cascade.

* Split lcSynthInfo into derived classes for curved and straight pieces.

* Only curved parts have varying sections, start, middle, and end properties.

Move the properties from the base class to the derived class that needs
them.

* Use derived classes to mark synthesized objects of different kinds.

We will extend the derived classes in the upcoming commits.

* PieceInfo is only needed to synthesize some hoses and shock absorbers.

* Initialize edge part IDs of flexible hoses early.

This removes another case distinction in AddParts().

* Verify the number of control points loaded from a model file.

* Synthesize Technic universal joints.

The direction of one end can be changed so that it points to the control
point.

* Technic universal joints need only the position of the control point.

* Synthesize legacy universal joints.
2020-03-30 12:17:08 -07:00
Leonardo Zide
b9662dd3e0 gcc fix. 2020-03-22 20:32:04 -07:00
Leonardo Zide
7275c4256d Added const qualifiers. 2020-03-22 20:18:52 -07:00
Leonardo Zide
66bed1a8f0 gcc fix. 2020-03-22 16:19:15 -07:00
Leonardo Zide
a5bb4a3051 Removed std::exchange. 2020-03-22 16:07:07 -07:00
Leonardo Zide
7c9773f228 Fixed override and virtual function qualifiers. 2020-03-22 15:44:41 -07:00
Leonardo Zide
90f1336a48 Scoped enums and constexpr. 2020-03-22 13:44:20 -07:00
Leonardo Zide
ade7334fa1 Support up to 10 control points and prevent the user from adding more. 2020-03-22 11:12:15 -07:00
Leonardo Zide
fab6a8fa11 Don't flag submodels as decorated parts. Fixes #453. 2020-03-14 11:24:56 -07:00
Leonardo Zide
85a9b19b2c Warning fixes. 2020-02-24 14:31:08 -08:00
Leonardo Zide
93ef9e0edc Fixed view size on retina displays. Fixes #447. 2020-02-24 12:58:38 -08:00
Leonardo Zide
e9c38e4f39 Added scoped enums. 2020-02-15 11:36:06 -08:00
Leonardo Zide
e5d06a29a2 Renamed pipette to color picker and fixed indentation. 2020-02-15 11:14:12 -08:00
RenateZwei
aa3ead6504
Added color picker (#446)
Added color picker
2020-02-15 10:59:14 -08:00
Leonardo Zide
bee37f0bc6 Fixed incorrect bounding box drawing when dragging a new submodel. 2020-02-01 11:42:22 -08:00
Leonardo Zide
fb7f952e98 Fixed a case where drag and drop a submodel didn't do anything. 2020-02-01 11:34:56 -08:00
Leonardo Zide
60aca425a0 Fixed crash using undo while dragging a new part. 2020-02-01 10:58:19 -08:00
Leonardo Zide
d626048a64 Fixed view not refreshing after cancelling a drop. 2020-02-01 10:42:29 -08:00
Leonardo Zide
be2f4caf65 Include parts in submodels in the 'Parts in Use' category. Fixes #436. 2020-02-01 10:33:51 -08:00
Leonardo Zide
9b7c7563a2 Added option to insert steps after the current step to avoid confusion. Fixes #373 and #408. 2020-01-26 18:41:31 -08:00
Leonardo Zide
bbc40d5a22 Start new model when closing the last tab. Fixes #422. 2020-01-26 11:31:21 -08:00
Leonardo Zide
59098436b7 Use menu names for the keyboard preferences. Fixes #411. 2020-01-26 11:03:41 -08:00
Leonardo Zide
a87a19f9c9 Fixed crash unzipping uncompressed files. 2020-01-25 12:44:50 -08:00
Leonardo Zide
93e8f4a85e Fixed possible buffer overflow. 2020-01-24 13:12:34 -08:00
Leonardo Zide
3b8b22493a Reorganized PLI function. 2020-01-20 15:39:20 -08:00
Leonardo Zide
ddf6f9dbba Automatically zoom out parts in the parts list image if needed. 2020-01-18 18:47:15 -08:00
Leonardo Zide
b698686420 Fixed compiler warnings. 2020-01-18 16:53:33 -08:00
Leonardo Zide
58957440cf Fixed crash loading certain parts. 2020-01-17 14:44:35 -08:00
Leonardo Zide
51fe5416b4 Replaced HTML parts list with BOM style image. 2020-01-14 12:48:18 -08:00
Leonardo Zide
6d818d48d2 Fixed HTML export not including submodels. Fixes #429. 2020-01-11 12:45:36 -08:00
Leonardo Zide
b43675f323 Array cleanup. 2020-01-10 17:40:14 -08:00
Leonardo Zide
220fb26a3a Added button to import inventories to a palette. 2020-01-09 12:06:42 -08:00
Leonardo Zide
7a78f86cd5 Workaround for Qt changing the order of items when drag and dropping. Fixes #424. 2020-01-05 18:14:50 -08:00
Leonardo Zide
9bc99235ef Fixed compiler warnings. 2020-01-05 15:19:50 -08:00
Leonardo Zide
8f48b09ae3 Added view sphere toggle. Fixes #284. 2020-01-05 11:38:24 -08:00
Leonardo Zide
636f84ad6c Fixed recent file being removed from menu when cancelling saving the current file. 2020-01-04 11:25:52 -08:00
Leonardo Zide
6891c59d38 Elide status bar text. Fixes #417. 2020-01-04 10:48:17 -08:00
Leonardo Zide
3044bf3972 Fixed compiler warnings. 2020-01-03 17:22:35 -08:00
Leonardo Zide
24fe422a8b Added option to disable restoring tabs. Closes #412. 2020-01-01 17:10:24 -08:00
Leonardo Zide
cbf534fcdf Added option to fade previous steps. 2020-01-01 17:06:17 -08:00
Leonardo Zide
587207b7cf Fixed current category changing to all parts. 2020-01-01 09:03:37 -08:00
Leonardo Zide
c7c6a42f78 Fixed used parts list not being sorted. 2020-01-01 09:01:10 -08:00
Leonardo Zide
1f441907ee Fixed crash loading files with invalid type 1 lines. Fixes #413. 2019-12-31 13:07:45 -08:00
Leonardo Zide
8309f0bf35 Added print margin. 2019-12-30 16:45:28 -08:00
Leonardo Zide
75839ee6fd Fix for Qt4. 2019-12-30 16:26:29 -08:00
Leonardo Zide
62ff114279 Fixed print font size. 2019-12-30 16:19:46 -08:00
Leonardo Zide
eae50b6836 Print submodels. Fixes #409. 2019-12-30 16:04:58 -08:00
Leonardo Zide
dce9a6095d Fixed crash when creating new submodel. 2019-12-30 08:19:42 -08:00
Leonardo Zide
524e154caa Show current step as bold in the timeline. 2019-12-29 12:33:13 -08:00
Leonardo Zide
1f839be310 Fixed invalid step being set in some cases. 2019-12-29 11:48:55 -08:00
Leonardo Zide
352a448b63 Always show an extra step at the end of the timeline. 2019-12-28 16:36:53 -08:00
Leonardo Zide
1c5c82a609 Avoid rolling the camera when using Look At. Fixes #407. 2019-12-25 12:25:32 -08:00
Leonardo Zide
75bc3cfaf8 Added Palette Edit Dialog. 2019-12-15 19:01:55 -08:00
Leonardo Zide
9c3505b628 Fixed in place editing. 2019-12-12 14:04:51 -08:00
Leonardo Zide
ca53610637 Added part selection button icon. 2019-12-11 17:26:18 -08:00
Leonardo Zide
24890ecebd Added array count macro. 2019-12-09 11:43:54 -08:00
Leonardo Zide
9ad9675062 Renamed sets to palettes. 2019-12-08 19:19:02 -08:00
Leonardo Zide
4ace604dcc Fixed gcc error. 2019-12-08 18:52:06 -08:00
Leonardo Zide
aa28254a37 Support multiple part sets. 2019-12-08 16:54:12 -08:00
Leonardo Zide
7b21d4af0b Fixed Qt4 errors. 2019-12-07 11:23:50 -08:00
Leonardo Zide
17a230c52a Added favorite parts category. 2019-12-07 09:52:46 -08:00
Leonardo Zide
9fe520c56a Fixed selection not being drawn. 2019-12-07 08:31:56 -08:00
Leonardo Zide
e9cdeed008 Sort piece insert preview with the rest of the scene. 2019-11-30 12:19:13 -08:00
Leonardo Zide
2bd9b837dc Always draw grid between opaque and translucent meshes. Fixes #399. 2019-11-30 11:38:11 -08:00
Leonardo Zide
41b89de83f Added language option. Closes #336. 2019-11-28 13:52:06 -08:00
Leonardo Zide
0ecc4b5966 Added option to disable mesh LOD. Closes #400. 2019-11-28 12:47:19 -08:00
Leonardo Zide
9e41edfef0 Fixed loading mpd files with consecutive NOFILE statements. 2019-11-26 12:13:22 -08:00
Leonardo Zide
33fe9cfac2 Faster parts list sorting. 2019-11-23 10:46:18 -08:00
Leonardo Zide
bd25c7f31a Sort translucent meshes per section. 2019-11-22 16:47:58 -08:00
Leonardo Zide
481d4e6e81 Added bounding boxes to mesh sections. 2019-11-22 12:48:40 -08:00
Leonardo Zide
226a4581aa Reset polygon offset after drawing. 2019-11-18 14:32:53 -08:00
Leonardo Zide
33caa613e7 Enabled alpha test when drawing grid studs. 2019-11-17 11:17:51 -08:00
Leonardo Zide
081373742e Translucent mesh sorting fixes and improvements. 2019-11-16 12:15:49 -08:00