00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef ESTAR_KERNEL_HPP
00022 #define ESTAR_KERNEL_HPP
00023
00024
00025 namespace estar {
00026
00027
00028 class Propagator;
00029
00030
00039 class Kernel {
00040 public:
00041 const double freespace_meta;
00042 const double obstacle_meta;
00043 const double scale;
00044
00045 Kernel(double fsm, double obm, double _scale)
00046 : freespace_meta(fsm), obstacle_meta(obm), scale(_scale) { }
00047
00048 virtual ~Kernel();
00049
00050 double Compute(Propagator & propagator) const;
00051
00056 virtual bool ChangeWouldRaise(double oldmeta, double newmeta) const;
00057
00058 protected:
00059 virtual
00060 double DoCompute(Propagator & propagator) const = 0;
00061 };
00062
00063
00064 }
00065
00066 #endif // ESTAR_KERNEL_HPP