/** * Generated coordinates for a given ring. Multiplexes to special handlers * for the different possible situations (spiro-, fusion-, bridged attachement) * * @param ring The ring to be placed * @param sharedAtoms The atoms of this ring, also members of another ring, which are already placed * @param sharedAtomsCenter The geometric center of these atoms * @param ringCenterVector A vector pointing the the center of the new ring * @param bondLength The standard bondlength */ public void placeRing(IRing ring, IAtomContainer sharedAtoms, Point2d sharedAtomsCenter, Vector2d ringCenterVector, double bondLength) { int numSharedAtoms = sharedAtoms.getAtomCount(); int numSharedBonds = sharedAtoms.getBondCount(); logger.debug("placeRing -> sharedAtomCount: " + numSharedAtoms); if (numSharedAtoms > 2 && numSharedBonds > 1) { placeBridgedRing(ring, sharedAtoms, sharedAtomsCenter, ringCenterVector, bondLength); } else if (numSharedAtoms == 2 && numSharedBonds == 1) { placeFusedRing(ring, sharedAtoms, ringCenterVector, bondLength); } else if (numSharedAtoms == 1 && numSharedBonds == 0) { placeSpiroRing(ring, sharedAtoms, sharedAtomsCenter, ringCenterVector, bondLength); } }
/** * Generated coordinates for a given ring. Multiplexes to special handlers * for the different possible situations (spiro-, fusion-, bridged attachement) * * @param ring The ring to be placed * @param sharedAtoms The atoms of this ring, also members of another ring, which are already placed * @param sharedAtomsCenter The geometric center of these atoms * @param ringCenterVector A vector pointing the the center of the new ring * @param bondLength The standard bondlength */ public void placeRing(IRing ring, IAtomContainer sharedAtoms, Point2d sharedAtomsCenter, Vector2d ringCenterVector, double bondLength) { int numSharedAtoms = sharedAtoms.getAtomCount(); int numSharedBonds = sharedAtoms.getBondCount(); logger.debug("placeRing -> sharedAtomCount: " + numSharedAtoms); if (numSharedAtoms > 2 && numSharedBonds > 1) { placeBridgedRing(ring, sharedAtoms, sharedAtomsCenter, ringCenterVector, bondLength); } else if (numSharedAtoms == 2 && numSharedBonds == 1) { placeFusedRing(ring, sharedAtoms, ringCenterVector, bondLength); } else if (numSharedAtoms == 1 && numSharedBonds == 0) { placeSpiroRing(ring, sharedAtoms, sharedAtomsCenter, ringCenterVector, bondLength); } }
} else { ringPlacer.setMolecule(sourceContainer); ringPlacer.placeSpiroRing(newRing, sharedAtoms, sharedAtomsCenter, ringCenterVector, bondLength);
} else { ringPlacer.setMolecule(sourceContainer); ringPlacer.placeSpiroRing(newRing, sharedAtoms, sharedAtomsCenter, ringCenterVector, bondLength);