Commit Graph

2019 Commits (7e8a7c8ffbb725a2ad32e59ff08104832022e062)

Author SHA1 Message Date
Koen Schmeets 4ad5d42a24 Add missing eigen submodule in some scripts 2021-12-31 14:40:47 -05:00
Koen Schmeets c66e6cbacc Add eigen extlib to install command 2021-12-31 14:40:47 -05:00
Ryan Pavlik dca5ce607d Add Eigen to build. 2021-12-31 14:40:47 -05:00
Ryan Pavlik ac91809a96 Add Eigen submodule at 3.4.0 tag 2021-12-31 14:40:47 -05:00
EvilSpirit e528fabbe4 Add an early out in writing jacobian.
Split from previous large 'Eigen library integration' commit.
2021-12-30 13:59:58 -05:00
EvilSpirit aec46b608e Add a method to Expr.
(Split out from earlier "Eigen library integration" commit)
2021-12-30 13:59:58 -05:00
EvilSpirit 3ba40230dd Some optimization
1. We are making FoldConstants first, so we are copying less amount of data in DeepCopyWithParamsAsPointers.
2. Since we already perform DeepCopyWithParamsAsPointers, PartialWrt already produces params as pointers
2021-12-30 13:59:58 -05:00
EvilSpirit 2f31673708 Decrease WriteJacobian complexity 2021-12-30 13:59:58 -05:00
EvilSpirit 4d58f95b43 Suppress dof calculation flag 2021-12-30 13:59:58 -05:00
EvilSpirit 7f86a78472 Dof calculation when redundant is allowed. 2021-12-30 13:59:58 -05:00
EvilSpirit 708a08f04b SolveBySubstitution of linear complexity. 2021-12-30 13:59:58 -05:00
Ryan Pavlik 974175dfbc Fix CMake warnings 2021-12-30 13:59:58 -05:00
Ryan Pavlik 006539b945 Clean up/simplify build 2021-12-30 13:59:58 -05:00
Ryan Pavlik a1e18b83cb Normalize namespaces: includes all at global/root namespace.
Should improve the quality of suggestions, etc. we get from tooling.
2021-12-24 11:29:57 -05:00
Ryan Pavlik 6d40eface2 importidf: Fix uninitialized variable 2021-12-24 11:29:57 -05:00
Ryan Pavlik 71c6492d6d readme: Clean up, fix nearly all markdownlint complaints 2021-12-22 15:06:14 -05:00
Ryan Pavlik b86e0dec84 readme: remove outdated build instructions 2021-12-22 15:06:14 -05:00
ruevs e07b082eb8 Fix hang when trying to display characters missing from the embedded font
When SolveSpace tries to display an Unicode code point (e.g. U+EA00 )
that does not exist in the embedded vector font (unifont.hex.gz) it hangs
in an endless loop in
`const BitmapFont::Glyph &BitmapFont::GetGlyph(char32_t codepoint)`.

The reason is that the binary search through the text file unifont-8.0.01.hex
that does the "lazy loading" of glyphs does not end.

Here is a short excerpt from the file:

```
D7FE:00007FFE63866DF66DEE6DDE63DE7FFE7FFE61866FBE638E6FBE6F867FFE0000
D7FF:00007FFE63866DF66DEE6DDE63DE7FFE7FFE61866FBE638E6FBE6FBE7FFE0000
F900:0080108810881FF8100800007FFE00000FF008100FF00810042002447FFE0000
F901:00047FFE008010841FFE10841FFC10841FFC10840880050003000CC0703E0000
```

When searching for `0xEA00` after some iterations of the while loop
2450010bbf/src/resource.cpp (L567)
both `first` and `last` end up pointing to F900. After that on each
consecutive iteration of the loop `last` ends up pointing to the LF (0x0A)
just before F900
2450010bbf/src/resource.cpp (L585)
and then `mid` ends up back on F900 here
2450010bbf/src/resource.cpp (L570)
and this will repeat enlessly.

The solution is to do
```
                    first++;
```
here
2450010bbf/src/resource.cpp (L591),
which will make `first==last` and change whe while loop contition to `while(first < last) {` thiw will
allow the while loop to exit.

