FreeCAD: master 43e8b308

Author Committer Branch Timestamp Parent
DeepSOIC wmayer master 2014-12-11 21:30:58 master 68ec9e44
Changeset OpticConstraints: Adding Snell's law

Fix AngleViaPoint to support new derivative calculation technique.

OpticConstraints: Adding Snell's law. Fix AngleViaPoint to support new derivative calculation technique.

Snell's law constraint added to GCS, but not yet exposed and cannot be
tested.
Since the way CalculateNormal() returns derivatives had changed,
AngleViaPoint constraint needed modifications. Nothing serious.

OpticConstraints: SnellsLaw progress

Addable through python. Fix math. Some quick-and-dirty visual stuff to
get rid of hangs and to see the constraint in action.

OpticConstraints: SnellsLaw: flipping logic fix

OpticConstraints: SnellsLaw progress

Added toolbar button. Allowed editing a datum by doubleclick. New error
message approach during constraint creation.

OpticConstraints: SnellsLaw

OpticConstraints: SnellsLaw: list label improvement

OpticConstraints: SnellsLaw: fix after rebase

OpticConstraints: SnellsLaw: expose helper constraints

Snell's law internally is made of three constraints: point-on-object,
coincident and the Snell's sin/sin. They were all buried under one UI
constraint. Exposing them allows to construct reflection and
birefringence on the point (attempting to do so used to result in
redundant constraints and was often not functional at all).
This commit breaks compatibility with older files.

OpticConstraints: SnellsLaw: small refactor of math

Placing the duplicated code of error and gradient calculation into a
private method.

OpticConstraints: SnellsLaw: fix datum edit unit

OpticConstraints: SnellsLaw: fix datum edit bug

After previous fix, the dimensionless value was not accepted (the
constraint's value did not change, the changes were ignored).
mod - src/Mod/Sketcher/App/Constraint.h Diff File
mod - src/Mod/Sketcher/App/ConstraintPyImp.cpp Diff File
mod - src/Mod/Sketcher/App/Sketch.cpp Diff File
mod - src/Mod/Sketcher/App/Sketch.h Diff File
mod - src/Mod/Sketcher/App/SketchObject.cpp Diff File
mod - src/Mod/Sketcher/App/freegcs/Constraints.cpp Diff File
mod - src/Mod/Sketcher/App/freegcs/Constraints.h Diff File
mod - src/Mod/Sketcher/App/freegcs/GCS.cpp Diff File
mod - src/Mod/Sketcher/App/freegcs/GCS.h Diff File
mod - src/Mod/Sketcher/Gui/CommandConstraints.cpp Diff File
mod - src/Mod/Sketcher/Gui/EditDatumDialog.cpp Diff File
mod - src/Mod/Sketcher/Gui/Resources/Sketcher.qrc Diff File
add - src/Mod/Sketcher/Gui/Resources/icons/small/Constraint_SnellsLaw_sm.xpm Diff File
mod - src/Mod/Sketcher/Gui/TaskSketcherConstrains.cpp Diff File
mod - src/Mod/Sketcher/Gui/ViewProviderSketch.cpp Diff File
mod - src/Mod/Sketcher/Gui/Workbench.cpp Diff File