GCOP  1.0
body3dtrackcost.h
Go to the documentation of this file.
00001 #ifndef GCOP_BODY3DTRACKCOST_H
00002 #define GCOP_BODY3DTRACKCOST_H
00003 
00004 #include <limits>
00005 #include <iostream>
00006 #include "cost.h"
00007 #include "body3dtrack.h"
00008 #include "body3d.h"
00009 
00010 namespace gcop {
00011   
00012   using namespace std;
00013   using namespace Eigen;
00014 
00015   typedef Matrix<double, Dynamic, 12> MatrixX12d;
00016   typedef Matrix<double, 12, Dynamic> Matrix12Xd;
00017   
00018   class Body3dTrackCost : public Cost<Body3dState, 12, 6> {
00019   public:
00020     Body3dTrackCost(double tf, const Body3dTrack &pg);
00021     
00022     double L(double t, const Body3dState &x, const Vector6d &u, double h,
00023              const VectorXd *p,
00024              Vector12d *Lx = 0, Matrix12d *Lxx = 0,
00025              Vector6d *Lu = 0, Matrix6d *Luu = 0,
00026              Matrix<double, 12, 6> *Lxu = 0, 
00027              VectorXd *Lp = 0, MatrixXd *Lpp = 0, MatrixX12d *Lpx = 0);
00028 
00029     const Body3dTrack &pg;
00030   };  
00031 }
00032 
00033 #endif