Commit Graph

369 Commits

Author SHA1 Message Date
wmayer
8857f9825f + fix various rendering problems 2014-11-04 18:56:05 +01:00
wmayer
3da4ede31d + add new render type to 3d viewer 2014-11-03 23:09:38 +01:00
wmayer
d9093a1823 + change API of GLPainter 2014-10-22 14:48:38 +02:00
Abdullah Tahiri
bb6a27f5bf Sketcher: Element Widget enhancement: Support for external geometry
Python naming used is "ExternalEdge" for consistency with the name appearing in the status bar when selecting that object.

As discussed:
http://forum.freecadweb.org/viewtopic.php?f=10&t=6861&sid=bd9ad10357f8a7de146c4fbd2d53c23b&start=90
2014-10-14 18:33:21 +02:00
Sebastian Hoogen
01cf0f5872 issue #1027 use unicode filepaths 2014-10-11 13:32:06 +02:00
Sebastian Hoogen
6157cf3c4a fixes #1782 remove unused precsion parameters
from gp_Trsf::SetValues
2014-10-11 13:03:02 +02:00
wmayer
4e72e4a937 + fix Qt help problems 2014-10-01 17:16:43 +02:00
wmayer
24886ad909 + fix minor bug when adding coincidence constraint 2014-09-28 15:06:02 +02:00
wmayer
cff917b013 + Proper handling of sketch plane parallel to view direction 2014-09-27 15:53:21 +02:00
wmayer
696d4a5f4a + fix warnings with clang 2014-09-24 17:46:04 +02:00
wmayer
055dcb0512 + fix warnings with clang 2014-09-24 15:55:36 +02:00
wmayer
a63b94620b + fix build error 2014-09-23 12:51:31 +02:00
Stefan Tröger
512a2b94d2 Adaption of FreeCAD to QuarterWidget
-removes all soqtviewer references
-create a quarter adaptor class which implements missing functionality
-adopts freecad code to make use of SoRenderManager and changed View3DInventorViewer  interface
2014-09-23 10:11:11 +02:00
Abdullah Tahiri
f1035e8481 Sketcher fixes: Symmetry arrows properly scaled, fixed icon in constraint taskbar list contextual menu 2014-09-18 16:01:34 +02:00
Abdullah Tahiri
5dcd081591 Sketcher enhancement: Constraint icons visible over lines 2014-09-17 18:49:40 +02:00
Abdullah Tahiri
b3f0c4652d Sketcher Art enhancement: New Symmetric constraint icon by Jim
There is more space in between the > < symbols now, so it is more clear as it overlaps less.

Thanks Jim!
2014-09-17 18:49:16 +02:00
Abdullah Tahiri
cea93fa33c Sketcher Bug fix: Arrows for symmetry constraint are back
The arrows were there in the code, but at a certain point, code was written to set the this->imgHeight value programatically, based on
whether it had text or not. As symmetry constraint does not have text the variable failed to initialize. Being zero, it did not pass
the ASSERT in the render function, so it was not rendered.

This includes Werner's fix for improver cast of a SoRayPickAction to SoGLRenderAction:
SbVec2s vp_size = static_cast<SoGLRenderAction*>(action)->getViewportRegion().getWindowSize();
to
SbVec2s vp_size = SoViewportRegionElement::get(state).getWindowSize();

At least sometimes tt is a SoRayPickAction because:

When you move with the mouse over the sketcher (when in edit mode) you enter the method ViewProviderSketch::mouseMove.
Inside there the method getPointOnRay is called to get a picked point underneath the cursor. Inside the latter method
an instance of SoRayPickAction is created to traverse the scene graph. After a long cascade of function calls you
finally enter SoDatumLabel::generatePrimitives(SoAction*).
2014-09-17 18:48:54 +02:00
Abdullah Tahiri
411dbd8ae6 Sketcher visualization enhancement: Do not group sketcher symmetry icons.
Do not add a symmetry constraint icon to a group of icons, so that it lies on the line or point providing the symmetry (symmetry axis/point),
as it is more clear to the user which line this is.
2014-09-17 18:48:36 +02:00
Abdullah Tahiri
e41b372cbf Sketcher feature enhancement: Symmetry constraint perpendicular to axis of symmetry
Solves Mantis ticket: http://www.freecadweb.org/tracker/view.php?id=1623
Unrelated minor fix: remove unused variable
2014-09-17 18:48:15 +02:00
Abdullah Tahiri
816409c68a Sketcher visualization: Increase readability of redundant constraint solver message
Color changed to "OrangeRed" to improve readability.
2014-09-17 16:43:51 +02:00
Abdullah Tahiri
8dd77ae18a Sketcher Redundant/Conflicting art by Jim 2014-09-17 16:43:51 +02:00
Abdullah Tahiri
512d51cb7f Sketcher new feature: Select Conflict and Redundant Constraints
Based (and solves) Mantis ticket:
http://www.freecadweb.org/tracker/view.php?id=1643

