diff options
author | David Crocker <dcrocker@eschertech.com> | 2020-01-19 02:03:39 +0300 |
---|---|---|
committer | David Crocker <dcrocker@eschertech.com> | 2020-01-19 02:03:39 +0300 |
commit | c812ce5e14cf476526d955edbce2effa9d922902 (patch) | |
tree | da67dc55e46efdd38a0647318977a342da730345 /src/Movement/Kinematics/FiveBarScaraKinematics.cpp | |
parent | e0bbf71357b07c22e6d43be3cca5c7422163be32 (diff) |
Major refactoring, bug fixes in function evaluation
Changed all bitmaps to use the bitmap class from RRFLibraries
Fixed bugs in functoin evaluation
Diffstat (limited to 'src/Movement/Kinematics/FiveBarScaraKinematics.cpp')
-rw-r--r-- | src/Movement/Kinematics/FiveBarScaraKinematics.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/Movement/Kinematics/FiveBarScaraKinematics.cpp b/src/Movement/Kinematics/FiveBarScaraKinematics.cpp index 0a7e7a40..ea16329c 100644 --- a/src/Movement/Kinematics/FiveBarScaraKinematics.cpp +++ b/src/Movement/Kinematics/FiveBarScaraKinematics.cpp @@ -819,10 +819,9 @@ void FiveBarScaraKinematics::GetAssumedInitialPosition(size_t numAxes, float pos AxesBitmap FiveBarScaraKinematics::AxesAssumedHomed(AxesBitmap g92Axes) const { // If both X and Y have been specified then we know the positions of both arm motors, otherwise we don't - const AxesBitmap xyAxes = MakeBitmap<AxesBitmap>(X_AXIS) | MakeBitmap<AxesBitmap>(Y_AXIS); - if ((g92Axes & xyAxes) != xyAxes) + if ((g92Axes & XyAxes) != XyAxes) { - g92Axes &= ~xyAxes; + g92Axes &= ~XyAxes; } return g92Axes; } @@ -830,10 +829,9 @@ AxesBitmap FiveBarScaraKinematics::AxesAssumedHomed(AxesBitmap g92Axes) const // Return the set of axes that must be homed prior to regular movement of the specified axes AxesBitmap FiveBarScaraKinematics::MustBeHomedAxes(AxesBitmap axesMoving, bool disallowMovesBeforeHoming) const { - constexpr AxesBitmap xyzAxes = MakeBitmap<AxesBitmap>(X_AXIS) | MakeBitmap<AxesBitmap>(Y_AXIS) | MakeBitmap<AxesBitmap>(Z_AXIS); - if ((axesMoving & xyzAxes) != 0) + if (axesMoving.Intersects(XyzAxes)) { - axesMoving |= xyzAxes; + axesMoving |= XyzAxes; } return axesMoving; } @@ -911,14 +909,14 @@ bool FiveBarScaraKinematics::IsContinuousRotationAxis(size_t axis) const AxesBitmap FiveBarScaraKinematics::GetLinearAxes() const { - return MakeBitmap<AxesBitmap>(Z_AXIS); + return AxesBitmap::MakeFromBits(Z_AXIS); } AxesBitmap FiveBarScaraKinematics::GetConnectedAxes(size_t axis) const { return (axis == X_AXIS || axis == Y_AXIS) - ? MakeBitmap<AxesBitmap>(X_AXIS) | MakeBitmap<AxesBitmap>(Y_AXIS) - : MakeBitmap<AxesBitmap>(axis); + ? XyAxes + : AxesBitmap::MakeFromBits(axis); } // Recalculate the derived parameters |