Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

SpikeDelayLine.h

Go to the documentation of this file.
00001 #ifndef __SPIKEDELAYLINE_H
00002 #define __SPIKEDELAYLINE_H
00003 
00004 #include <queue>
00005 
00010 namespace Teem
00011 {
00014     class SpikeDelayLine
00015     {
00016     public:
00018         SpikeDelayLine(double theDelay = 2.0);
00020         virtual ~SpikeDelayLine() {}
00021         
00026         unsigned step(double dt, bool pushSpike);
00027         
00034         unsigned setDelay(double theDelay, bool dumpSpikes = true);
00036         double getDelay() { return delay; }
00037         
00039         bool spikeInLine() const { return spikePresent; }
00041         unsigned spikeCount() const { return (intervals.size() == 0) ? (spikePresent ? 1 : 0) : intervals.size() + 1; }
00042     
00043     protected:
00044     
00046         double delay;
00048         double totalInterval;
00050         double timeSinceLastSpike;
00052         bool spikePresent;
00054         std::queue<double> intervals;
00055         
00058         unsigned dumpOldSpikes();
00059     };
00060 }
00061 
00062 #endif

Generated on Mon Oct 24 17:38:25 2005 for Teem by  doxygen 1.4.2