Commit Graph

1923 Commits (da5cd070ab5d0231e4780bce66066f12aaa4921c)

Author SHA1 Message Date
KmolYuan 2c081a643f Patch MSVC libraries. 2020-07-31 19:53:45 +08:00
KmolYuan b67af9e2f4 Fix the error on clang. 2020-07-31 19:44:44 +08:00
KmolYuan 7ad7b5b7fb Fix static linking of stdlibs. 2020-07-31 17:05:09 +08:00
KmolYuan fe5446b64a Compile MiMalloc by setup.py. 2020-07-31 16:18:35 +08:00
KmolYuan 68f9bf8f39 Ignore deployment in fork repo. 2020-07-31 15:15:23 +08:00
KmolYuan 3eaa406c27 Merge branch 'master' into python 2020-07-31 14:37:21 +08:00
Yuan 979d20b21e
Merge pull request #6 from solvespace/master
Merge from origin.
2020-07-31 14:36:26 +08:00
KmolYuan bc9b4d0929 Remove signatures in docstring. 2020-07-31 14:33:54 +08:00
whitequark d8b76ef7f1 Drop backtrace generation.
This has been completely broken since 2018 (commit a93283df), and no
one noticed, so it probably wasn't useful. Instead of fixing it, just
drop the feature and a bunch of odd nonportable code.
2020-07-28 14:56:55 +00:00
whitequark bbf402bfe3 Fix "Sketch → In Workplane" not updating the UI immediately. 2020-07-28 14:10:19 +00:00
whitequark 56e2592e2a Make "Toggle Reference" remember undo state.
Turning a reference dimension into a constraint one can make
the sketch unsolvable, which suggests Edit → Undo, which would undo
either too much or nothing at all.
2020-07-28 13:12:14 +00:00
phkahler e0fa99bad4 remove another redundant pass checking earness 2020-07-22 10:27:01 -04:00
phkahler 2640034124 NFC: Remove a redundant pass over all verticies in ear triangulation. 2020-07-22 10:27:01 -04:00
whitequark b0fc1912ea Create mimalloc heaps only when necessary.
The mimalloc temporary heap is a thread-local object that uses RAII
to manage heap lifetimes even in threads that are created implicitly,
e.g. by OpenMP. However, not all threads are necessarily created by
the application; graphics drivers may create their own threads, and
this can lead to deadlocks when combined with library unloading.

Fixes #657.
2020-07-22 11:05:01 +00:00
Yuan 9197b07a1f
Remove unused requirements. 2020-07-20 13:32:19 +08:00
phkahler 188b2e26ce Implement #524 Allow flat colors. Adds an edit control for Ambient lighting. 2020-07-18 02:15:41 +00:00
phkahler c75b2e473e Fix #647 Helix mesh defects.
Use the grid spacing algorithm for helical curve PWL creation.
This makes the grid and trim curves have similar spacing.
2020-07-12 19:09:26 -04:00
xzcvczx f0623fa5ba
CMake: don't install mimalloc. 2020-07-12 20:57:02 +00:00
наб c4ca4be91e Replace {Alloc,FreeAll}Temporary() with mimalloc
The heaps are wrapped in a RAIIish thread_local handler,
since being affined affined to a single thread for allocations is
required by the API

Ref: #642
2020-07-12 02:37:07 +00:00
наб cbac182edf Add and build mimalloc at 07c6e60a5a3bd7de09e4a170cd97bafba59cfafd 2020-07-12 02:37:07 +00:00
phkahler 9802b5d1ee Better helical triangulation - issue 489.
Resolve issue #489 helix has stairsteps.
Force helix axis line to 8 segments.
Grid triangulation to use a minimum of 4 segments for degree>1.
Adds twist dependence for grid triangulation with degree=1.
Added a max_dt parameter for PWL creation and use that for helical edges.
2020-07-11 14:29:18 -04:00
наб 873085edbd
README: fix extlib/q3d{o,} typo 2020-07-09 09:19:21 +00:00
Yuan 27bfe0fee3
Remove version badge. 2020-07-09 11:41:11 +08:00
Yuan 8506f432f0
Update README.md 2020-07-09 11:40:27 +08:00
KmolYuan 7c90159880 Update msvc version. 2020-07-08 21:33:01 +08:00
KmolYuan 25fe77f777 Update compile script. 2020-07-08 14:48:06 +08:00
KmolYuan e728c45f36 Bump version. 2020-07-07 14:55:48 +08:00
KmolYuan 88bab62439 Update CI settings. 2020-07-07 14:55:03 +08:00
KmolYuan f240f2c566 Merge from master. 2020-07-07 14:48:16 +08:00
Yuan 1864bf0ca7
Merge pull request #5 from solvespace/master
Merge from original repo
2020-07-07 14:38:58 +08:00
whitequark 211ae8c446 Show area of closed contour with SI units.
Similar to the way that Analyze → Measure Area... works.

