#include "ImageInteractionAnimation.hpp" #include "glutils.hpp" #include "MultiImageVisualisation.hpp" #include using namespace fmri; void ImageInteractionAnimation::draw(float step) { auto vertexBuffer = deltas; caffe::caffe_scal(deltas.size(), step, vertexBuffer.data()); caffe::caffe_add(vertexBuffer.size(), vertexBuffer.data(), startingPositions.data(), vertexBuffer.data()); drawImageTiles(vertexBuffer.size() / 3, vertexBuffer.data(), textureCoordinates.data(), texture); } ImageInteractionAnimation::ImageInteractionAnimation(const DType *data, const std::vector &shape, const std::vector &prevPositions, const std::vector &curPositions) : texture(loadTexture(data, shape[2], shape[1] * shape[3], shape[1])), startingPositions(MultiImageVisualisation::getVertices(prevPositions)), deltas(MultiImageVisualisation::getVertices(curPositions)), textureCoordinates(MultiImageVisualisation::getTexCoords(shape[1])) { caffe::caffe_sub(deltas.size(), deltas.data(), startingPositions.data(), deltas.data()); for (auto i = 0u; i < deltas.size(); i += 3) { deltas[i] = LAYER_X_OFFSET; } }