Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | 76x 8015x 8015x 3157x 2151x | import { SimulationObjectRead } from "@/api/apiStore.gen";
import { isStream } from "../../../../lib/isStream";
export const TRACKED_STREAM_DIMMED_OPACITY = 0.25;
type TrackableConnection = {
stream: number;
unitOp: number;
};
type TrackableRecycleConnection = {
tearObject: number;
simulationObject: number;
};
export function collectTrackedConnectedUnitOpIds(
trackedStreamIds: Set<number> | undefined,
connectionGraphics: TrackableConnection[] | undefined,
recycleConnections: TrackableRecycleConnection[] | undefined,
) {
const connectedUnitOpIds = new Set<number>();
if (!trackedStreamIds?.size) return connectedUnitOpIds;
connectionGraphics?.forEach((connection) => {
if (trackedStreamIds.has(connection.stream)) {
connectedUnitOpIds.add(connection.unitOp);
}
});
recycleConnections?.forEach((connection) => {
if (trackedStreamIds.has(connection.tearObject)) {
connectedUnitOpIds.add(connection.simulationObject);
}
});
return connectedUnitOpIds;
}
export function trackedNodeOpacity(
simulationObject: SimulationObjectRead,
trackedStreamIds: Set<number> | undefined,
trackedConnectedUnitOpIds: Set<number>,
) {
if (!trackedStreamIds?.size) return undefined;
const isTrackedStream = trackedStreamIds.has(simulationObject.id);
const isConnectedUnitOp = trackedConnectedUnitOpIds.has(simulationObject.id);
if (isStream(simulationObject)) {
return isTrackedStream ? undefined : TRACKED_STREAM_DIMMED_OPACITY;
}
return isConnectedUnitOp ? undefined : TRACKED_STREAM_DIMMED_OPACITY;
}
export function trackedEdgeOpacity(
streamId: number,
trackedStreamIds: Set<number> | undefined,
) {
if (!trackedStreamIds?.size || trackedStreamIds.has(streamId)) {
return undefined;
}
return TRACKED_STREAM_DIMMED_OPACITY;
}
|