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 #ifndef ABSTRACTFORCE_HPP_
00029 #define ABSTRACTFORCE_HPP_
00030
00031 #include <boost/serialization/access.hpp>
00032 #include <boost/serialization/is_abstract.hpp>
00033
00034 #include "AbstractTissue.hpp"
00035
00039 template<unsigned DIM>
00040 class AbstractForce
00041 {
00043 friend class boost::serialization::access;
00050 template<class Archive>
00051 void serialize(Archive & archive, const unsigned int version)
00052 {
00053 }
00054
00055 public :
00056
00060 AbstractForce();
00061
00065 virtual ~AbstractForce();
00066
00075 virtual void AddForceContribution(std::vector<c_vector<double, DIM> >& rForces,
00076 AbstractTissue<DIM>& rTissue)=0;
00077
00078 };
00079
00080 template<unsigned DIM>
00081 AbstractForce<DIM>::AbstractForce()
00082 {
00083 }
00084
00085 template<unsigned DIM>
00086 AbstractForce<DIM>::~AbstractForce()
00087 {
00088 }
00089
00090 namespace boost
00091 {
00092 namespace serialization
00093 {
00099 template<unsigned DIM>
00100 struct is_abstract<AbstractForce<DIM> >
00101 {
00102 typedef mpl::bool_<true> type;
00103 BOOST_STATIC_CONSTANT(bool, value = true);
00104 };
00105 }
00106 }
00107
00108 #endif