The ticket refers only to redundant, and ask for deletion.

Two commands are created, one for redundant constraints and other for conflicting constraints.

As usually removing one constraint of the "at least one" is sufficient, the implementation selects the constraints (but does not delete them).

The user therefore easily identify the constraints involved and decide to delete them.

This implementation takes into account the edit->Actsketch that ViewProvidedSketch creates for solving, as it is this instance the one that generates the messages in the Sketcher Taskbar.

No buttons in the toolbar by default (can be added by the user), but an hyperlink in the solver messages which triggers the selection of the appropriate command (conflicting or redundant).
2014-09-17 16:43:50 +02:00
Abdullah Tahiri
7ab50d69d4 Sketcher new feature: Selects the elements associated with the selected constraint(s)
Ex 1: User selects constraints from the list => right click => select "select elements" from the contextual menu => The elements (edges,vertex) involved in the constraint(s) are selected.

Ex 2: User selects (a) constraint(s) => Clicks button in toolbar (if included by the user) => The elements (edges,vertex) involved in the constraint(s) are selected.

Intended as visual aid to see which elements are being affected by a constraint.

Requested by Jim on thread:
http://forum.freecadweb.org/viewtopic.php?f=19&t=6875&start=10

Solving another Mantis ticket I can not find now.
2014-09-17 16:43:49 +02:00
Sebastian Hoogen
83543c71c6 issue #1701 removed further except: statements 2014-09-17 11:57:32 +02:00
Sebastian Hoogen
d49528b27e issue #1700 replace PyExc_Exception 2014-09-17 11:15:57 +02:00
Abdullah Tahiri
98a78e2752 Sketcher Element Widget enhancement: Auto-switch to Edge (first valid type)
Feature requested by nahshon.
- In auto-switch to edge mode, actually switch to first valid type, which is always
edge, except for a point. It reduces the amount of clicks when dealing with points.
- Correction of a typo.
2014-09-16 10:12:53 +02:00
wmayer
47ce908531 + do not add units to translation 2014-09-10 10:35:49 +02:00
wmayer
c94403412d + fixes #0001719: Show current shortcuts (S) in menus and hover text. 2014-08-31 14:28:33 +02:00
jriegel
d0d832896a Merge remote-tracking branch 'refs/remotes/origin/jriegel/NewWinBuild' into jriegel/review-NewLibPack
Conflicts:
	src/3rdParty/salomesmesh/CMakeLists.txt
2014-08-27 15:39:00 +02:00
wmayer
839eced7a9 + fix more compiler warnings 2014-08-27 13:26:44 +02:00
wmayer
a50743041b + fix -Wnull-conversion, -Woverloaded-virtual, -Wlogical-not-parentheses, -Wsometimes-uninitialized 2014-08-26 19:14:13 +02:00
wmayer
fe0dad88d0 + fixes #0001713: Allow Part.Arc to be used as Sketcher geometry 2014-08-26 13:09:37 +02:00
Itai Nahshon
f27eafc993 Fix automatic creation of tangent constriants.
a. Use scale to calculate max distance
b. Consider only circle/arc that actually touch the newly created line
c. Use of arc angles correctly
d. Find nearest touch point (not nearest center)
e. some optimization
2014-08-24 19:07:31 +02:00
Itai Nahshon
ab259fffe3 Sketcher: Ignore small mouse moves after selection.
Switch to drag mode only after cursor moved 3 pixels.
2014-08-24 19:07:16 +02:00
wmayer
28f8bc0209 + fixes #0001703: Spreadsheet PropertyController 2014-08-23 14:38:30 +02:00
wmayer
8fa492c41c + fix localization problems in PropertyConstraintListItem, + improve whitespaces 2014-08-22 21:32:19 +02:00
jriegel
d46e0d0cb6 some type clearification 2014-08-21 17:59:33 +02:00
Abdullah Tahiri
1db66d8b40 Sketcher properties feature enhancement: Separated sublist for unnamed datum constraints 2014-08-21 14:11:51 +02:00
wmayer
d5870525ff + fix build failure on Windows, remove unused headers, whitespace improvements 2014-08-19 14:02:16 +02:00
Abdullah Tahiri
d8f68afc62 New feature: Edit Sketch datum constraints from data Property view
This feature shows in the data properties associated to a TreeView element,
the datum constraints, i.e. those with an associated value.
2014-08-19 13:23:15 +02:00
wmayer
222bcf39c4 + improve OCC version macro, fix build failure with MinGW, fix build failure with Coin2 2014-08-18 11:34:02 +02:00
wmayer
3b0b92e0e0 + fixes #0001690: sketch.getPoint crashes FreeCAD if the point does not exist 2014-08-16 14:41:30 +02:00
Ian Rees
642aa33cf1 Sketcher: Don't change preselection during box selection 2014-08-09 07:34:04 +02:00
Abdullah Tahiri
1803a1e28e Sketcher Elements widget - New feature -
- Remembers how the user left the "Auto switch to Edge" and the "Extended Name" checkboxes
and restores the values on next use of the Sketcher WB.
2014-08-08 18:32:54 +02:00
wmayer
bd743a82f6 + fix dir2qrc script to keep alphabetical order of file names, update Sketcher.qrc 2014-08-07 20:29:31 +02:00
Abdullah Tahiri
3d2d0aadbd updated icons for sketcher
- Selection icons added.
- Art by Jim
- Clean up sketcher xpm small icons: Only constraint icons seem to be necessary
2014-08-07 19:49:51 +02:00
Abdullah Tahiri
f632ae80bc changes in sketcher
- Varios minor bug fixes.
- Added the other commands to the toolbar.
- Bug fix: missing AbortCommand().
- Mode Auto-switch to edge (Sponssi mode) has selection combo disabled to avoid interferring with this mode.
However, if auto-switch checkbox is unchecked (Jim-Abdullah mode), the combo is enabled and selection of
element type can be effected via the combo with the mouse.

