Go to the documentation of this file.00001
00002
00003
00004 #ifndef classformula_hh
00005 #define classformula_hh
00006
00007 #include "piecewiseFormula.hh"
00008
00009
00010 namespace concepts {
00011
00012
00013
00031 template<typename F>
00032 class Formula : public PiecewiseFormulaBase<F> {
00033 public:
00034 typedef F value_type;
00035 typedef typename Realtype<F>::type G;
00036
00043 virtual F operator() (const Real p, const Real t = 0.0) const = 0;
00044 virtual F operator() (const Real2d& p, const Real t = 0.0) const = 0;
00045 virtual F operator() (const Real3d& p, const Real t = 0.0) const = 0;
00051 virtual F operator() (const Connector& cntr, const Real p,
00052 const Real t = 0.0) const
00053 { return operator()(p, t); }
00054 virtual F operator() (const Connector& cntr, const Real2d& p,
00055 const Real t = 0.0) const
00056 { return operator()(p, t); }
00057 virtual F operator() (const Connector& cntr, const Real3d& p,
00058 const Real t = 0.0) const
00059 { return operator()(p, t); }
00062 virtual Formula* clone() const = 0;
00063 };
00064
00065 }
00066
00067 #endif // formula_hh
00068