Package org.contikios.cooja.interfaces

Examples of org.contikios.cooja.interfaces.Position


  private void zoomToFactor(double newZoom) {
    zoomToFactor(newZoom, new Point(canvas.getWidth() / 2, canvas.getHeight() / 2));
  }

  private void zoomToFactor(double newZoom, Point zoomCenter) {
    Position center = transformPixelToPosition(zoomCenter);
    viewportTransform.setToScale(
            newZoom,
            newZoom
    );
    Position newCenter = transformPixelToPosition(zoomCenter);
    viewportTransform.translate(
            newCenter.getXCoordinate() - center.getXCoordinate(),
            newCenter.getYCoordinate() - center.getYCoordinate()
    );
    repaint();
  }
View Full Code Here


   * @return All motes in range
   */
  public Mote[] findMotesInRange(int startX, int startY, int width, int height) {
    List<Mote> motes = new LinkedList<>();
    for (Mote m : simulation.getMotes()) {
      Position pos = m.getInterfaces().getPosition();
      int moteX = transformToPixelX(pos.getXCoordinate());
      int moteY = transformToPixelY(pos.getYCoordinate());
      if (moteX > startX && moteX < startX + width
              && moteY > startY && moteY < startY + height) {
        motes.add(m);
      }
    }
View Full Code Here

            - transformToPositionX(0);
    double paintedMoteHeight = transformToPositionY(MOTE_RADIUS)
            - transformToPositionY(0);

    for (int i = 0; i < simulation.getMotesCount(); i++) {
      Position pos = simulation.getMote(i).getInterfaces().getPosition();

      // Transform to unit circle before checking if mouse hit this mote
      double distanceX = Math.abs(xCoord - pos.getXCoordinate())
              / paintedMoteWidth;
      double distanceY = Math.abs(yCoord - pos.getYCoordinate())
              / paintedMoteHeight;

      if (distanceX * distanceX + distanceY * distanceY <= 1) {
        motes.add(simulation.getMote(i));
      }
View Full Code Here

    /* Paint mote relations */
    if (showMoteToMoteRelations) {
      MoteRelation[] relations = simulation.getCooja().getMoteRelations();
      for (MoteRelation r : relations) {
        Position sourcePos = r.source.getInterfaces().getPosition();
        Position destPos = r.dest.getInterfaces().getPosition();

        Point sourcePoint = transformPositionToPixel(sourcePos);
        Point destPoint = transformPositionToPixel(destPos);

        g.setColor(r.color == null ? Color.black : r.color);
        drawArrow(g, sourcePoint.x, sourcePoint.y, destPoint.x, destPoint.y, MOTE_RADIUS + 1);
      }
    }

    for (Mote mote : allMotes) {

      /* Use the first skin's non-null mote colors */
      Color moteColors[] = null;
      for (VisualizerSkin skin : currentSkins) {
        moteColors = skin.getColorOf(mote);
        if (moteColors != null) {
          break;
        }
      }
      if (moteColors == null) {
        moteColors = DEFAULT_MOTE_COLORS;
      }

      Position motePos = mote.getInterfaces().getPosition();

      Point pixelCoord = transformPositionToPixel(motePos);
      int x = pixelCoord.x;
      int y = pixelCoord.y;

View Full Code Here

    final double BORDER_SCALE_FACTOR = 1.1;
    double smallX, bigX, smallY, bigY, scaleX, scaleY;

    /* Init values */
    {
      Position pos = motes[0].getInterfaces().getPosition();
      smallX = bigX = pos.getXCoordinate();
      smallY = bigY = pos.getYCoordinate();
    }

    /* Extremes */
    for (Mote mote : motes) {
      Position pos = mote.getInterfaces().getPosition();
      smallX = Math.min(smallX, pos.getXCoordinate());
      bigX = Math.max(bigX, pos.getXCoordinate());
      smallY = Math.min(smallY, pos.getYCoordinate());
      bigY = Math.max(bigY, pos.getYCoordinate());
    }

    /* Scale viewport */
    if (smallX == bigX) {
      scaleX = 1;
    }
    else {
      scaleX = (bigX - smallX) / (canvas.getWidth());
    }
    if (smallY == bigY) {
      scaleY = 1;
    }
    else {
      scaleY = (bigY - smallY) / (canvas.getHeight());
    }

    viewportTransform.setToIdentity();
    double newZoom = (1.0 / (BORDER_SCALE_FACTOR * Math.max(scaleX, scaleY)));
    viewportTransform.setToScale(
            newZoom,
            newZoom
    );

    /* Center visible motes */
    final double smallXfinal = smallX, bigXfinal = bigX, smallYfinal = smallY, bigYfinal = bigY;
    SwingUtilities.invokeLater(new Runnable() {
      @Override
      public void run() {
        Position viewMid
                = transformPixelToPosition(canvas.getWidth() / 2, canvas.getHeight() / 2);
        double motesMidX = (smallXfinal + bigXfinal) / 2.0;
        double motesMidY = (smallYfinal + bigYfinal) / 2.0;

        viewportTransform.translate(
                viewMid.getXCoordinate() - motesMidX,
                viewMid.getYCoordinate() - motesMidY);
        canvas.repaint();
      }
    });
  }
View Full Code Here

  public Position transformPixelToPosition(Point pixelPos) {
    return transformPixelToPosition(pixelPos.x, pixelPos.y);
  }

  public Position transformPixelToPosition(int x, int y) {
    Position position = new Position(null);
    position.setCoordinates(
            transformToPositionX(x),
            transformToPositionY(y),
            0.0
    );
    return position;
View Full Code Here

      gui.deleteMoteRelationsObserver(moteRelationsObserver);
    }

    simulation.getEventCentral().removeMoteCountListener(newMotesListener);
    for (Mote mote : simulation.getMotes()) {
      Position pos = mote.getInterfaces().getPosition();
      if (pos != null) {
        pos.deleteObserver(posObserver);
      }
    }
  }
View Full Code Here

  }

  public void paintBeforeMotes(Graphics g) {

    /* Background grid every 10 meters */
    Position upperLeft =
      visualizer.transformPixelToPosition(-10, -10);
    upperLeft.setCoordinates(
        ((int)(upperLeft.getXCoordinate()/10))*10,
        ((int)(upperLeft.getYCoordinate()/10))*10,
        0);
    Position lowerRight =
      visualizer.transformPixelToPosition(visualizer.getWidth(), visualizer.getHeight());
    lowerRight.setCoordinates(
        ((int)(lowerRight.getXCoordinate()/10))*10,
        ((int)(lowerRight.getYCoordinate()/10))*10,
        0);

    if ((lowerRight.getXCoordinate() - upperLeft.getXCoordinate())/10.0 < 200 &&
        (lowerRight.getYCoordinate() - upperLeft.getYCoordinate())/10.0 < 200) {
      /* X axis */
      for (double x = upperLeft.getXCoordinate(); x <= lowerRight.getXCoordinate(); x += 10.0) {
        int pixel = visualizer.transformPositionToPixel(x, 0, 0).x;
        if (x % 100 == 0) {
          g.setColor(Color.GRAY);
        } else {
          g.setColor(Color.LIGHT_GRAY);
        }
        g.drawLine(
            pixel,
            0,
            pixel,
            visualizer.getHeight()
        );
      }
      /* Y axis */
      for (double y = upperLeft.getYCoordinate(); y <= lowerRight.getYCoordinate(); y += 10.0) {
        int pixel = visualizer.transformPositionToPixel(0, y, 0).y;
        if (y % 100 == 0) {
          g.setColor(Color.GRAY);
        } else {
          g.setColor(Color.LIGHT_GRAY);
View Full Code Here

    g.setColor(Color.BLACK);
   
    /* Paint ID inside each mote */
    Mote[] allMotes = simulation.getMotes();
    for (Mote mote: allMotes) {
      Position pos = mote.getInterfaces().getPosition();
      Point pixel = visualizer.transformPositionToPixel(pos);

      String msg = "" + mote.getID();
      int msgWidth = fm.stringWidth(msg);
      g.drawString(msg, pixel.x - msgWidth/2, pixel.y + 5);
View Full Code Here

      float colorHistoryIndex = (float)connArrow.getAge() / (float)connArrow.getMaxAge();
      g.setColor(new Color(colorHistoryIndex, colorHistoryIndex, 1.0f));
      Radio source = connArrow.getConnection().getSource();
      Point sourcePoint = visualizer.transformPositionToPixel(source.getPosition());
      for (Radio destRadio : connArrow.getConnection().getDestinations()) {
        Position destPos = destRadio.getPosition();
        Point destPoint = visualizer.transformPositionToPixel(destPos);
        drawArrow(g, sourcePoint.x, sourcePoint.y, destPoint.x, destPoint.y, 8);
      }
    }
  }
View Full Code Here

TOP

Related Classes of org.contikios.cooja.interfaces.Position

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.