Skip to content
Snippets Groups Projects
Select Git revision
  • 5c2658813e0b83eddb3a79d3a6db27fea8c83020
  • main default protected
2 results

ASTNode$DepGraphNode.java

Blame
  • Test.jadd 2.35 KiB
    aspect GrammarTypes {
      public class TestCounter {
        public static TestCounter INSTANCE = new TestCounter();
        public int numberParseLinkState = 0;
        public int numberSerializeRobotConfig = 0;
        public int numberLinkStateToIntPosition = 0;
        public int numberCreateSpeedMessage = 0;
        public int numberInSafetyZone = 0;
        public static void reset() {
          TestCounter.INSTANCE = new TestCounter();
        }
      }
    
      public class IntPosition {
        private final int x, y, z;
    
        private IntPosition(int x, int y, int z) {
          this.x = x;
          this.y = y;
          this.z = z;
        }
    
        public static IntPosition of(int x, int y, int z) {
          return new IntPosition(x, y, z);
        }
    
        public int getX() {
          return x;
        }
    
        public int getY() {
          return y;
        }
    
        public int getZ() {
          return z;
        }
    
        @Override
        public boolean equals(Object o) {
          if (this == o) return true;
          if (o == null || getClass() != o.getClass()) return false;
          IntPosition that = (IntPosition) o;
          return x == that.x &&
              y == that.y &&
              z == that.z;
        }
    
        @Override
        public int hashCode() {
          return java.util.Objects.hash(x, y, z);
        }
    
        @Override
        public String toString() {
          return "(" + x + ", " + y + ", " + z + ")";
        }
      }
    
      inh Model RobotArm.model();
      eq Model.getRobotArm().model() = this;
    
      inh RobotArm Link.containingRobotArm();
      eq RobotArm.getLink().containingRobotArm() = this;
      eq RobotArm.getEndEffector().containingRobotArm() = this;
    
      syn boolean RobotArm.isInSafetyZone() {
        TestCounter.INSTANCE.numberInSafetyZone += 1;
        for (Link link : getLinkList()) {
          if (model().getZoneModel().isInSafetyZone(link.getCurrentPosition())) {
            return true;
          }
        }
        return model().getZoneModel().isInSafetyZone(getEndEffector().getCurrentPosition());
      }
    
      cache ZoneModel.isInSafetyZone(IntPosition pos);
      syn boolean ZoneModel.isInSafetyZone(IntPosition pos) {
        for (Zone sz : getSafetyZoneList()) {
          for (Coordinate coordinate : sz.getCoordinateList()) {
            if (coordinate.getPosition().equals(pos)) {
              return true;
            }
          }
        }
        return false;
      }
    
      syn double RobotArm.speedLow() = 0.4d;
      syn double RobotArm.speedHigh() = 1.0d;
    
      syn double RobotArm.getAppropriateSpeed() {
        return isInSafetyZone() ? speedLow() : speedHigh();
      }
    }