Fixes #639.
2020-06-23 02:39:57 +00:00
whitequark 35c6af4929 Show center of mass using the same format as for constraints. 2020-06-23 01:16:58 +00:00
whitequark 586b0477d2 Delete all entities on a workplane request that is being deleted.
Fixes #628.
2020-06-23 01:05:51 +00:00
whitequark d238f985fb GTK: filter events more precisely.
Turns out that GDK_MOD2_MASK, at least on some systems, corresponds
to NumLock. Use the function provided by GDK to handle this.

Fixes #634.
2020-06-21 01:59:30 +00:00
whitequark a80a0337a5 Disable OpenMP.
This is unfortunate, but OpenMP is not available on some toolchains
(most MinGW builds) and, more importantly, breaks the distribution
model we use on Windows, which is a single self-contained executable.

Leave the OpenMP disabled by default everywhere so that we don't have
any second-class platforms where SolveSpace is slower than on first-
class ones.

Fixes #631.
2020-06-21 01:15:28 +00:00
whitequark 0da4a6b78a Use C++11 [[noreturn]] attribute instead of GNU-specific one. 2020-06-19 01:04:01 +00:00
phkahler 3d51b3949b Change default chord tolerance (to 0.1%) and maximum segments (to 20).
See the discussion in #627 for details.
2020-06-14 05:20:23 +00:00
phkahler c876104714 Make sure circles have at least 16 segments.
Before this commit, with the highest chord tolerance settings, circles
would render as octagons, which confused a lot of people. See #295.
2020-06-14 05:13:50 +00:00
phkahler e83e48392e Change criteria for short edge removal 2020-06-11 21:23:01 -04:00
phkahler 94a3cfdeb7 Fix SSurface::EdgeNormalsWithinSurface() to handle non-orthogonal u,v derivatives correctly. 2020-06-06 02:31:01 +00:00
whitequark 225f82a292 Get rid of the FPS counter.
The counter was added solely as a debug feature in commit e7c8c1c8,
which introduced the new Canvas system. It doesn't work all that well
and brings little value, so let's get rid of the visual noise.
2020-05-31 17:04:03 +00:00
phkahler 89e6559e2d Bring some parallelism to boolean code 2020-05-22 22:32:02 -04:00
whitequark c89a2e4f62 Use a thread-safe temporary arena on every platform.
This commit continues the work started in commits 521473ee and
e84fd464 that parallelizes certain geometric operations. This commit
cleans up the temporary arena implementations and makes them
thread-safe.

Also, in commit 521473ee, a call to FreeAllTemporary() was added
during initialization to create the heap on Windows. This is now
not necessary as the heap is created transparently on the first call
to AllocTemporary().
2020-05-22 18:06:22 +00:00
whitequark 060a3280f7 Use HTML comments in issue template.
Many people don't replace all text that should be filled in, which
makes issues harder to read. Make the text at least invisible.
2020-05-21 11:39:37 +00:00
whitequark 72d9978cac Eliminate a trailing dot before the SI prefix if there are no decimals.
Fixes #617.
2020-05-21 11:22:37 +00:00
whitequark 51f62362a1 Simplify MmToString. NFC. 2020-05-21 11:22:37 +00:00
ruevs 70ec7cc257 Improve triangle mesh (splitting of quads based on angle).
When checking the dot product of the tangents `tu` and `tv` to decide
in which direction to split a quad compare it to to LENGTH_EPS instead
of zero to avoid alternating triangle "orientations" when the tangents
are orthogonal (revolve, lathe etc.).
This improves the quality of the resulting triangle mesh.
2020-05-12 18:39:25 -04:00
phkahler 23dfd97285 Fix use-after-free in Lathe, Revolve, and Helix. Issue #611. 2020-05-12 16:12:09 -04:00
whitequark 0be42a8b29 Rename our isnan() function to IsReasonable().
Commit ea6db67 added an unusual isnan macro:

  #define isnan(x) (((x) != (x)) || (x > 1e11) || (x < -1e11))

Commit 8bc322e adds a preprocessor guard that looks like it would
cause the isnan function from math.h to be preferred, but doesn't
actually do that on many platforms, e.g. glibc:

  #ifndef isnan
  #   define isnan(x) (((x) != (x)) || (x > 1e11) || (x < -1e11))
  #endif

This commit renames our isnan() to make it clear that it differs
from the standard library operation, and makes it a function.

Fixes #603.
2020-05-12 14:08:21 +00:00
Maximilian Federle 771086fa50
Use C++ instead of C versions of standard library headers.
We use std::fabs, but <math.h> doesn't provide it; it worked by accident.
Include <cmath> that provides std::fabs, and switch all other headers to
their C++ variants, too.
2020-05-12 13:49:19 +00:00