This PR adds feature value storage and facilities to compute them for the MaMuT model.
Feature storage.
General feature model stuff is in package org.mastodon.revised.model.feature.
The MaMuT Model has now a FeatureModel.
Feature calculation.
For MaMuT, API consumers can extend special interfaces to implement classes able to provide these numerical features. These interfaces are discovered automatically by SciJava discovery mechanism. These are:
org.mastodon.revised.mamut.feature.SpotFeatureComputer and
org.mastodon.revised.mamut.feature.LinkFeatureComputer.
There are some examples in the same package.
A calculator class is in class or registering these computers, managing their dependencies, and feeding the Model with the results: FeatureComputerService with concrete impl. DefaultMamutFeatureComputerService.
UI.
A GUI panel shows to the user what feature computers are available and let them select the feature they want: org.mastodon.revised.mamut.FeatureComputersPanel
To discuss.
[ ] This PR imports SciJava and friends logic to the project. We probably want to make sure we do it in a better way than proposed now.
[ ] It is probably a good time to also discuss feature serialization / deserialization, which is not touched by this PR.
This PR adds feature value storage and facilities to compute them for the MaMuT model.
Feature storage.
org.mastodon.revised.model.feature
.Model
has now aFeatureModel
.Feature calculation.
org.mastodon.revised.mamut.feature.SpotFeatureComputer
andorg.mastodon.revised.mamut.feature.LinkFeatureComputer
. There are some examples in the same package.Model
with the results:FeatureComputerService
with concrete impl.DefaultMamutFeatureComputerService
.UI.
org.mastodon.revised.mamut.FeatureComputersPanel
To discuss.