46734f435d23f6919a08661b386c5a70a01a51cc
kate
  Tue Sep 25 12:00:32 2018 -0700
Add support for 'merged mode' track display.  This mode merges directional interactions by source or target, and displays as linked features (not arcs). This was originally conceived by Max, and initially implemented as the pack mode for standard interaction display, but was extended as different track display in all modes so that arcs and linked features display can be viewed concurrently, By request of JK.  refs #21917

diff --git src/hg/inc/interactUi.h src/hg/inc/interactUi.h
index 0115e8a..b786ded 100644
--- src/hg/inc/interactUi.h
+++ src/hg/inc/interactUi.h
@@ -8,48 +8,57 @@
 
 #define INTERACT_HEIGHT "heightPer"
 #define INTERACT_MINHEIGHT 20
 #define INTERACT_MAXHEIGHT 300
 #define INTERACT_DEFHEIGHT "200"
 #define INTERACT_MINSCORE "minScore"
 
 /* trackDb settings:
       interactDirectional on          use dashes for reverse direction
       interactDirectional offsetSource  use dashes for reverse direction, and offset source
       interactDirectional offsetTarget  use dashes for reverse direction, and offset target
 */
 #define INTERACT_DIRECTIONAL    "interactDirectional"
 #define INTERACT_OFFSET_SOURCE  "offsetSource"
 #define INTERACT_OFFSET_TARGET  "offsetTarget"
+#define INTERACT_TDB_MERGE_SOURCE   "mergeSource"
+#define INTERACT_TDB_MERGE_TARGET   "mergeTarget"
 
 /* setting to show interactions with peak up (hill, not valley) */
 #define INTERACT_UP             "interactUp"
 
 /* Cart variables */
 
 #define INTERACT_DIRECTION_DASHES "dashes"
 #define INTERACT_DIRECTION_DASHES_DEFAULT TRUE
 
 #define INTERACT_DRAW           "draw"
 #define INTERACT_DRAW_LINE      "line"
 #define INTERACT_DRAW_ELLIPSE   "ellipse"
 #define INTERACT_DRAW_CURVE     "curve"
 #define INTERACT_DRAW_DEFAULT   INTERACT_DRAW_CURVE
 
 #define INTERACT_ENDS_VISIBLE     "endsVisible"
 #define INTERACT_ENDS_VISIBLE_TWO "two"
 #define INTERACT_ENDS_VISIBLE_ONE "one"
 #define INTERACT_ENDS_VISIBLE_ANY "any"
 #define INTERACT_ENDS_VISIBLE_DEFAULT INTERACT_ENDS_VISIBLE_ANY
 
+#define INTERACT_MERGE            "merge"
+#define INTERACT_MERGE_SOURCE     "source"
+#define INTERACT_MERGE_TARGET     "target"
+
 
 void interactCfgUi(char *database, struct cart *cart, struct trackDb *tdb, char *track,
                         char *title, boolean boxed);
 /* Configure interact track type */
 
 boolean interactUiDirectional(struct trackDb *tdb);
 /* Determine if interactions are directional */
 
 char *interactUiOffset(struct trackDb *tdb);
 /* Determine whether to offset source or target (or neither if NULL) */
 
+char *interactUiMergeMode(struct cart *cart, char *track, struct trackDb *tdb);
+/* Get merge mode from trackDb and cart */
+
 #endif