();
+ tracksFilteredByType.forEach(({ annotation }) => {
+ const realTrack = activeTrackStore.getPossible(annotation.id);
+ realTrack?.features
+ .filter((item) => item?.keyframe)
+ .forEach((item) => {
+ if (hasSuppressionAttribute(realTrack, item.frame, suppType)
+ || isRegionSuppressed(realTrack, item.frame)) {
+ return;
+ }
+ countByFrame.set(item.frame, (countByFrame.get(item.frame) || 0) + 1);
});
- }
});
let maxFrame = -1;
let maxCount = 0;
- frameCounts.forEach((count, f) => {
+ countByFrame.forEach((count, candidateFrame) => {
if (count > maxCount) {
maxCount = count;
- maxFrame = f;
+ maxFrame = candidateFrame;
}
});
handler.seekFrame(maxFrame);
@@ -409,6 +491,11 @@ export default defineComponent({
return {
data,
+ hierarchyActive,
+ compactSharedLineage,
+ sharedLineage,
+ sharedLineageText,
+ showSharedLineageControl,
headCheckState,
visibleTypes,
usedTypesRef,
@@ -420,6 +507,7 @@ export default defineComponent({
sortingMethodIcons,
virtualHeight,
virtualTypes,
+ rowHeight: ROW_HEIGHT,
readOnlyMode,
filteredTracksRef,
disableAnnotationFilters,
@@ -430,6 +518,8 @@ export default defineComponent({
headCheckClicked,
setCheckedTypes: trackFilters.updateCheckedTypes,
updateCheckedType,
+ toggleExpanded,
+ toggleSharedLineage,
goToPeakTrackFrame,
showMaxFrameButton,
};
@@ -528,18 +618,47 @@ export default defineComponent({
placeholder="Search types"
class="mx-2 mt-2 shrink input-box"
>
+
+
+ {{ sharedLineageText }}
+
+
+ {{ compactSharedLineage ? 'Expand Parents' : 'Compact Parents' }}
+
+
@@ -573,6 +693,8 @@ export default defineComponent({