fix: enabledVessels 토글 시 모델 중심 경로 재계산
- setEnabledVessels: rawCorrelationTracks로 modelCenterTrails 재빌드 - rawCorrelationTracks 필드 추가 (원본 트랙 보존) - 선박/어구 on/off → 폴리곤 + 중심경로 + 중심점 동시 갱신 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
부모
c97f964f93
커밋
bf412cc897
@ -58,6 +58,7 @@ interface GearReplayState {
|
|||||||
historyFrames: HistoryFrame[];
|
historyFrames: HistoryFrame[];
|
||||||
frameTimes: number[];
|
frameTimes: number[];
|
||||||
selectedGroupKey: string | null;
|
selectedGroupKey: string | null;
|
||||||
|
rawCorrelationTracks: CorrelationVesselTrack[];
|
||||||
|
|
||||||
// Pre-computed layer data
|
// Pre-computed layer data
|
||||||
memberTripsData: TripsLayerDatum[];
|
memberTripsData: TripsLayerDatum[];
|
||||||
@ -134,6 +135,7 @@ export const useGearReplayStore = create<GearReplayState>()(
|
|||||||
historyFrames: [],
|
historyFrames: [],
|
||||||
frameTimes: [],
|
frameTimes: [],
|
||||||
selectedGroupKey: null,
|
selectedGroupKey: null,
|
||||||
|
rawCorrelationTracks: [],
|
||||||
|
|
||||||
// Pre-computed layer data
|
// Pre-computed layer data
|
||||||
memberTripsData: [],
|
memberTripsData: [],
|
||||||
@ -178,6 +180,7 @@ export const useGearReplayStore = create<GearReplayState>()(
|
|||||||
startTime,
|
startTime,
|
||||||
endTime,
|
endTime,
|
||||||
currentTime: startTime,
|
currentTime: startTime,
|
||||||
|
rawCorrelationTracks: corrTracks,
|
||||||
memberTripsData: memberTrips,
|
memberTripsData: memberTrips,
|
||||||
correlationTripsData: corrTrips,
|
correlationTripsData: corrTrips,
|
||||||
centerTrailSegments: segments,
|
centerTrailSegments: segments,
|
||||||
@ -224,7 +227,13 @@ export const useGearReplayStore = create<GearReplayState>()(
|
|||||||
|
|
||||||
setEnabledModels: (models) => set({ enabledModels: models }),
|
setEnabledModels: (models) => set({ enabledModels: models }),
|
||||||
|
|
||||||
setEnabledVessels: (vessels) => set({ enabledVessels: vessels }),
|
setEnabledVessels: (vessels) => {
|
||||||
|
const state = get();
|
||||||
|
const modelTrails = state.historyFrames.length > 0
|
||||||
|
? buildModelCenterTrails(state.historyFrames, state.rawCorrelationTracks, state.correlationByModel, vessels, state.startTime)
|
||||||
|
: [];
|
||||||
|
set({ enabledVessels: vessels, modelCenterTrails: modelTrails });
|
||||||
|
},
|
||||||
|
|
||||||
setHoveredMmsi: (mmsi) => set({ hoveredMmsi: mmsi }),
|
setHoveredMmsi: (mmsi) => set({ hoveredMmsi: mmsi }),
|
||||||
setShowTrails: (show) => set({ showTrails: show }),
|
setShowTrails: (show) => set({ showTrails: show }),
|
||||||
@ -250,7 +259,7 @@ export const useGearReplayStore = create<GearReplayState>()(
|
|||||||
corrTracks: corrTracks.length,
|
corrTracks: corrTracks.length,
|
||||||
});
|
});
|
||||||
const modelTrails = buildModelCenterTrails(state.historyFrames, corrTracks, byModel, state.enabledVessels, state.startTime);
|
const modelTrails = buildModelCenterTrails(state.historyFrames, corrTracks, byModel, state.enabledVessels, state.startTime);
|
||||||
set({ correlationByModel: byModel, correlationTripsData: corrTrips, modelCenterTrails: modelTrails });
|
set({ correlationByModel: byModel, correlationTripsData: corrTrips, modelCenterTrails: modelTrails, rawCorrelationTracks: corrTracks });
|
||||||
},
|
},
|
||||||
|
|
||||||
reset: () => {
|
reset: () => {
|
||||||
@ -268,6 +277,7 @@ export const useGearReplayStore = create<GearReplayState>()(
|
|||||||
historyFrames: [],
|
historyFrames: [],
|
||||||
frameTimes: [],
|
frameTimes: [],
|
||||||
selectedGroupKey: null,
|
selectedGroupKey: null,
|
||||||
|
rawCorrelationTracks: [],
|
||||||
memberTripsData: [],
|
memberTripsData: [],
|
||||||
correlationTripsData: [],
|
correlationTripsData: [],
|
||||||
centerTrailSegments: [],
|
centerTrailSegments: [],
|
||||||
|
|||||||
불러오는 중...
Reference in New Issue
Block a user