+ // TODO: figure out if measurements are all in inches
+ public double getArmHorizontalDisplacement() {
+ double armHorizontalDisplacement = Constants.DefenseArm.ARM_LENGTH
+ * Math.cos(getArmPotAngle());
+ double handHorizontalDisplacement = Constants.DefenseArm.HAND_LENGTH
+ * Math.cos(getHandPotAngle());
+ return (armHorizontalDisplacement + handHorizontalDisplacement);
+ }
+
+ public double getArmVerticalDisplacement() {
+ double armMounted = Constants.DefenseArm.ARM_MOUNTED_HEIGHT;
+ double armVerticalDisplacement = Constants.DefenseArm.ARM_LENGTH
+ * Math.sin(getArmPotAngle());
+ double handVerticalDisplacement = Constants.DefenseArm.HAND_LENGTH
+ * Math.sin(getHandPotAngle());
+ return (armMounted + armVerticalDisplacement + handVerticalDisplacement);
+ }
+
+ public double getArmHorizontalDist() {
+ double arm = Constants.DefenseArm.ARM_LENGTH * Math.cos(getArmPotAngle());
+ double hand = Constants.DefenseArm.HAND_LENGTH
+ * Math.cos(getHandPotAngle());
+ return (arm + hand);
+ }
+
+ public double getArmHeight() {
+ double armMounted = Constants.DefenseArm.ARM_MOUNTED_HEIGHT;
+ double arm = Constants.DefenseArm.ARM_LENGTH * Math.sin(getArmPotAngle());
+ double hand = Constants.DefenseArm.HAND_LENGTH
+ * Math.sin(getHandPotAngle());
+ return (armMounted + arm + hand);
+ }
+
+ public boolean isOutsideRange() {
+ if (getArmHorizontalDist() < 15)
+ return false;
+ return true;
+ }
+