private void setHighlightEdgeTransformation(GeoObj edge) {
   if (edge != null) {
     edge.getGraphicsComponent().removeAllAnimations();
     edge.getGraphicsComponent()
         .addAnimation(new AnimationColorMorph(BLENDING_TIME, newPathHighlightColor()));
   }
 }
  @Override
  public boolean addFirstNodeToGraph(final GeoGraph targetGraph, GeoObj newNode) {
    newNode.setComp(getNodeMesh());
    newNode.setComp(newProxiSensor(targetGraph));

    setNormalTransformations(newNode.getGraphicsComponent());

    Log.d(LOG_TAG, "First node will be added now..");

    Log.d(
        LOG_TAG,
        "Adding obj "
            + newNode
            + " to graph with number of nodes="
            + targetGraph.getAllItems().myLength);

    Log.d(LOG_TAG, "Setting special props for first node.");
    setHighlightNodeTransformations(newNode.getGraphicsComponent());

    return targetGraph.add(newNode);
  }
  @Override
  public void addEdgeToGraph(GeoGraph targetGraph, GeoObj startPoint, GeoObj endPoint) {

    // add an edge:
    if (startPoint != null) {
      MeshComponent edgeMesh = getEdgeMesh(targetGraph, startPoint, endPoint);
      if (edgeMesh != null) {
        Log.d(LOG_TAG, "Adding edge from " + startPoint + " to " + endPoint);
        GeoObj edge = targetGraph.addEdge(startPoint, endPoint, edgeMesh);
        edge.getGraphicsComponent().setColor(newNotJetWalkedColor());
      }
    }
  }
  private void setToNextWayPoint(GeoGraph graph, GeoObj justCheckedNode) {

    EfficientList<GeoObj> followers = graph.getFollowingNodesOf(justCheckedNode);
    if (followers != null) {
      for (int i = 0; i < followers.myLength; i++) {
        GeoObj followingNode = followers.get(i);
        followingNode.setComp(newProxiSensor(graph));
        setHighlightNodeTransformations(followingNode.getGraphicsComponent());
        setHighlightEdgeTransformation(graph.getEdge(justCheckedNode, followingNode));
      }
    } else {
      Log.d(LOG_TAG, justCheckedNode + " has no following nodes");
    }
  }
  @Override
  public boolean addNodeToGraph(final GeoGraph targetGraph, GeoObj newNode) {
    newNode.setComp(getNodeMesh());

    /*
     * its a geoObj so the diamond will automatically surrounded by a
     * mesh-group. change the color of this group:
     */
    setNormalTransformations(newNode.getGraphicsComponent());

    Log.d(
        LOG_TAG,
        "Adding obj "
            + newNode
            + " to graph with number of nodes="
            + targetGraph.getAllItems().myLength);

    return targetGraph.add(newNode);
  }