SpikeStream Application Library
0.2
|
00001 #ifndef SPIKERASTERWIDGET_H 00002 #define SPIKERASTERWIDGET_H 00003 00004 //SpikeStream includes 00005 #include "NeuronGroup.h" 00006 00007 //Qt includes 00008 #include <QWidget> 00009 #include <QVector> 00010 #include <QImage> 00011 #include <QTime> 00012 #include <QPainter> 00013 00014 namespace spikestream { 00015 00017 class SpikeRasterWidget : public QWidget { 00018 Q_OBJECT 00019 00020 public : 00021 SpikeRasterWidget(QList<NeuronGroup*>& neuronGroupList, QWidget* parent=0); 00022 ~SpikeRasterWidget(); 00023 void addSpikes(const QList<unsigned>& firingNeuronIDs, int timeStep); 00024 void setBlackAndWhite(bool on); 00025 00026 00027 protected: 00028 void mouseDoubleClickEvent (QMouseEvent* event); 00029 void paintEvent(QPaintEvent* event); 00030 void resizeEvent(QResizeEvent* event); 00031 00032 00033 private: 00034 //===================== VARIABLES ===================== 00037 QList<NeuronGroup*> neuronGroupList; 00038 00041 QHash<unsigned, unsigned> neurGrpOffsetMap; 00042 00044 QHash<unsigned, unsigned> neurGrpColorMap; 00045 00047 QImage* bufferImage; 00048 00050 int numTimeSteps; 00051 00053 int numNeurons; 00054 00056 int minTimeStep; 00057 00059 int widgetWidth; 00060 00062 int widgetHeight; 00063 00065 int imageWidth; 00066 00068 int imageHeight; 00069 00071 bool updateAxes; 00072 00074 int xAxisPadding; 00075 00077 int xAxisTickLength; 00078 00080 int yAxisPadding; 00081 00083 int yAxisTickLength; 00084 00086 int fontSize; 00087 00089 int neurGrpNameFontSize; 00090 00092 QRgb backgroundColor; 00093 00095 QRgb axesColor; 00096 00098 bool blackAndWhiteMode; 00099 00100 00101 //======================== METHODS ======================= 00102 QString getFilePath(QString fileFilter); 00103 QList<unsigned> getHueList(unsigned numItems); 00104 void increaseTimeStep(int currentTimeStep); 00105 void paintNeuronGroupNames(QPainter& painter); 00106 void paintYAxis(QPainter&); 00107 void paintYAxisTick(QPainter& painter, int yPos, int label); 00108 void paintXAxis(QPainter&); 00109 void paintXAxisTick(QPainter&, int xval, int xlable); 00110 void paintAxes(QPainter&); 00111 00112 }; 00113 00114 } 00115 00116 #endif//SPIKERASTERWIDGET_H