Package com.evelopers.unimod.glayout.graph

Examples of com.evelopers.unimod.glayout.graph.SimpleVertex


    SimpleGraph sg = new SimpleGraph();   
    HashMap <mxCell, SimpleVertex> vertexes = new HashMap<mxCell, SimpleVertex>();
    for (Object obj : graph.getChildVertices(parent)) {
      if (obj instanceof mxCell) {
        mxCell cell = (mxCell) obj;
        SimpleVertex sv = new SimpleVertex();
        int width = (int) Math.round(cell.getGeometry().getWidth());
        int height = (int) Math.round(cell.getGeometry().getHeight());
        VertexExt ve = new VertexExt(cell.getGeometry().getPoint(), width, height);
        sv.setVertexext(ve);
        sv.setProperty("id", cell.getId());
        sg.addVertex(sv);
        vertexes.put(cell, sv);
      }
    }
    for (Object obj : graph.getChildEdges(parent)) {
      if (obj instanceof mxCell) {
        mxCell cell = (mxCell) obj;
        SimpleEdge se = new SimpleEdge(vertexes.get(cell.getSource()), vertexes.get(cell.getTarget()));
        se.setProperty("id", cell.getId());
        sg.addEdge(se);
      }
    }
    MultiLayerLayouter.layout(sg);
   
        mxCell someCell = ((mxCell)vertexes.keySet().toArray()[0]);
        double xscale = someCell.getGeometry().getWidth() / (vertexes.get(someCell).getVertexext().getWidth() - .5);
        double yscale = someCell.getGeometry().getHeight() / (vertexes.get(someCell).getVertexext().getHeight() - .5);
    for (Object obj : sg.getVertices()) {
      if (obj instanceof SimpleVertex) {
        SimpleVertex sv = (SimpleVertex) obj;
       
        for (mxCell vertex: vertexes.keySet()) {
          if (vertex.getId().equals(sv.getProperty("id"))) {
            VertexExt ve =  sv.getVertexext();
            mxGeometry vertexGeometry = vertex.getGeometry();
            super.setVertexLocation(vertex, ve.getLeftTop().getX()*xscale, ve.getLeftTop().getY()*yscale);
          }
        }
               
 
View Full Code Here


            y = Double.MAX_VALUE;
        } else {
            y = Double.MIN_VALUE;
        }

        SimpleVertex res = new SimpleVertex();
        res.setOrthX(x);
        res.setOrthY(y);

//        SimpleEdge eres = null;
        ListIterator li = sg.getEdges()
                            .listIterator();
View Full Code Here

        Face resRight = new Face(f.getGraph());
        GraphHelper.instanceCopy(f, resRight);

        int route = f.getVertices()
                     .size() / 2;
        SimpleVertex prev = null;
        SimpleVertex curr = (SimpleVertex) f.getVertices()
                                            .get(0);
        gd.setSource(curr);
        resLeft.addVertex(curr);

        while (route > 0) {
            ListIterator li = curr.getEdges()
                                  .listIterator();

            while (li.hasNext()) {
                SimpleEdge element = (SimpleEdge) li.next();
View Full Code Here

        // right face is small
        Face[] outerfaces = new Face[2];
        outerfaces[0]     = (Face) outer.instanceCopy();
        outerfaces[1]     = new Face(outer.getGraph());

        SimpleVertex src  = (SimpleVertex) outer.getVertices()
                                                .get(0);
        for1              = (SimpleEdge) src.getEdgesRelative(outer)
                                            .get(0);

        SimpleVertex dst  = for1.getAnother(src);
        outerfaces[0].removeEdge(for1);
        outerfaces[1].addEdge(for1);
        outerfaces[1].addVertex(src);
        outerfaces[1].addVertex(dst);
View Full Code Here

        // pre-iterate vertices
        ListIterator liv = sg.getVertices()
                             .listIterator();

        while (liv.hasNext()) {
            SimpleVertex element = (SimpleVertex) liv.next();

            // adding 0.5 to compensate
            element.setVisY(element.getTopnum() + 0.5);
            element.setVisXL(Double.MAX_VALUE);
            element.setVisXR(Double.MIN_VALUE);
        }

        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;

            while (liv.hasNext()) {
                SimpleVertex vertex = (SimpleVertex) liv.next();

                if (lvalue < vertex.getVisXL()) {
                    vertex.setVisXL(lvalue);
                }

                if (rvalue > vertex.getVisXR()) {
                    vertex.setVisXR(rvalue);
                }
            }
        }
    }
View Full Code Here

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

            if (edge.getProperty(DEFFEREDFRONT_KEY) != null) {
                SimpleVertex v     = (SimpleVertex) edge.getProperty(DEFFEREDFRONT_KEY);
                SimpleEdge front   = (SimpleEdge) v.getProperty(DEFFEREDFRONT_KEY);
                SimpleEdge[] added = (SimpleEdge[]) addededges.toArray(new SimpleEdge[0]);
                SimpleEdge split   = splitByVertex(v, front, added);
                SimpleEdge e1      = new SimpleEdge(split.getSource(),
                                                    v);
                e1.setProperty(FICTIVEFACE_KEY, FICTIVE_VALUE);
View Full Code Here

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

            if (((Integer) iTurn.get(edge)).intValue() == -1) {
                SimpleEdge front    = (SimpleEdge) eFront.get(edge);
                SimpleVertex corner = (SimpleVertex) vCorner.get(edge);
                double nx;
                double ny;

                if (front.isHorizontal()) {
                    nx     = corner.getOrthX();
                    ny     = front.getSource()
                                  .getOrthY();
                } else {
                    nx     = front.getSource()
                                  .getOrthX();
                    ny = corner.getOrthY();
                }

                SimpleVertex project = new SimpleVertex();
                project.setOrthX(nx);
                project.setOrthY(ny);

                if (front.getProperty(FICTIVEFACE_KEY) == null) {
                    project.setProperty(FICTIVEFACE_KEY, front);
                } else {
                    project.setProperty(FICTIVEFACE_KEY,
                                        front.getProperty(FICTIVEFACE_KEY));
                }

                boolean newvertex;

                if (CompactionHelper.equalsOrth(project,
                                                    front.getSource())) {
                    project       = front.getSource();
                    newvertex     = false;
                } else if (CompactionHelper.equalsOrth(
                                                           project,
                                                               front.getTarget())) {
                    project       = front.getTarget();
                    newvertex     = false;
                } else {
                    newvertex = true;
                }

                if (newvertex) {
                    // added a new vertex
                    if (edge.getProperty(DEFFEREDFRONT_KEY) == null) {
                        sg.addVertex(project);
                        sg.removeEdge(front);

                        SimpleEdge extend = new SimpleEdge(corner, project);
                        extend.setProperty(FICTIVEFACE_KEY, FICTIVE_VALUE);
                        sg.addEdge(extend);
                        addededges.add(extend);

                        SimpleEdge e1 = new SimpleEdge(front.getSource(),
                                                       project);
                        e1.setProperty(FICTIVEFACE_KEY, front);
                        sg.addEdge(e1);

                        SimpleEdge e2 = new SimpleEdge(project,
                                                       front.getTarget());
                        e2.setProperty(FICTIVEFACE_KEY, front);
                        sg.addEdge(e2);
                        refineFronts(front, e1, e2);
                    } else {
                        // no need to remove front
                        sg.addVertex(project);

                        SimpleEdge extend = new SimpleEdge(corner, project);
                        extend.setProperty(FICTIVEFACE_KEY, FICTIVE_VALUE);
                        sg.addEdge(extend);
                        addededges.add(extend);

                        project.setProperty(DEFFEREDFRONT_KEY, front);
                        edge.setProperty(DEFFEREDFRONT_KEY, project);
                    }

                    // evertyng added is not in face (this is no error)
                    // cause we do not use faces in compaction algorithm                   
View Full Code Here

                                             .toArray(new SimpleEdge[0]);
        SimpleEdge prev = edges[edges.length - 1];

        for (int i = 0; i < edges.length; i++) {
            SimpleEdge curr     = edges[i];
            SimpleVertex corner = CompactionHelper.getIntersection(prev, curr);
            SimpleEdge next     = getAnotherEdge(corner, curr);
            int turn            = computeTurn(corner, curr, next);
            eNext.put(curr, next);
            vCorner.put(curr, corner);
            iTurn.put(curr,
View Full Code Here

    /*
     * ac must be chain source -> target. Anyway.
     */
    protected void orientOnChain(GContainer ac, SimpleVertex source, SimpleVertex target,
                                 Object tocheck, Object key) {
        SimpleVertex curr = source;

        // another edge
        SimpleEdge curre = null;

        while (curr != target) {
            // curr is changing
            List edges      = curr.getEdgesRelative(ac);
            ListIterator li = edges.listIterator();

            while (li.hasNext()) {
                SimpleEdge element = (SimpleEdge) li.next();

View Full Code Here

        ListIterator li = sg.getVertices()
                            .listIterator();

        while (li.hasNext()) {
            SimpleVertex element = (SimpleVertex) li.next();
            element.setVisY(element.getTopnum());
            element.setVisXL(asd.getCorrespondingVertex(element.getLeft()).getTopnum());
            element.setVisXR(asd.getCorrespondingVertex(element.getRight()).getTopnum()
                             - 1);
        }

        ListIterator li2 = sg.getEdges()
                             .listIterator();

        while (li2.hasNext()) {
            SimpleEdge element = (SimpleEdge) li2.next();
            element.setVisX(asd.getCorrespondingVertex(element.getLeft()).getTopnum());
            element.setVisYB(element.getOrig().getTopnum());
            element.setVisYT(element.getDest().getTopnum());
        }
    }
View Full Code Here

TOP

Related Classes of com.evelopers.unimod.glayout.graph.SimpleVertex

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.