dd919a184eed24110f134dec8b56b61f034d23a0
kate
  Mon Jun 10 18:26:45 2019 -0700
Finish initial implementation of multi-region link on interact track details. refs #22422

diff --git src/hg/lib/interact.c src/hg/lib/interact.c
index bad6c50..51aa19a 100644
--- src/hg/lib/interact.c
+++ src/hg/lib/interact.c
@@ -299,30 +299,42 @@
 /* Get other chromosome from an interaaction. Return NULL if same chromosome */
 {
 if (sameString(inter->sourceChrom, inter->targetChrom))
     return NULL;
 if (inter->chromStart == inter->sourceStart)
     return cloneString(inter->targetChrom);
 return cloneString(inter->sourceChrom);
 }
 
 int interactRegionCenter(int start, int end)
 /* Return genomic location of center of region */
 {
 return ((double)(end - start + .5) / 2) + start;
 }
 
+boolean interactEndsOverlap(struct interact *inter)
+/* Determine if there is any overlap of interact endpoints */
+{
+if (differentString(inter->sourceChrom, inter->targetChrom))
+    return FALSE;
+if (inter->sourceStart < inter->targetStart && inter->sourceEnd < inter->targetEnd)
+    return FALSE;
+if (inter->targetStart < inter->sourceStart && inter->targetEnd < inter->sourceEnd)
+    return FALSE;
+return TRUE;
+}
+
 int interactRegionDistance(struct interact *inter)
 /* Return distance between region midpoints. Return -1 for other chromosome */
 {
 if (interactOtherChrom(inter))
     return -1;
 return abs(interactRegionCenter(inter->sourceStart, inter->sourceEnd) -
                 interactRegionCenter(inter->targetStart, inter->targetEnd));
 }
 
 int interactDistanceCmp(const void *va, const void *vb)
 /* Compare based on distance between region midpoints */
 {
 struct interact *a = *((struct interact **)va);
 struct interact *b = *((struct interact **)vb);