Tested with
- 0xEA00 - non existent, not found in 16 iterations.
- 0xF900 - exists but takes exactly 16 iterations of the binary search to finish
- 0x0000 - found in 16 iterations
- 0xFFFD - the replacement Unicode code point for non-existing glyphs. Also the end of the font.
- 0xFFFFF - a codepoint beyond the end, not found and does not cause an exception

The lazy parsing of the vector front was introduced here.
645c2d90ac

Fixes #1150
2021-12-21 09:49:08 -05:00
ruevs 2450010bbf
Update REAMDE.md - point IRC to Libera chat.
... change Solvespace.com URL to https.
2021-12-12 20:12:20 +02:00
Tom Sutcliffe 91db627a81 mac: Don't interpret single-touch scroll events as pan gestures
To handle the Magic Mouse, whose single-finger touch gestures should be
interpreted as scrollwheel events rather than pan gestures.
2021-12-10 10:25:13 -05:00
phkahler 85f6ec4144 fix STL linking issue. Model was disappearing after the link group. 2021-11-20 19:48:17 -05:00
ruevs df3ef2ab0e GUI: Flexible vertical space above the toolbar
If the main window is not high enough allow the default 32 pixel padding
between the menu bar and the toolbar to shrink down to zero.

This allows the main window height to be a minimum of 688 pixels (on
Windows 10) so it is possible to capture 720P video tutorials.

Fixes #1130
2021-11-04 20:08:54 -04:00
Maximilian Federle eb17248bd5 CI: Replace edge releases with links to artifacts
Re-creating the edge release for every push
to master creates many superfluous release notifications.

