Package com.evelopers.unimod.glayout.graph.containers

Examples of com.evelopers.unimod.glayout.graph.containers.Path


        }

        ListIterator lip = paths.listIterator();

        while (lip.hasNext()) {
            Path path       = (Path) lip.next();
            SimpleVertex sv = new SimpleVertex();
            associated.addVertex(sv);
            path.setProperty(this, sv);
        }

        lip = paths.listIterator();

        while (lip.hasNext()) {
            Path path        = (Path) lip.next();
            ListIterator lic = path.getEdges()
                                   .listIterator();
            List lfaces = new ArrayList();
            List rfaces = new ArrayList();

            while (lic.hasNext()) {
                SimpleEdge edge = (SimpleEdge) lic.next();

                if (lfaces.indexOf(edge.getLeft()) == -1) {
                    lfaces.add(edge.getLeft());
                }

                if (rfaces.indexOf(edge.getRight()) == -1) {
                    rfaces.add(edge.getRight());
                }
            }

            Iterator itl = lfaces.iterator();

            while (itl.hasNext()) {
                Face lface       = (Face) itl.next();
                SimpleVertex src = lface.getVertexProperty(this);
                SimpleVertex dst = path.getVertexProperty(this);
                SimpleEdge se    = new SimpleEdge(src, dst);
                associated.addEdge(se);
            }

            Iterator itr = rfaces.iterator();

            while (itr.hasNext()) {
                Face rface       = (Face) itr.next();
                SimpleVertex src = path.getVertexProperty(this);
                SimpleVertex dst = rface.getVertexProperty(this);
                SimpleEdge se    = new SimpleEdge(src, dst);
                associated.addEdge(se);
            }
        }
View Full Code Here


        List tpaths = buildSimplePaths();
        List paths  = new ArrayList();
        Path[] arr  = (Path[]) tpaths.toArray(new Path[0]);

        for (int i = 0; i < arr.length; i++) {
            Path path1 = arr[i];

            for (int j = 0; j < arr.length; j++) {
                Path path2 = arr[j];

                if (!path1.equals(path2)) {
                    if (PathHelper.haveCommonEdges(path1, path2)) {
                        SimpleVertex self =
                            path2.getVertexProperty(VisibilityFactory.PATH_KEY);
                        self.setProperty(VisibilityFactory.PATH_KEY, path1);
                        PathHelper.unifyPaths(path1, path2);
                        arr[j] = path1;
                    }
                }
            }
        }

        for (int i = 0; i < arr.length; i++) {
            Path path = arr[i];

            if (paths.indexOf(path) == -1) {
                paths.add(path);
            }
        }

        ListIterator lip = paths.listIterator();

        while (lip.hasNext()) {
            Path path        = (Path) lip.next();
            ListIterator lie = path.getEdges()
                                   .listIterator();

            while (lie.hasNext()) {
                SimpleEdge edge = (SimpleEdge) lie.next();
                edge.setProperty(this, this);
            }
        }

        // adds one-edge paths
        ListIterator lie = sg.getEdges()
                             .listIterator();

        while (lie.hasNext()) {
            SimpleEdge edge = (SimpleEdge) lie.next();

            if (edge.getProperty(this) == null) {
                Path p = new Path(sg);
                p.addVertex(edge.getSource());
                p.addVertex(edge.getTarget());
                p.addEdge(edge);
                paths.add(p);
            }
        }

        sg.removePropertyAsc(this);
View Full Code Here

                    e2 = GraphHelper.getInstance()
                                    .getMedianEdge13(element,
                                                     element.getEdgesOutgoing());
                }

                Path p = new Path(sg);
                p.addVertex(element);
                p.addVertex(e1.getAnother(element));
                p.addVertex(e2.getAnother(element));
                p.addEdge(e1);
                p.addEdge(e2);
                element.setProperty(VisibilityFactory.PATH_KEY, p);

                // property to be removed
                p.setProperty(VisibilityFactory.PATH_KEY, element);
                tpaths.add(p);
            }
        }

        return tpaths;
View Full Code Here

        }

        ListIterator lip = paths.listIterator();

        while (lip.hasNext()) {
            Path path        = (Path) lip.next();
            ListIterator lie = path.getEdges()
                                   .listIterator();
            double tn = asd.getCorrespondingVertex(path)
                           .getTopnum();

            while (lie.hasNext()) {
                SimpleEdge edge = (SimpleEdge) lie.next();
                edge.setVisX(tn);

                // adding 0.5 to compensate
                edge.setVisYB(edge.getOrig().getTopnum() + 0.5);
                edge.setVisYT(edge.getDest().getTopnum() + 0.5);
            }

            liv = path.getVertices()
                      .listIterator();

            double lvalue = tn;
            double rvalue = tn;
View Full Code Here

            SimpleVertex vertex = (SimpleVertex) liv.next();

            if ((!vertex.equals(gd.getSource())) && (!vertex.equals(gd.getTarget()))) {
                vertex.setOrthY(vertex.getVisY());

                Path path       = (Path) vertex.getProperty(VisibilityFactory.PATH_KEY);
                SimpleEdge edge = (SimpleEdge) path.getEdges()
                                                   .get(0);
                vertex.setOrthX(edge.getVisX());
            }
        }
