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.
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.
- Use `std::vector<T> elemstore` to store elements. Avoids manual memory management.
- Add and index (`std::vector<int> elemidx`) that avoids moving large objects
when adding elements.
- Add a free element list (`std::vector<int> freelist`) that speeds up element removal by
avoiding rearranging the element storage. It also avoids reallocations when adding
elements later.
- Add a proper iterator. It will be used to remove NextAfter - which is a performance bottleneck.
If a single point is selected when a "Constrain | Comment" (`;`) is added
then the comment is associated with the point and its position becomes
relative to the point. In this way the comment will move with the point.
If nothing is selected or more than a single point is selected then
the behaviour is as before and the comment is "floating".
Closes#1032
Keep items in selected state while dragging so that property browser
will track them until the left mouse button is released. Also, trigger
a property browser update on mouse move while dragging to make the
display "live"
Fix a bug with the lookup of stipple pattern for default styles when the
config settings are not yet available (install/upgrade/first run). This
caused hidden lines to display as continuous rather than dashed.
Also, this fixes the Printf format for the ambient lighting entry on the
configuration screen. This was causing string behavior when attempting
to edit the ambient lighting value on Windows. Oddly this didn't seem
to affect Linux.
* minor fix open/save dialogue on windows
On windows 10 the open/save dialogue box has an minor error, and I believe I fixed it.
When "Open" is selected from the menu, the title of the dialogue box says "SolveSpace - Save File" and the entered file name is "united". My fix correctly titles the dialoged box, and leaves the address bar blank when a file is being opened because "united" is only needed as a default name when a file being saved.
I found that class FileDialogImplWin32 from guiwin.cpp contains two if statements for "isSaveDialog". This is redundant. I removed the first where the title was originally set, but not working. I then set the title in the second if statement and moved the 'if isEmpty'' to this section.
* Update guiwin.cpp
replaced tabs with spaces
E.g. for when you have more than one user logged in, in which case
spacenavd works only for the first of those X11 displays.
We try to do it the old way first, so there should be no regressions.
Also fixes storing non-booleans in bool variables.
Primarily, this enables the user to export of construction entities in 2D
views such as SVG. Previously constuction entities were always skipped.
The "export these objects" is now available for all default styles.
One may turn off export of constraints or the inactive groups for example.
This also adds the exportable flag to the factory settings and
support for saving the exportable option for default styles in the
configuration. Construction entities with custom styles respect this
option as well. NOTE: Running this version will add new entries to the
configuration (Registry, .config etc.) on exit when testing this code.
Gdk::Cursor::create(Gdk::HAND1) yields a hand cursor more appropriate
for "grabbing" vs. pointing. Use the recommended create by name API
to get a "pointing hand" cursor.
When dragging points we must always update position and mark them dirty
through all code paths.
Ensure the ctrl and shift modifier rotation quarternion is always set to
something reasonable.
separate extraLine tracking code from drag tracking code
...by 1/40th of the scrreen width so that the user can notice it.
This can happen if the window was on a second monitor, which is
disconnected, or if the user knows about `Alt-Space | Move` and then
moving the window with the arrow keys.
Before this, if for example the left edge was off-screen it was moved
to 1920, which is just off-screen, so the window remained invisible.
Fixes: #938