RegularStimulus.hpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef _REGULARSTIMULUS_HPP_
00031 #define _REGULARSTIMULUS_HPP_
00032
00033 #include "ChasteSerialization.hpp"
00034 #include <boost/serialization/base_object.hpp>
00035
00036 #include "AbstractStimulusFunction.hpp"
00037
00041 class RegularStimulus : public AbstractStimulusFunction
00042 {
00043 private:
00045 friend class boost::serialization::access;
00052 template<class Archive>
00053 void serialize(Archive & archive, const unsigned int version)
00054 {
00055
00056 archive & boost::serialization::base_object<AbstractStimulusFunction>(*this);
00057 archive & mMagnitudeOfStimulus;
00058 archive & mDuration;
00059 archive & mPeriod;
00060 archive & mStartTime;
00061 archive & mStopTime;
00062 }
00063
00064 protected:
00065
00067 double mMagnitudeOfStimulus;
00069 double mDuration;
00071 double mPeriod;
00073 double mStartTime;
00075 double mStopTime;
00076
00077 public:
00087 RegularStimulus(double magnitudeOfStimulus, double duration, double period, double startTime, double stopTime=DBL_MAX);
00088
00095 double GetStimulus(double time);
00096
00100 double GetPeriod();
00101
00105 double GetMagnitude();
00106
00110 double GetDuration();
00111
00115 double GetStartTime();
00116
00122 void SetPeriod(double period);
00123
00129 void SetStartTime(double startTime);
00130
00136 void SetStopTime(double stopTime);
00137 };
00138
00139 #include "SerializationExportWrapper.hpp"
00140
00141 CHASTE_CLASS_EXPORT(RegularStimulus)
00142
00143 namespace boost
00144 {
00145 namespace serialization
00146 {
00151 template<class Archive>
00152 inline void load_construct_data(
00153 Archive & ar, RegularStimulus * t, const unsigned int file_version)
00154 {
00161 ::new(t)RegularStimulus(0.0, 0.0, 0.1, 0.0, 1.0);
00162 }
00163 }
00164 }
00165
00166 #endif //_REGULARSTIMULUS_HPP_