f04f1b9af06c823602c5e0ecd3b8c2059d7704d3 jcasper Thu Aug 27 14:42:31 2026 -0700 Faceted composites now have a max display mode setting instead of a full override of child track visibilities, with accompanying support for the onlyVisibility setting. We also now include a filter block (applied to appropriate child tracks) when those settings are in place. refs #37662 diff --git src/hg/inc/trackDb.h src/hg/inc/trackDb.h index 408f5360c82..26a54602f4a 100644 --- src/hg/inc/trackDb.h +++ src/hg/inc/trackDb.h @@ -211,30 +211,34 @@ // Is this trackDb struct marked as a child of a composite track ? { return tdb && tdb->parent && COMPOSITE_CHILD_NODE(tdb->treeNodeType); } #define tdbIsCompositeSubtrack(tdb) tdbIsCompositeChild(tdb) INLINE struct trackDb *tdbGetComposite(struct trackDb *tdb) // Return closest ancestor who is a composite track. { struct trackDb *parent = tdb->parent; for ( ; parent != NULL && !tdbIsComposite(parent); parent = parent->parent) ; return parent; } +boolean tdbIsFacetedComposite(struct trackDb *tdb); +// Is this a composite whose children are picked from a metadata table rather than a +// subgroup matrix? Unlike other composites, a faceted composite's own visibility is a +// maximum for its children rather than a value they inherit. // --- MultiTracks are container tracks with one level of subtracks // combined into a unified hgTracks image track INLINE void tdbMarkAsMultiTrack( struct trackDb *tdb) // Marks a trackDb struct as a multiTrack (like multiWig) { tdb->treeNodeType |= MULTI_TRACK_MASK; } INLINE void tdbMarkAsMultiTrackChild( struct trackDb *tdb) // Marks a trackDb struct as a child of a multiTrack (like multiWig) { tdb->treeNodeType |= MULTI_TRACK_CHILD_MASK; } #define tdbMarkAsMultiTrackSubtrack(tdb) tdbMarkAsMultiTrackChild(tdb)