GCOP  1.0
body2dtrackcost.h
Go to the documentation of this file.
00001 #ifndef GCOP_BODY2DTRACKCOST_H
00002 #define GCOP_BODY2DTRACKCOST_H
00003 
00004 #include <limits>
00005 #include <iostream>
00006 #include "cost.h"
00007 #include "body2dtrack.h"
00008 #include "body2d.h"
00009 
00010 namespace gcop {
00011   
00012   using namespace std;
00013   using namespace Eigen;
00014 
00015   typedef Matrix<double, Dynamic, 6> MatrixX6d;
00016   typedef Matrix<double, 6, Dynamic> Matrix6Xd;
00017   
00018   class Body2dTrackCost : public Cost<Body2dState, 6, 3> {
00019   public:
00020     Body2dTrackCost(double tf, const Body2dTrack &pg);
00021     
00022     double L(double t, const Body2dState &x, const Vector3d &u, double h,
00023              const VectorXd *p,
00024              Vector6d *Lx = 0, Matrix6d *Lxx = 0,
00025              Vector3d *Lu = 0, Matrix3d *Luu = 0,
00026              Matrix63d *Lxu = 0, 
00027              VectorXd *Lp = 0, MatrixXd *Lpp = 0, MatrixX6d *Lpx = 0);
00028 
00029     const Body2dTrack &pg;
00030   };  
00031 }
00032 
00033 #endif