private void clampPosition(NodeModel nodeModel) { // Clamp Hack to avoid nodes to be outside octree float quantum = size / 2; Node node = nodeModel.getNode(); float x = node.x(); float y = node.y(); float z = node.z(); if (x > root.posX + quantum) { node.setX(root.posX + quantum); } else if (x < root.posX - quantum) { node.setX(root.posX - quantum); } if (y > root.posY + quantum) { node.setY(root.posY + quantum); } else if (y < root.posY - quantum) { node.setY(root.posY - quantum); } if (z > root.posZ + quantum) { node.setZ(root.posZ + quantum); } else if (z < root.posZ - quantum) { node.setZ(root.posZ - quantum); } }
public Graph retrieveGraph(GraphModel graphModel, boolean isFilterGraph) { Graph graph = graphModel.getGraph(); graph.clear(); Map<Integer, JsonObject> nMap; Map<Integer, JsonObject> eMap; if (!isFilterGraph) { nMap = nodesMap; eMap = edgesMap; } else { nMap = nodesMapFilter; eMap = edgesMapFilter; } for (Entry<Integer, JsonObject> enSet : nMap.entrySet()) { Map<String, Object> map = enSet.getValue().getMap(); Node node = graphModel.factory().newNode(enSet.getValue().getValue("id")); for (Entry<String, Object> attSet : map.entrySet()) { if (!attSet.getKey().equalsIgnoreCase("id") && !attSet.getKey().equalsIgnoreCase("x") && !attSet.getKey().equalsIgnoreCase("y") && !attSet.getKey().equalsIgnoreCase("cR") && !attSet.getKey().equalsIgnoreCase("size") && !attSet.getKey().equalsIgnoreCase("cG") && !attSet.getKey().equalsIgnoreCase("cB")) { node.setAttribute(attSet.getKey(), attSet.getValue()); } if (attSet.getKey().equalsIgnoreCase("x")) { node.setX((float) attSet.getValue()); } if (attSet.getKey().equalsIgnoreCase("y")) { node.setY((float) attSet.getValue()); } } node.setSize((float) Double.parseDouble(map.get("size").toString())); node.setColor( new Color( (float) Double.parseDouble(map.get("cR").toString()), (float) Double.parseDouble(map.get("cG").toString()), (float) Double.parseDouble(map.get("cB").toString()))); graph.addNode(node); } for (Entry<Integer, JsonObject> enSet : eMap.entrySet()) { Map<String, Object> map = enSet.getValue().getMap(); Edge edge = graphModel .factory() .newEdge( map.get("id"), graph.getNode(map.get("source")), graph.getNode(map.get("target")), 1, Double.parseDouble(map.get("weight").toString()), true); for (Entry<String, Object> attSet : map.entrySet()) { if (!attSet.getKey().equalsIgnoreCase("id") && !attSet.getKey().equalsIgnoreCase("source") && !attSet.getKey().equalsIgnoreCase("target") && !attSet.getKey().equalsIgnoreCase("size") && !attSet.getKey().equalsIgnoreCase("cR") && !attSet.getKey().equalsIgnoreCase("cG") && !attSet.getKey().equalsIgnoreCase("cB")) { edge.setAttribute(attSet.getKey(), attSet.getValue()); } } edge.setWeight(Double.parseDouble(map.get("size").toString())); edge.setColor( new Color( (float) Double.parseDouble(map.get("cR").toString()), (float) Double.parseDouble(map.get("cG").toString()), (float) Double.parseDouble(map.get("cB").toString()))); graph.addEdge(edge); } return graph; }