public int octreePosition(float centerX, float centerY, float centerZ, float size) { //float radius = obj.getRadius(); int index = 0; if (node.y() < centerY) { index += 4; } if (node.z() > centerZ) { index += 2; } if (node.x() < centerX) { index += 1; } return index; }
protected float cameraDistance(NodeModel object) { float[] cameraLocation = drawable.getCameraLocation(); double distance = Math.sqrt(Math.pow((double) object.getNode().x() - cameraLocation[0], 2d) + Math.pow((double) object.getNode().y() - cameraLocation[1], 2d) + Math.pow((double) object.getNode().z() - cameraLocation[2], 2d)); object.setCameraDistance((float) distance); return (float) distance; }
public boolean isInOctreeLeaf(Octant leaf) { // float radius = node.size() / 2f; if (Math.abs(node.x() - leaf.getPosX()) > (leaf.getSize() / 2) || Math.abs(node.y() - leaf.getPosY()) > (leaf.getSize() / 2) || Math.abs(node.z() - leaf.getPosZ()) > (leaf.getSize() / 2)) { return false; } return true; }
public void centerOnNode(Node node) { if (node != null) { VizController.getInstance().getGraphIO().centerOnCoordinate(node.x(), node.y(), node.z() + node.size() * 8); engine.getScheduler().requireUpdateVisible(); } }
private void copyNodeProperties(Node node, Node nodeCopy) { nodeCopy.setPosition(node.x(), node.y(), node.z()); nodeCopy.setColor(node.getColor()); nodeCopy.setFixed(node.isFixed()); nodeCopy.setLabel(node.getLabel()); nodeCopy.setSize(node.size()); }
@Override public void drawTextNode(NodeModel objectModel) { Node node = objectModel.getNode(); TextProperties textData = (TextProperties) node.getTextProperties(); if (textData != null) { String txt = textData.getText(); float width, height, posX, posY; if (txt == null || txt.isEmpty()) { return; } float sizeFactor = drawable.getGlobalScale() * textData.getSize() * model.sizeMode.getSizeFactor3d(model.nodeSizeFactor, objectModel); if (nodeRefresh || (objectModel.getTextWidth() == 0f && objectModel.getTextHeight() == 0f)) { Rectangle2D r = renderer.getBounds(txt); width = (float) (sizeFactor * r.getWidth()); height = (float) (sizeFactor * r.getHeight()); posX = node.x() + (float) width / -2f; posY = node.y() + (float) height / -2f; textData.setDimensions(width, height); } else { width = textData.getWidth(); height = textData.getHeight(); posX = node.x() + (float) width / -2f; posY = node.y() + (float) height / -2f; } model.colorMode.textNodeColor(this, objectModel); renderer.draw3D(txt, posX, posY, (float) node.z(), sizeFactor); } }
private void copyNodeProperties(Node node, Node nodeCopy) { nodeCopy.setPosition(node.x(), node.y(), node.z()); nodeCopy.setColor(node.getColor()); nodeCopy.setFixed(node.isFixed()); nodeCopy.setLabel(node.getLabel()); nodeCopy.setSize(node.size()); }
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); } }
@Override public Item[] getItems(Graph graph) { Item[] items = new NodeItem[graph.getNodeCount()]; int i = 0; for (Node n : graph.getNodes()) { NodeItem nodeItem = new NodeItem(n); nodeItem.setData(NodeItem.X, n.x()); nodeItem.setData(NodeItem.Y, -n.y()); nodeItem.setData(NodeItem.Z, n.z()); nodeItem.setData(NodeItem.SIZE, n.size() * 2f); nodeItem.setData(NodeItem.COLOR, n.getColor()); items[i++] = nodeItem; } return items; }
float x = node.x(); float y = node.y(); float z = node.z();
newNode.setZ(selectedNode.z());
private Node copyNode(Node node, Graph graph) { Node copy = buildNode(graph, node.getLabel()); //Copy properties (position, size and color): copy.setX(node.x()); copy.setY(node.y()); copy.setZ(node.z()); copy.setSize(node.size()); copy.setR(node.r()); copy.setG(node.g()); copy.setB(node.b()); copy.setAlpha(node.alpha()); Table nodeTable = graph.getModel().getNodeTable(); //Copy attributes: for (Column column : nodeTable) { if (!column.isReadOnly()) { copy.setAttribute(column, node.getAttribute(column)); } } graph.addNode(copy); return copy; }
gl.glPushMatrix(); float size = node.size() * 2; gl.glTranslatef(node.x(), node.y(), node.z()); gl.glScalef(size, size, 1f);