public List <ILoopTrimer> FindTrimerLoops(ILoopsCollection LoopsCollection, ILoopCriteria LoopCriteria) { List <ILoopTrimer> LoopTrimers = new List <ILoopTrimer>(); //Search for pairs if we specify if (LoopCriteria.SearchForTrimer) { foreach (ILoop LoopA in LoopsCollection.Loops) { foreach (ILoop LoopB in LoopsCollection.Loops) { double InterPairDistanceAB = EuclideanDistance(LoopA.ApexAtom, LoopB.ApexAtom); if (InterPairDistanceAB > LoopCriteria.LoopTrimerDistanceLowerLimit && InterPairDistanceAB < LoopCriteria.LoopTrimerDistanceUpperLimit) { foreach (ILoop LoopC in LoopsCollection.Loops) { double InterPairDistanceAC = EuclideanDistance(LoopA.ApexAtom, LoopC.ApexAtom); double InterPairDistanceBC = EuclideanDistance(LoopB.ApexAtom, LoopC.ApexAtom); if (InterPairDistanceAC > LoopCriteria.LoopTrimerDistanceLowerLimit && InterPairDistanceAC < LoopCriteria.LoopTrimerDistanceUpperLimit && InterPairDistanceBC > LoopCriteria.LoopTrimerDistanceLowerLimit && InterPairDistanceBC < LoopCriteria.LoopTrimerDistanceUpperLimit) { ILoopTrimer LoopTrimer = new ILoopTrimer(); LoopTrimer.LoopA = LoopA; LoopTrimer.LoopB = LoopB; LoopTrimer.LoopC = LoopC; LoopTrimers.Add(LoopTrimer); Console.WriteLine("Added Trimer"); } } } } } } return(LoopTrimers); //return CleanupLoopPairs(LoopPairs); //TODO -> Cleanup trimers }
public List<ILoopTrimer> FindTrimerLoops(ILoopsCollection LoopsCollection, ILoopCriteria LoopCriteria) { List<ILoopTrimer> LoopTrimers = new List<ILoopTrimer>(); //Search for pairs if we specify if (LoopCriteria.SearchForTrimer) { foreach (ILoop LoopA in LoopsCollection.Loops) { foreach (ILoop LoopB in LoopsCollection.Loops) { double InterPairDistanceAB = EuclideanDistance(LoopA.ApexAtom, LoopB.ApexAtom); if (InterPairDistanceAB > LoopCriteria.LoopTrimerDistanceLowerLimit && InterPairDistanceAB < LoopCriteria.LoopTrimerDistanceUpperLimit) { foreach (ILoop LoopC in LoopsCollection.Loops) { double InterPairDistanceAC = EuclideanDistance(LoopA.ApexAtom, LoopC.ApexAtom); double InterPairDistanceBC = EuclideanDistance(LoopB.ApexAtom, LoopC.ApexAtom); if (InterPairDistanceAC > LoopCriteria.LoopTrimerDistanceLowerLimit && InterPairDistanceAC < LoopCriteria.LoopTrimerDistanceUpperLimit && InterPairDistanceBC > LoopCriteria.LoopTrimerDistanceLowerLimit && InterPairDistanceBC < LoopCriteria.LoopTrimerDistanceUpperLimit) { ILoopTrimer LoopTrimer = new ILoopTrimer(); LoopTrimer.LoopA = LoopA; LoopTrimer.LoopB = LoopB; LoopTrimer.LoopC = LoopC; LoopTrimers.Add(LoopTrimer); Console.WriteLine("Added Trimer"); } } } } } } return (LoopTrimers); //return CleanupLoopPairs(LoopPairs); //TODO -> Cleanup trimers }