In any case "z" shortcut iterates round robin the "valid types" of the preselected (hovered) element.
2014-08-07 19:49:51 +02:00
wmayer
3924b63759 code review: move transaction to outside from loop, fix several bugs, fix whitespaces 2014-08-05 00:35:03 +02:00
wmayer
c4c04e3143 Squashed commit of the following:
commit 695becbbfff961b13e3edb5a4e1e4487bc53b4bb
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Aug 4 15:24:33 2014 +0200

    - Making combo disable state.
    - Updating Art (Thanks Jim!)

commit d5391d40ace450fa2e65fe2b4ab8029ad37cacf8
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Fri Aug 1 00:40:15 2014 +0200

    - Adaptation of code to Workbench's new Template structure.
    - Minor adaptation of new ViewProvideSketch code to new constraint code (only in code extensions needed for element Widget)

commit ecdec20afa33c9a950e6054e80e4aa9c72aad8b6
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jul 31 15:31:38 2014 +0200

    Fix so that when applying a coincident constraint to a plurality of points,
    if one constraint on a couple of points exists, no new coincident constraint is
    added to this couple.

    Fixes: http://forum.freecadweb.org/viewtopic.php?f=3&t=6890

commit 32ef59d76e6c63356f5d36598ca11eb47c2e52af
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jul 31 14:13:58 2014 +0200

    Add some placeholder art for icons to avoid having a cross icon and annoying icon not found messages.

commit ccb60a3a7e71a0eb8ad5d896542314a98ef314a8
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Jul 28 20:15:29 2014 +0200

    - Fixed Length Constraint accelerator (D) to SHIFT+D to avoid colision with other higher level FreeCAD accelerator assignment.
    - Selection Accelerators now toggle on shortcut execution, and act when no other element is selected (fixed bug)

    TODO: Art+Toolbar

commit 791358d046e8eeb03fa00272f5627c75254c48eb
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Jul 28 15:12:07 2014 +0200

    Fixing shortcut system:
    - Take shortcuts automatically from CommandManager.
    - Fixed two shortcuts in CommandConstraints (Point on Object - O and
    Parallel Constraint - P to SHIFT+O and SHIFT+P to avoid collision with other constraints)
    - Fixed shortcuts in CommandConstraintAccel to non-already-existing combinations
    - Fixed Sketcher Menu to show accelerators

commit 12d366406a45038ce1a4f725a98e4f570475084b
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Jul 28 11:53:37 2014 +0200

    Implemented SHIFT multiple selection functionality in listwidget.

commit 0606ea7dfe38fdf8924f65f14382f1b327145c80
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Jul 28 11:02:02 2014 +0200

    Added Sketcher Accelerators for:
    - Selection of H Axis
    - V Axis
    - Origin

    Main TODO: Shortcuts and Shift in list widget implementation

commit 297464807fc56fbcf31efadff9625fc05bb20c41
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Wed Jul 23 11:37:21 2014 +0200

    Implementation of:
    - Switch on 'Z' instead of 'Shift'
    - Checkbox to select whether element internal name (e.g. Edge10) should be presented on list or not (Sponssi requested)
    - Checkbox to force going back to "Edge" type on change from one element to the next (Sponssi requested)

