GCOP  1.0
airplanecost.h
Go to the documentation of this file.
00001 #ifndef GCOP_AIRPLANECOST_H
00002 #define GCOP_AIRPLANECOST_H
00003 
00004 #include "lqcost.h"
00005 #include <limits>
00006 #include "normal.h"
00007 
00008 namespace gcop {
00009   
00010   using namespace std;
00011   using namespace Eigen;
00012   
00013   typedef Matrix<double, 5, 1> Vector5d;
00014   typedef Matrix<double, 5, 5> Matrix5d;
00015   typedef Matrix<double, 5, 2> Matrix52d;
00016   typedef pair<Matrix3d, Vector2d> M3V2d;
00017   
00018 
00019   class AirplaneCost : public LqCost<M3V2d, 5, 2> {
00020   public:      
00021     
00022     AirplaneCost(Airdouble tf, const M3V2d &xf, int N);
00023     
00024     double L(double t, const M3V2d &x, const Vector2d &u, double h,
00025              Vector5d *Lx = 0, Matrix5d *Lxx = 0,
00026              Vector2d *Lu = 0, Matrix2d *Luu = 0,
00027              Matrix52d *Lxu = 0);
00028     
00029     void SetObstacle(double s, double n);
00030     
00031     double n;
00032     //    Normal gd;  ///< Gaussian distribution    
00033     vector<Normal> gds;
00034     
00035   };
00036 }
00037 
00038 #endif