diff --git a/src/ActivityAnimation.cpp b/src/ActivityAnimation.cpp index b0e0761..06cb341 100644 --- a/src/ActivityAnimation.cpp +++ b/src/ActivityAnimation.cpp @@ -31,6 +31,7 @@ ActivityAnimation::ActivityAnimation( : bufferLength(3 * interactions.size()) { + CHECK(coloring) << "Invalid coloring function passed."; startingPos.reserve(bufferLength); delta.reserve(bufferLength); colorBuf.reserve(interactions.size()); diff --git a/src/visualisations.cpp b/src/visualisations.cpp index d5c094b..a78eea3 100644 --- a/src/visualisations.cpp +++ b/src/visualisations.cpp @@ -165,7 +165,15 @@ static Animation *getReLUAnimation(const fmri::LayerData &prevState, results = deduplicate(results); - return new ActivityAnimation(results, prevPositions.data(), curPositions.data(), -10); + const auto maxValue = max_element(results.begin(), results.end())->first; + + return new ActivityAnimation(results, prevPositions.data(), curPositions.data(), -10, [=](float i) -> ActivityAnimation::Color { + if (maxValue == 0) { + return {1, 1, 1}; + } else { + return {1 - i / maxValue, 1 - i / maxValue, 1}; + } + }); } Animation * fmri::getActivityAnimation(const fmri::LayerData &prevState, const fmri::LayerData &curState,