commit c8764b116acdcfdc7ef7658dc6009fb8db807906
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Wed Jul 23 07:57:11 2014 +0200

    TaskSketcher Elements:
    - Store Vertex within elements for optimization (reduce loops searching for vertex in every function call)
    - Added the accelerators described below + Toggle Construction as context menu commands
    - Fixed bug (Thanks sponssi!): After some element has been preselected from the list and the cursor moved to the drawing area,
    the preselection doesn't seem to be resetted in the widget or whereever it is handled.
    Tapping shift still swaps the preselection between the points of the previously selected element.
    The left mouse button has to be clicked in the draw area to get rid of this.
    http://forum.freecadweb.org/viewtopic.php?f=10&t=6861&sid=7eea4adc7ecf4cebd561b357601866a2&start=20
    - Extended naming of elements, to facilitate writing python code (as requested by sponssi).
    - Minor modifications (creation of utility fuctions, code readibility, ...)

    Sketcher Workbench:
    - First effort to add a toolbar with the accelerators.

    Sketcher Accelerators: (Perform actions on existing elements, as opposed to Geometry Creation, not restricted to applying constraints)
    - Close Shape : of selected edges (i.e. lines and arcs)
    - Connect : selected edges (connect endpoint edge with starting point of next edge according to selection order)
    - Select Constraints : associated with currently selected edges

commit 1dc18204a4e2e38f71d729a7692383f50a7d4654
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Sat Jul 12 16:06:48 2014 +0200

    New alternative implementation of the Sketch Element List.

    This version comprises:
    - Identification via icon of type of geometric element (Point, Arc, Line, Circle) and
      Type of selection (Edge, Starting Point, End Point, Center Point)
    - Corrected a bug where upon selection from the combobox, the icons were not updated (Thanks Jim!)
    - Implementation of jump to next valid type of last preselected element (aka fast-forward) for all the types.

commit 4d472ef796362405c3982355f86489fa92cbfe6d
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jun 26 17:15:51 2014 +0200

    Feature request by jmaustpc
    - When an object does not have an element, lets put a different icon.
    - Currently the constraint lock icon is used until availability of a new one.

commit 6d15478f6533ff3805520a8ca36d1c41908cb0af
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jun 26 14:54:23 2014 +0200

    Bug fix (preselection not disappearing on changing element without the element Type).

commit e33043e17781fcf6399257696f115f68ab4580ec
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jun 26 14:39:20 2014 +0200

    New nicer icons by jmaustpc. They look much nicer :-)

commit 2ce2d6ff1ad2d81b0b1e30ffcbe9f2cc445f2e5b
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jun 26 14:37:21 2014 +0200

    Fast-Forward functionality:
    - If an element not having "midpoint" is preselected, then on pressing SHIFT the
    Type will jump from EndPoint to Line skipping midpoint.
    - This is intended as a productivity feature, as most sketch elements usually are lines

commit 1865d06d06582a49da10ddc123133807a4593060
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Wed Jun 25 15:47:22 2014 +0200

    Bug fix (thanks jmaustpc)
    - Preselection is maintained even though the geometric element does not have the "Type".
    - Fix involves calling for remove preselection in TaskSketcherElement
    - Implementing the response to the message RmvPreselection in ViewProviderSketch

commit 14e21da4b4ed0e9a2b3e846a4e51f6745d5e0ab7
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Jun 23 14:25:35 2014 +0200

    Fix Bug with null pointer (thanks jmaustpc!)
    Clean up code

commit 0d99eb633f1bca45d4e7bb22c57bd4892767a390
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Wed Jun 11 16:32:48 2014 +0200

    New widget for the Taskbar of the Sketcher WB.

    The objectives of this widget are:
    1. Allow editing of sketches when they have (partially) overlapping lines of any type
       (construction/external/normal).
    2. Allow the construction of sketches using the keyboard (less mouse intensive)

    The widget works as follows:
    1. A QListWidget presents a list of elements, element is here a geometric element
    formed Types edges, starting points, end points and midpoints (e.g. circles, arcs)
    2. On hovering/Entering one item in the list, it is preselected for easy identification.
    3. The selection can be switched from one type to another using the SHIFT key
    (press and release) in a round-robin fashion (or you can select it using the droplist)
    4. Selection of different types is possible (e.g. two points and a line).
    5. The contextual menu accessible by right click allow to apply a constraint to the
    selection.
    6. The constraints in the contextual menu have shortcuts, so you can actually use the
    shortcut directly from the QListWidget.

    Additional features introduced to other parts during development...
    - New color introduced for Types that are selected and preselected at the same time
    - Edges is a SoLineSet. You can not apply many So modifiers (width,offset) to parts of a SoLineSet.
    An edge part of a SoLineSet that is drawn after another one, covers it unless it is closer to the
    camera. The system of manual offsets already in place for points has been extended to properly
    handle (i.e. show) overlapping lines part of a SoLineSet.
2014-08-05 00:35:02 +02:00
jriegel
103ae7c2ad move build specifier in own cMake group 2014-08-03 20:53:19 +02:00