Implement node positions for animations.
This commit is contained in:
@@ -21,6 +21,7 @@ static inline void computeColor(float intensity, float limit, float* destination
|
|||||||
}
|
}
|
||||||
|
|
||||||
FlatLayerVisualisation::FlatLayerVisualisation(const LayerData &layer, Ordering ordering) :
|
FlatLayerVisualisation::FlatLayerVisualisation(const LayerData &layer, Ordering ordering) :
|
||||||
|
LayerVisualisation(layer.numEntries()),
|
||||||
ordering(ordering),
|
ordering(ordering),
|
||||||
faceCount(layer.numEntries() * 4),
|
faceCount(layer.numEntries() * 4),
|
||||||
vertexBuffer(new float[faceCount * 3]),
|
vertexBuffer(new float[faceCount * 3]),
|
||||||
@@ -78,7 +79,7 @@ void FlatLayerVisualisation::render()
|
|||||||
glDisableClientState(GL_COLOR_ARRAY);
|
glDisableClientState(GL_COLOR_ARRAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FlatLayerVisualisation::setVertexPositions(int vertexNo, float *destination)
|
void FlatLayerVisualisation::setVertexPositions(const int vertexNo, float *destination)
|
||||||
{
|
{
|
||||||
int j = 0;
|
int j = 0;
|
||||||
float zOffset;
|
float zOffset;
|
||||||
@@ -100,6 +101,12 @@ void FlatLayerVisualisation::setVertexPositions(int vertexNo, float *destination
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nodePositions_[3 * vertexNo] = 0;
|
||||||
|
nodePositions_[3 * vertexNo + 1] = yOffset;
|
||||||
|
nodePositions_[3 * vertexNo + 2] = zOffset;
|
||||||
|
// TODO: actually compute from this rather than copying to destination.
|
||||||
|
// Side note: should move this out of this function anyway.
|
||||||
|
|
||||||
// Create the 4 vertices for the pyramid
|
// Create the 4 vertices for the pyramid
|
||||||
destination[j++] = -0.5f;
|
destination[j++] = -0.5f;
|
||||||
destination[j++] = 0 + yOffset;
|
destination[j++] = 0 + yOffset;
|
||||||
|
|||||||
@@ -26,6 +26,6 @@ namespace fmri
|
|||||||
std::unique_ptr<float[]> colorBuffer;
|
std::unique_ptr<float[]> colorBuffer;
|
||||||
std::unique_ptr<int[]> indexBuffer;
|
std::unique_ptr<int[]> indexBuffer;
|
||||||
|
|
||||||
void setVertexPositions(int vertexNo, float* destination);
|
void setVertexPositions(const int vertexNo, float *destination);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
11
src/LayerVisualisation.cpp
Normal file
11
src/LayerVisualisation.cpp
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#include "LayerVisualisation.hpp"
|
||||||
|
|
||||||
|
const std::vector<float> &fmri::LayerVisualisation::nodePositions() const
|
||||||
|
{
|
||||||
|
return nodePositions_;
|
||||||
|
}
|
||||||
|
|
||||||
|
fmri::LayerVisualisation::LayerVisualisation(size_t numNodes)
|
||||||
|
: nodePositions_(numNodes * 3)
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -1,12 +1,20 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
namespace fmri
|
namespace fmri
|
||||||
{
|
{
|
||||||
class LayerVisualisation
|
class LayerVisualisation
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
LayerVisualisation() = default;
|
||||||
|
LayerVisualisation(size_t numNodes);
|
||||||
virtual ~LayerVisualisation() = default;
|
virtual ~LayerVisualisation() = default;
|
||||||
|
|
||||||
virtual void render() = 0;
|
virtual void render() = 0;
|
||||||
|
virtual const std::vector<float>& nodePositions() const;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
std::vector<float> nodePositions_;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user