public void calcAverageBondLength() { double total = 0; for (int i = 0; i < molecule.countBonds(); i++) { Bond bond = molecule.getBond(i); total += GeometryTools.calcDistance( new Point2D(bond.getSource().getX(), bond.getSource().getY()), new Point2D(bond.getTarget().getX(), bond.getTarget().getY())); } renderer.getRendererModel().setDefaultBondLength(total / molecule.countBonds()); }
public Atom getClosestAtom(Point2D graphCord) { Atom closestAtom = null; double closestDistance = Double.MAX_VALUE; for (int i = 0; i < molecule.countAtoms(); i++) { Atom currentAtom = molecule.getAtom(i); Point2D currentPointGraph = realCordToGraphCord(new Point2D(currentAtom.getX(), currentAtom.getY())); double distance = GeometryTools.calcDistance(graphCord, currentPointGraph); if (distance <= renderer.getRendererModel().getAtomRadius() && distance < closestDistance) { closestAtom = currentAtom; closestDistance = distance; } } return closestAtom; }
public Bond getClosestBond(Point2D graphCord) { Bond closestBond = null; double closestDistance = Double.MAX_VALUE; for (int i = 0; i < molecule.countBonds(); i++) { Bond currentBond = molecule.getBond(i); Point2D currentCenterGraph = realCordToGraphCord( new Point2D( (currentBond.getSource().getX() + currentBond.getTarget().getX()) / 2, (currentBond.getSource().getY() + currentBond.getTarget().getY()) / 2)); double distance = GeometryTools.calcDistance(graphCord, currentCenterGraph); if (distance <= renderer.getRendererModel().getAtomRadius() && distance < closestDistance) { closestBond = currentBond; closestDistance = distance; } } return closestBond; }
public void zoomInOut(double factor) { renderer.getRendererModel().setZoomFactor(renderer.getRendererModel().getZoomFactor() * factor); renderer.paintNewMolecule(molecule); }