/// <summary> /// This badly named methods tries to determine which AtomContainer in the /// ChemModel is best suited to contain added Atom's and Bond's. /// </summary> public static IAtomContainer GetRelevantAtomContainer(IChemModel chemModel, IAtom atom) { IAtomContainer result = null; if (chemModel.MoleculeSet != null) { var moleculeSet = chemModel.MoleculeSet; result = MoleculeSetManipulator.GetRelevantAtomContainer(moleculeSet, atom); if (result != null) { return(result); } } if (chemModel.ReactionSet != null) { var reactionSet = chemModel.ReactionSet; return(ReactionSetManipulator.GetRelevantAtomContainer(reactionSet, atom)); } if (chemModel.Crystal != null && chemModel.Crystal.Contains(atom)) { return(chemModel.Crystal); } if (chemModel.RingSet != null) { return(AtomContainerSetManipulator.GetRelevantAtomContainer(chemModel.RingSet, atom)); } throw new ArgumentException("The provided atom is not part of this IChemModel."); }
public void TestGetRelevantAtomContainer_IReactionSet_IBond() { foreach (var container in ReactionSetManipulator.GetAllAtomContainers(set)) { IBond aBond = container.Bonds[0]; Assert.AreEqual(container, ReactionSetManipulator.GetRelevantAtomContainer(set, aBond)); } }
public void TestGetRelevantAtomContainer_IReactionSet_IAtom() { foreach (var container in ReactionSetManipulator.GetAllAtomContainers(set)) { IAtom anAtom = container.Atoms[0]; Assert.AreEqual(container, ReactionSetManipulator.GetRelevantAtomContainer(set, anAtom)); } }
/// <summary> /// Retrieves the first IAtomContainer containing a given IBond from an /// IChemModel. /// </summary> /// <param name="chemModel">The IChemModel object.</param> /// <param name="bond">The IBond object to search.</param> /// <returns>The IAtomContainer object found, null if none is found.</returns> public static IAtomContainer GetRelevantAtomContainer(IChemModel chemModel, IBond bond) { IAtomContainer result = null; if (chemModel.MoleculeSet != null) { var moleculeSet = chemModel.MoleculeSet; result = MoleculeSetManipulator.GetRelevantAtomContainer(moleculeSet, bond); if (result != null) { return(result); } } if (chemModel.ReactionSet != null) { var reactionSet = chemModel.ReactionSet; return(ReactionSetManipulator.GetRelevantAtomContainer(reactionSet, bond)); } // This should never happen. return(null); }