Package com.cburch.logisim.data

Examples of com.cburch.logisim.data.Direction


    edge.put(Direction.NORTH, new ArrayList<Instance>());
    edge.put(Direction.SOUTH, new ArrayList<Instance>());
    edge.put(Direction.EAST, new ArrayList<Instance>());
    edge.put(Direction.WEST, new ArrayList<Instance>());
    for (Instance pin : pins) {
      Direction pinFacing = pin.getAttributeValue(StdAttr.FACING);
      Direction pinEdge = pinFacing.reverse();
      List<Instance> e = edge.get(pinEdge);
      e.add(pin);
    }
   
    for (Map.Entry<Direction, List<Instance>> entry : edge.entrySet()) {
View Full Code Here


    String name = elt.getTagName();
    if (name.equals("circ-anchor") || name.equals("circ-origin")) {
      Location loc = getLocation(elt);
      AbstractCanvasObject ret = new AppearanceAnchor(loc);
      if (elt.hasAttribute("facing")) {
        Direction facing = Direction.parse(elt.getAttribute("facing"));
        ret.setValue(AppearanceAnchor.FACING, facing);
      }
      return ret;
    } else if (name.equals("circ-port")) {
      Location loc = getLocation(elt);
View Full Code Here

      Instance pin, Map<Instance, AppearancePort> others) {
    // Determine which locations are being used in canvas, and look for
    // which instances facing the same way in layout
    Set<Location> usedLocs = new HashSet<Location>();
    List<Instance> sameWay = new ArrayList<Instance>();
    Direction facing = pin.getAttributeValue(StdAttr.FACING);
    for (Map.Entry<Instance, AppearancePort> entry : others.entrySet()) {
      Instance pin2 = entry.getKey();
      Location loc = entry.getValue().getLocation();
      usedLocs.add(loc);
      if (pin2.getAttributeValue(StdAttr.FACING) == facing) {
View Full Code Here

 
  @Override
  public boolean contains(Location loc) {
    if (super.contains(loc)) {
      Location myLoc = getLocation();
      Direction facing = getAttributeSet().getValue(StdAttr.FACING);
      if (facing == Direction.EAST || facing == Direction.WEST) {
        return Math.abs(loc.getX() - myLoc.getX()) > 5
          || loc.manhattanDistanceTo(myLoc) <= 5;
      } else {               
        return Math.abs(loc.getY() - myLoc.getY()) > 5
View Full Code Here

    public String toString() {
      if (value < 0) {
        return Strings.get("splitterBitNone");
      } else {
        String ret = "" + value;
        Direction noteDir;
        if (value == 0) {
          noteDir = isVertical ? Direction.NORTH : Direction.EAST;
        } else if (isLast) {
          noteDir = isVertical ? Direction.SOUTH : Direction.WEST;
        } else {
          noteDir = null;
        }
        if (noteDir != null) {
          ret += " (" + noteDir.toVerticalDisplayString() + ")";
        }
        return ret;
      }
    }
View Full Code Here

  }

  @Override
  public <E> void setValue(Attribute<E> attr, E value) {
    if (attr == StdAttr.FACING) {
      Direction val = (Direction) value;
      facing = val;
      fireAttributeValueChanged(StdAttr.FACING, val);
      if (subcircInstance != null) subcircInstance.recomputeBounds();
    } else if (attr == StdAttr.LABEL) {
      String val = (String) value;
      label = val;
      fireAttributeValueChanged(StdAttr.LABEL, val);
    } else if (attr == StdAttr.LABEL_FONT) {
      Font val = (Font) value;
      labelFont = val;
      fireAttributeValueChanged(StdAttr.LABEL_FONT, val);
    } else if (attr == LABEL_LOCATION_ATTR) {
      Direction val = (Direction) value;
      labelLocation = val;
      fireAttributeValueChanged(LABEL_LOCATION_ATTR, val);
    } else {
      source.getStaticAttributes().setValue(attr, value);
      if (attr == NAME_ATTR) {
View Full Code Here

    }
    fireCircuitAppearanceChanged(CircuitAppearanceEvent.ALL_TYPES);
  }

  public void paintSubcircuit(Graphics g, Direction facing) {
    Direction defaultFacing = getFacing();
    double rotate = 0.0;
    if (facing != defaultFacing && g instanceof Graphics2D) {
      rotate = defaultFacing.toRadians() - facing.toRadians();
      ((Graphics2D) g).rotate(rotate);
    }
    Location offset = findAnchorLocation();
    g.translate(-offset.getX(), -offset.getY());
    for (CanvasObject shape : getObjectsFromBottom()) {
View Full Code Here

    }
  }
 
  public SortedMap<Location, Instance> getPortOffsets(Direction facing) {
    Location anchor = null;
    Direction defaultFacing = Direction.EAST;
    List<AppearancePort> ports = new ArrayList<AppearancePort>();
    for (CanvasObject shape : getObjectsFromBottom()) {
      if (shape instanceof AppearancePort) {
        ports.add((AppearancePort) shape);
      } else if (shape instanceof AppearanceAnchor) {
View Full Code Here

    }
  }

  @Override
  public Bounds getOffsetBounds(AttributeSet attrs) {
    Direction facing = attrs.getValue(StdAttr.FACING);
    Object selectLoc = attrs.getValue(Plexers.ATTR_SELECT_LOC);
    BitWidth select = attrs.getValue(Plexers.ATTR_SELECT);
    int outputs = 1 << select.getWidth();
    Bounds bds;
    boolean reversed = facing == Direction.WEST || facing == Direction.NORTH;
View Full Code Here

    return bds.rotate(Direction.EAST, facing, 0, 0);
  }
 
  @Override
  public boolean contains(Location loc, AttributeSet attrs) {
    Direction facing = attrs.getValue(StdAttr.FACING).reverse();
    return Plexers.contains(loc, getOffsetBounds(attrs), facing);
  }
View Full Code Here

TOP

Related Classes of com.cburch.logisim.data.Direction

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.