Commit Graph

1982 Commits (c5c86bbe8a93c7325f8ec8c1bf6c08a9c1814bf2)

Author SHA1 Message Date
phkahler f9529916c4 Fix issue161 and 174. Use the same logic for selction and dragging, but ignore entites that are inherently undraggable.
This allows the selection to reach through entities to their corresponding ones on the underlying sketch which can be dragged if they are not fully constrained. This is decided in a new function Entity::CanBeDragged().
2020-08-09 19:55:33 -04:00
phkahler 575ddb5aaa Add a pass in triangulation to create convex triangle fans. These triangles will have smaller bounding boxes and look better. 2020-08-07 15:47:01 -04:00
phkahler b3eb589240 Fix issue659 - Problems constraining to ends of Helix.
Create a new copy type for faces that includes the translation aspect of helical extrusions. Also swap the end remappings when the shell is inside out - this was also affecting some Revolve extrusions.
2020-08-07 15:16:47 -04:00
phkahler 6ae417adb5 Update mimalloc to v1.6.4 2020-08-07 14:46:09 -04:00
whitequark a2962207dd Improve text screen for a selected entity.
* Add a link to its request, unless it's the first entity in that
    request (which would just select the same entity again).
  * Add a link to its group.
  * Add a link to its workplane.
  * Add a link to its style; and hide the style row for entities that
    aren't stylable.
  * Show constraints and measurements (reference constraints) in
    separate lists.
  * For curve entities, show constraints that apply to the points
    related to the curve, not just to the curve itself.
2020-08-07 18:06:42 +00:00
whitequark afa9e2890e Improve text screen for a selected constraint.
* Show the type of a constraint.
  * Show the workplane a constraint is in, for constraints which can
    be both projected to workplane or be free in 3d space.
  * Clearly distinguish reference from non-reference constraints.
  * Add a checkbox for toggling the reference option.
  * When showing requests a constraint applies to, highlight on hover
    the specific entity being constrained, not just the first one.
2020-08-07 18:06:42 +00:00
phkahler fef6a39a17 Don't init srand(0) because rand isn't used any more. 2020-08-03 15:41:47 -04:00
phkahler 3c2f82b7f1 Remove the Random() function and use a fixed table of arbitrary vectors in raycast.cpp
This also fixes issue #666.
2020-08-03 10:30:54 -04:00
phkahler fd2dfe87f6 Fix #656 by making SSurface::SplitInHalf thread safe.
SSurface::SplitInHalf was modifying the surface and then restoring it at the end. Make temporary copy instead.
2020-08-01 11:52:20 -04:00
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