Package de.hpi.eworld.model.db.data

Examples of de.hpi.eworld.model.db.data.EdgeModel


  /**
   * Finds all edges in a list that are affected by
   * a given ViewItem
   */
  private EdgeModel findAffectedEdges(WayView item, List<EdgeModel> edges) {
    EdgeModel edge = null;
    Point2D oldPoint = null;
    for (final EdgeModel e : edges) {
      final Point2D point = e.getToNode().getPosition().projected();
      if (oldPoint != null) {
        final Line2D line = new Line2D.Double(oldPoint, point);
View Full Code Here


  public void propagatePosition() {
    final EdgeLocationModel location = (EdgeLocationModel) getModelElement().getLocation();
    // search the edge at our position
    final Ellipse2D rect = new Ellipse2D.Double(getPosition().getX(), getPosition().getY(), 2*SOME_WEIRD_MAGIC_EPSILON, 2*SOME_WEIRD_MAGIC_EPSILON);
    final List<WayView> ways = GraphUtils.getWaysIn(graphController, rect);
    EdgeModel foundForwardEdge = null;
    EdgeModel foundBackwardEdge = null;
    EdgeModel chosenEdge = null;
   
    for (final WayView view : ways) {
      final List<EdgeModel> forwardEdges = ((WayView) view).getModelElement().getForwardEdges();
      foundForwardEdge = findAffectedEdges(view, forwardEdges);
       
      final List<EdgeModel> backwardEdges = ((WayView) view).getModelElement().getBackwardEdges();
      foundBackwardEdge = findAffectedEdges(view, backwardEdges);
    }
   
    chosenEdge = foundBackwardEdge;
    if (foundBackwardEdge == null) {
      if (foundForwardEdge == null){
        // no edge found, do nothing
        return
      }     
      chosenEdge = foundForwardEdge;
    }
   
    location.resetEdges();
    location.addEdge(chosenEdge);
    location.setDistance(GlobalPosition.from(getPosition()).distanceTo(chosenEdge.getFromNode().getPosition()));
    getModelElement().setLocation(location);
  }
View Full Code Here

      model.addModelElement(newNode);
    }
   
    for(Entry<String, MyEdge> edgePair : edges.entrySet()) {
      MyEdge e = edgePair.getValue();
      EdgeModel newEdge = new EdgeModel(edgePair.getKey(), eNodes.get(e.first), eNodes.get(e.second));
     
      for(int i=0; i<e.nolanes; i++) {
        newEdge.addLane(new LaneModel());
      }
     
      model.addModelElement(newEdge);
      if (eWays.keySet().contains(e.second + "|" + e.first)) {
        eWays.get(e.second+"|"+e.first).addBackwardEdge(newEdge);
        newEdge.setComplementaryEdge(eWays.get(e.second+"|"+e.first).getFirstForwardEdge());
        eWays.get(e.second+"|"+e.first).getFirstForwardEdge().setComplementaryEdge(newEdge);
        newEdge.setParentWay(eWays.get(e.second+"|"+e.first));
      } else {
        WayModel newWay = new WayModel("");
        newWay.addForwardEdge(newEdge);
        newEdge.setParentWay(newWay);
        eWays.put(e.first+"|"+e.second, newWay);
        model.addModelElement(newWay);
      }
    }
   
View Full Code Here

  /**
   * creates a EdgeLocation -> this seems to be a container which is used to manage the associated Edges of an EdgeModel
   */
  private EdgeLocationModel createEdgeLocation(WayView view, Point2D position) {
    // add Edge to the new Location
    EdgeModel edge = GraphUtils.getNearestEdgeOutOf(position, view.getEdges());

    if (edge == null) {
      return null;
    }
   
    GlobalPosition edgeStartGlobal = edge.getFromNode().getPosition();
    GlobalPosition edgeEndGlobal = edge.getToNode().getPosition();

    Point2D edgeStartLocal = edgeStartGlobal.projected();
    Point2D edgeEndLocal = edgeEndGlobal.projected();
   
    double globalLenght = edgeEndGlobal.distanceTo(edgeStartGlobal);
View Full Code Here

TOP

Related Classes of de.hpi.eworld.model.db.data.EdgeModel

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.