package org.knime.knip.tracking.nodes.laptracker;
import java.util.Map;
import org.knime.knip.tracking.data.TrackedNode;
import org.knime.knip.tracking.nodes.laptracker.LAPTrackerNodeModel.LAPTrackerAlgorithm;
import fiji.plugin.trackmate.tracking.TrackableObjectCollection;
import fiji.plugin.trackmate.tracking.oldlap.LAPTracker;
import fiji.plugin.trackmate.tracking.oldlap.hungarian.AssignmentAlgorithm;
import fiji.plugin.trackmate.tracking.oldlap.hungarian.HungarianAlgorithm;
import fiji.plugin.trackmate.tracking.oldlap.hungarian.JonkerVolgenantAlgorithm;
import fiji.plugin.trackmate.tracking.oldlap.hungarian.MunkresKuhnAlgorithm;
@Deprecated
public class GenericLapTracker<L extends Comparable<L>>
extends LAPTracker<TrackedNode<L>> {
private final LAPTrackerAlgorithm algorithm;
public GenericLapTracker(final LAPTrackerAlgorithm algorithm,
final TrackableObjectCollection<TrackedNode<L>> objects,
final Map<String, Object> defSettings) {
super(new KNIPCostCalculator<L>(), objects, defSettings);
this.algorithm = algorithm;
}
@Override
protected AssignmentAlgorithm createAssignmentProblemSolver() {
switch (algorithm) {
case MUNKRESKUHN:
return new MunkresKuhnAlgorithm();
case HUNGARIAN:
return new HungarianAlgorithm();
case JONKERVOLGENANT:
return new JonkerVolgenantAlgorithm();
default:
throw new IllegalArgumentException("Unknown LAPTracker");
}
}
}