Use the previously added superclass `TaskConstraintOnBoundary` for more
constraints where it's usable.
Currently done:
TaskFemConstraintDisplacement
TaskFemConstraintForce
TaskFemConstraintSpring
TaskFemConstraintFluidBoundary
TaskFemConstraintHeatflux
TaskFemConstraintFixed
TaskFemConstraintTemperature
TaskFemConstraintPressure
Too different:
TaskFemConstraintTransform (single selection)
TaskFemConstraintContact (single selection, two fields)
TaskFemConstraintPlaneRotation (single selection)
(Other constraint tasks, which do not use `addToSelection`)
With this, add/remove buttons for displacement constraint will put the user in a
selection mode if pressed when nothing is selected.
Superclass `TaskFemConstraintOnBoundary` Allows code reuse for other
constraints. We do not need this in `TaskFemConstraints` because it is only used
in a subset of constraints, particularly that applies on only some of the
boundary entities.
TODO: Confirm Undo/Redo works appropriately.
TODO: Optimize `onSelectionChanged()`.
Race conditions introduced after using OpenMP in `FemMesh::getNodesByFace` and
`FemMesh::getNodesBySolid` because of which nodes were randomly added or removed
from sets. Solved by replacing `SMDS_MeshNode::X()` etc., which are not thread
safe, with the thread-safe `SMDS_MeshNode::GetXYZ()`.
The previous implementation was quite slow in filling up the remaining_femelements list.
The new implementation fixes this by using numpy for the heavy work.
Found via `codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,apoints,ba,beginn,behaviour,bloaded,bottome,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childs,colour,colours,commen,connexion,currenty,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,inout,ist,kilometre,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oder,ontop,orgin,orginx,orginy,ot,pard,parms,pres,programm,que,recurrance,rougly,seperator,serie,sinc,strack,substraction,te,thist,thru,tread,uint,unter,vertexes,wallthickness,whitespaces -S ./.git,*.po,*.ts,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml,./build/doc/SourceDocu`
Found via `codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,apoints,ba,beginn,behaviour,bloaded,bottome,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childs,colour,colours,commen,connexion,currenty,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,inout,ist,kilometre,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oder,ontop,orgin,orginx,orginy,ot,pard,parms,pres,programm,que,recurrance,rougly,seperator,serie,sinc,strack,substraction,te,thist,thru,tread,uint,unter,vertexes,wallthickness,whitespaces -S ./.git,*.po,*.ts,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml,./build/doc/SourceDocu`
Prior to a recent commit (or this, if squashed), yield points of a non-linear
material with simple hardening were stored as three different properties. These
changes consolidate them into the new `YieldPoints` property.
String List instead of String should allow for arbitrarily many entries,
theoretically.
Note the defaults previously in `YieldPoint1` an `YieldPoint2` were arbitrary.
Now the list is kept empty by default.
Fixes issue #4720.