Stop creating those releases and provide users with direct
links to the workflow artifacts instead via the
nightly.link GitHub app (https://github.com/apps/nightly-link).

Fixes #1103
2021-10-29 16:47:38 -04:00
Simon Wells 2a722c16b8 add gdk.h for GDK_WINDOWING_ defines 2021-10-23 20:59:52 -04:00
Simon Wells 267c002975 modify the spaceware code to also work on wayland
use the recommended compile-time and run-time checks for x11 and wayland
2021-10-23 20:59:52 -04:00
MX_Master a45e84a2ff + safe height gcode parameter 2021-10-23 20:01:29 -04:00
OlesyaGerasimenko 2cd0ee4b33 Update Russian translation 2021-10-04 20:52:24 +03:00
phkahler bb1938903b update pot file and locales.txt and CMakeLists.txt for spanish. 2021-09-26 16:45:49 -04:00
andesfreedesign 4afa810173 Add Spanish / Argentina translation 2021-09-21 11:18:34 -04:00
Maximilian Federle 6bc63e92b0 snap: Fetch tags for snap builds in CI & mention stable channel in README
The snaps use git describe to determine
their grade (stable/devel). Fetch the tags to
make this possible.

Point users to the official release in the stable channel in README.md.
2021-09-03 18:44:21 -04:00
phkahler 0eab7f783b move perspective, lighting, and explode distance from configuration screen to view screen. 2021-08-29 13:54:38 -04:00
tomsci 8cfe1d4bd7
mac: Remove spurious view menu items (#1101)
Which are either not applicable for SolveSpace (the tabs ones) or are
already handled in the platform-independent code (the fullscreen item).
2021-08-28 22:09:48 +02:00
phkahler 4bf9df2385
Update CHANGELOG.md 2021-08-27 19:38:26 -04:00
tomsci e1b0784b31
mac: Support for pan, zoom and rotate trackpad gestures (#1093)
* mac: Support for pan, zoom and rotate trackpad gestures

Currently SolveSpace is nearly unusable on a mac if you only have a
buttonless trackpad and not a mouse, because there's no way to pan
(ie right-click-drag) or rotate (ie middle-click-drag). You can zoom,
but only by using two-finger-drag up and down, which ends up getting
interpreted as a scrollwheel event.

This change makes the app behave much more like any other mac app, by
adding 2-finger-drag pan gesture support and pinch-gesture zooming, and
3D rotate using shift-2-finger-drag.

I've also added support for the rotate two-finger trackpad gesture,
which rotates directly around the screen Z axis (rather than in all 3
dimensions) which is actually something I've found myself wanting to do
with the mouse but afaik there's no equivalent way of achieving that.

While I was there, I fixed a bugette in convertMouseEvent which was
incorrectly translating the NSEvent coordinates, and then fixing up the
fact that the sign of the y-coordinate was wrong as a result. Using the
convertPoint API correctly means that fixup is not required because
convertPoint handles it for you.

* Don't do trackpad gestures on anything except the toplevel window

* mac: Fix non-functional scrollbar on text window

Which has not worked quite right since the last major refactor.

* Don't pass right-button drags to the toolbar

This improves the behaviour of trackpad pan/rotate on mac which uses
simulated right-button events.

* Don't pass cmd/ctrl modifier through on trackpad pan/rotate MouseEvents
2021-08-27 01:58:33 +02:00
tomsci 31a709e2c8
mac: Support external quit requests (#1099)
By no longer always returning NSTerminateCancel in
applicationShouldTerminate.

And implement applicationWillTerminate to ensure the cleanup code in
SolveSpaceUI::Exit() is always called.
2021-08-26 14:03:28 +02:00
Tom Sutcliffe 7e823df94a Correct which group is forced to mesh when linking an STL file
By making IsForcedToMesh() always return true for STL link groups,
rather than trying to set forceToMesh=true during the import phase.

STL link groups are now always shown as "model already forced to
triangle mesh" in the details screen, but also (unlike when the model
is forced to mesh by a parent group) show the '∆' icon in the group
list.
2021-08-24 13:09:19 -07:00
Tom Sutcliffe f71c527e23 Add a "∆" suffix to groups which have "force to triangle mesh" ticked. 2021-08-24 13:09:19 -07:00
phkahler f47cf65f41
Update CHANGELOG.md 2021-08-21 20:27:47 -04:00
Tom Sutcliffe b87987922f Darken disabled gray to 50% and document it. 2021-08-21 20:19:30 -04:00
Tom Sutcliffe 4db3e90b81 Show suppressed groups in gray in the text window 2021-08-21 20:19:30 -04:00
Koen Schmeets 0a3504c30a CI, NFC: Update libomp installation approach on macOS in the GitHub action (#1094) 2021-08-18 13:35:08 +03:00
Tom Sutcliffe 5edb2eebf6 Add "Show Exploded View" menu option
Where each entity in the active workplane sketch is projected a
different amount normal to the workplane, to allow inspection and
easier selection of entities that entirely overlap each other and are
thus otherwise difficult to see or select.

The distance between the exploded "layers" can be controlled in the
configuration page. Negative distances mean the layers are projected in
the opposite direction, relative to the workplane normal.
2021-08-17 17:48:25 +03:00
phkahler 3e595002fe
Update CHANGELOG.md 2021-08-15 18:22:12 -04:00
Tom Sutcliffe e86eb65985 Update feet and inches format to match architectural convention 2021-08-15 18:18:41 -04:00
Tom Sutcliffe 959cf5ba75 Fix MmToString calls that should have editable=true set 2021-08-15 18:18:41 -04:00
Tom Sutcliffe 41e3668f89 Make feet and inches show fractions of an inch, rounded to nearest 1/64
Taking care to round appropriately so you don't end up with things like
35.999 coming out as 2' 12" and similar.
2021-08-15 18:18:41 -04:00
Tom Sutcliffe 2fb6119de8 Add option for displaying dimensions in feet and inches 2021-08-15 18:18:41 -04:00
Tom Sutcliffe 645febfcd6 Set OSX minimum supported version 2021-08-15 12:28:46 -04:00
Tom Sutcliffe c19bd8cc99 Remove unused variable 2021-08-14 20:34:26 -04:00
Tom Sutcliffe b65a0be3d6 Fix/silence mac build warnings
As per Xcode 12.4 you can at least do a warning-free incremental build
with these changes. There are still plenty of warnings in a full build
(mostly from thirdparty components) but with these changes you can at
least develop on mac and see if/when you've added any new warnings when
doing incremental builds.
2021-08-14 20:34:26 -04:00