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 MULTISTIMULUS_HPP_
00031 #define MULTISTIMULUS_HPP_
00032
00033 #include <vector>
00034
00035 #include "ChasteSerialization.hpp"
00036 #include <boost/serialization/base_object.hpp>
00037 #include <boost/serialization/vector.hpp>
00038 #include <boost/shared_ptr.hpp>
00039 #include <boost/serialization/shared_ptr.hpp>
00040
00041 #include "AbstractStimulusFunction.hpp"
00042
00051 class MultiStimulus : public AbstractStimulusFunction
00052 {
00053 private:
00055 friend class boost::serialization::access;
00062 template<class Archive>
00063 void serialize(Archive & archive, const unsigned int version)
00064 {
00065
00066 archive & boost::serialization::base_object<AbstractStimulusFunction>(*this);
00067 archive & mStimuli;
00068 }
00069 protected:
00071 std::vector<boost::shared_ptr<AbstractStimulusFunction> > mStimuli;
00072
00073 public:
00077 ~MultiStimulus();
00078
00084 void AddStimulus(boost::shared_ptr<AbstractStimulusFunction> pStimulus);
00085
00092 virtual double GetStimulus(double time);
00093
00098 void Clear();
00099 };
00100
00101 #include "SerializationExportWrapper.hpp"
00102
00103 CHASTE_CLASS_EXPORT(MultiStimulus)
00104
00105 #endif