// Questo mi restituisce la lista dei lati che ho da analizzare per l intersezione
listEdges = listEdges2.toArray();
for (Object listEdge : listEdges) {
Object[] celle = null;
EdgeView edgeView = (EdgeView) (mediator.getGraph().getGraphLayoutCache()).getMapping(listEdge, false);
Rectangle2D rett = edgeView.getBounds();
// Questo metodo mi ritorna sia le porte che il lato e i vertici sorgenti, devo quindi
// per questione di pesantezza fare un controllo di istanze
celle = (mediator.getGraph()).getDescendants(mediator.getGraph().getRoots(rett.getBounds()));
// System.out.println("le celle che intersecano sono : "+celle.length);
ArrayList<Object> celle2 = new ArrayList<Object>();
JmtCell sourceOfEdge = (JmtCell) ((DefaultPort) ((JmtEdge) listEdge).getSource()).getParent();
JmtCell targetOfEdge = (JmtCell) ((DefaultPort) ((JmtEdge) listEdge).getTarget()).getParent();
for (int j = 0; j < celle.length; j++) {
if (celle[j] instanceof JmtCell && !(celle[j] == sourceOfEdge) && !(celle[j] == targetOfEdge)) {
celle2.add(celle[j]);
}
}
// System.out.println("le celle che intersecano modificate sono: "+ celle2.size());
Object[] cellsfinal = celle2.toArray();
int contatore = 0;
// System.out.println("Sono in JmtOverlapping grandezza delle celle che interseco: "+cellsfinal.length);
for (Object element : cellsfinal) {
Rectangle2D cellBound = GraphConstants.getBounds(((JmtCell) element).getAttributes());
EdgeView viewtmp = (EdgeView) (mediator.getGraph().getGraphLayoutCache()).getMapping(listEdge, false);
// Point2D[] intersectionPoints=(Point2D[]) ((JmtEdge)listEdges[i]).intersects2(viewtmp,cellBound);
if (((JmtEdge) listEdge).intersects(viewtmp, cellBound)) {
// ________________DATI APPARTENENTI AL VERTICE
double vertexMinX = (int) cellBound.getMinX();
double vertexMinY = (int) cellBound.getMinY();