fix merge conflicts
[3501/stronghold-2016] / src / org / usfirst / frc / team3501 / robot / subsystems / DefenseArm.java
index c0e9f316962820651c04364a797734843bba5dd8..0794b380a3ec01fbf51d05c9ec70ed27577274c1 100755 (executable)
@@ -15,6 +15,7 @@ public class DefenseArm extends Subsystem {
   private double footHeight;
   private double[] potHandAngles;
   private double[] potArmAngles;
+
   // angles corresponding to pre-determined heights we will need
 
   public DefenseArm() {
@@ -116,6 +117,30 @@ public class DefenseArm extends Subsystem {
     defenseHand.set(speed);
   }
 
+  // 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 boolean isOutsideRange() {
+    if (getArmHorizontalDisplacement() < 15)
+      return false;
+    return true;
+  }
+
   @Override
   protected void initDefaultCommand() {
   }