View Full Code Here

                nodesInStOrder.addLast(sv);

                break;
            }

            Path p = pathFind(sv);

            if (p.getEdges()
                     .size() == 0) {
                sv.setProperty(STNUM_KEY,
                               new Integer(i));
                nodesInStOrder.addLast(sv);
                i++;
            } else {
                ListIterator lie = p.getEdges()
                                    .listIterator();
                LinkedList templl = new LinkedList();

                while (lie.hasNext()) {
                    templl.addLast(sv);
View Full Code Here

        return nodesInStOrder;
    }

    private Path pathFind(SimpleVertex sv) {
        // Shimon Even - Graph Algorithms - p 181
        Path path            = new Path(sg);
        List lEdges;
        List lEdges2;
        SimpleEdge anEdge;
        SimpleEdge tempEdge;
        SimpleVertex aVertex;

        // case 1
        lEdges = sv.getEdgesRelative(sg);

        ListIterator lie = lEdges.listIterator();

        while (lie.hasNext()) {
            anEdge = (SimpleEdge) lie.next();

            if (!anEdge.getBooleanProperty(ISOLD_KEY)
                    && anEdge.getBooleanProperty(ISBACKEDGE_KEY)
                    && ((anEdge.getAnother(sv)).getIntProperty(DFSNUM_KEY) < sv
                                                                                 .getIntProperty(DFSNUM_KEY))) {
                anEdge.setProperty(ISOLD_KEY, Boolean.TRUE);
                path.addEdge(anEdge);

                return path;
            }
        }

        // case 2
        lEdges     = sv.getEdgesRelative(sg);
        lie        = lEdges.listIterator();

        while (lie.hasNext()) {
            anEdge = (SimpleEdge) lie.next();

            if (!anEdge.getBooleanProperty(ISOLD_KEY)
                    && !anEdge.getBooleanProperty(ISBACKEDGE_KEY)
                    && (anEdge.getAnother(sv)
                                  .getVertexProperty(PARENT_KEY) == sv)
                    && (anEdge.getAnother(sv)
                                  .getIntProperty(DFSNUM_KEY) > sv.getIntProperty(DFSNUM_KEY))) {
                anEdge.setProperty(ISOLD_KEY, Boolean.TRUE);
                path.addEdge(anEdge);
                aVertex = anEdge.getAnother(sv);

                boolean found;

                while (!aVertex.getBooleanProperty(ISOLD_KEY)) {
                    lEdges2     = aVertex.getEdgesRelative(sg);
                    found       = false;

                    ListIterator lie2 = lEdges2.listIterator();

                    while (lie2.hasNext()) {
                        tempEdge = (SimpleEdge) lie2.next();

                        if (!tempEdge.getBooleanProperty(ISOLD_KEY)
                                && ((tempEdge.getAnother(aVertex)).getIntProperty(DFSNUM_KEY) == aVertex
                                                                                                     .getIntProperty(LOWNUM_KEY))) {
                            aVertex.setProperty(ISOLD_KEY, Boolean.TRUE);
                            tempEdge.setProperty(ISOLD_KEY, Boolean.TRUE);
                            path.addEdge(tempEdge);
                            found = true;

                            break;
                        }
                    }

                    if (!found) {
                        lEdges2     = aVertex.getEdgesRelative(sg);
                        lie2        = lEdges2.listIterator();

                        while (lie2.hasNext()) {
                            tempEdge = (SimpleEdge) lie2.next();

                            if (!tempEdge.getBooleanProperty(ISOLD_KEY)
                                    && (tempEdge.getAnother(aVertex)
                                                    .getVertexProperty(PARENT_KEY) == aVertex)
                                    && (tempEdge.getAnother(aVertex)
                                                    .getIntProperty(LOWNUM_KEY) == aVertex
                                                                                       .getIntProperty(LOWNUM_KEY))) {
                                aVertex.setProperty(ISOLD_KEY, Boolean.TRUE);
                                tempEdge.setProperty(ISOLD_KEY, Boolean.TRUE);
                                path.addEdge(tempEdge);
                                aVertex = tempEdge.getAnother(aVertex);

                                break;
                            }
                        }
                    }
                }

                return path;
            }
        }

        // case 3
        lEdges     = sv.getEdgesRelative(sg);
        lie        = lEdges.listIterator();

        while (lie.hasNext()) {
            anEdge = (SimpleEdge) lie.next();

            if (!anEdge.getBooleanProperty(ISOLD_KEY)
                    && anEdge.getBooleanProperty(ISBACKEDGE_KEY)
                    && (anEdge.getAnother(sv)
                                  .getIntProperty(DFSNUM_KEY) > sv.getIntProperty(DFSNUM_KEY))) {
                anEdge.setProperty(ISOLD_KEY, Boolean.TRUE);
                path.addEdge(anEdge);
                aVertex = anEdge.getAnother(sv);

                while (!aVertex.getBooleanProperty(ISOLD_KEY)) {
                    lEdges2 = aVertex.getEdgesRelative(sg);

                    ListIterator lie2 = lEdges2.listIterator();

                    while (lie2.hasNext()) {
                        tempEdge = (SimpleEdge) lie2.next();

                        if (!tempEdge.getBooleanProperty(ISOLD_KEY)
                                && ((tempEdge.getAnother(aVertex)) == aVertex
                                                                          .getVertexProperty(PARENT_KEY))) {
                            aVertex.setProperty(ISOLD_KEY, Boolean.TRUE);
                            tempEdge.setProperty(ISOLD_KEY, Boolean.TRUE);
                            path.addEdge(tempEdge);
                            aVertex = tempEdge.getAnother(aVertex);

                            break;
                        }
                    }
View Full Code Here

TOP

Related Classes of com.evelopers.unimod.glayout.graph.containers.Path

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.