Passes cpplint tests.

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@3038 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: a2cd1f51b251f5954ac68cb8fcb373d7e7206168
Former-commit-id: 36c21e192510b46185f028fc6a44f69a7eff057e
This commit is contained in:
kmetykog 2010-10-22 09:07:58 +00:00
parent 59d4cfeb2f
commit 9641d32eec
2 changed files with 60 additions and 71 deletions

View file

@ -23,16 +23,17 @@
*
*/
#include "cardata.h"
#include "linalg.h" //v2d
#include <robottools.h> //Rt*
#include "src/drivers/kilo2008/cardata.h"
#include <algorithm> //for_each, find
#include <robottools.h> // Rt*
void
SingleCardata::update()
{
trackangle = RtTrackSideTgAngleL(&(((tCarElt*)car)->_trkPos));
#include <list>
#include <algorithm> // for_each, find
#include "src/drivers/kilo2008/linalg.h" // v2d
void SingleCardata::update() {
trackangle = RtTrackSideTgAngleL(const_cast<tTrkLocPos*>(&(car->_trkPos)));
speed = getSpeed(car, trackangle);
angle = trackangle - car->_yaw;
NORM_PI_PI(angle);
@ -45,13 +46,12 @@ SingleCardata::update()
fabs(car->_dimension_y * sin(angle) +
car->_dimension_x * cos(angle))) + 0.1;
for(int i = 0; i < 4; i++)
{
corner2[i].ax = corner1[i].ax;
corner2[i].ay = corner1[i].ay;
corner1[i].ax = car->_corner_x(i);
corner1[i].ay = car->_corner_y(i);
}//for i
for (int i = 0; i < 4; i++) {
corner2[i].ax = corner1[i].ax;
corner2[i].ay = corner1[i].ay;
corner1[i].ax = car->_corner_x(i);
corner1[i].ay = car->_corner_y(i);
} // for i
lastspeed[2].ax = lastspeed[1].ax;
lastspeed[2].ay = lastspeed[1].ay;
@ -59,70 +59,61 @@ SingleCardata::update()
lastspeed[1].ay = lastspeed[0].ay;
lastspeed[0].ax = car->_speed_X;
lastspeed[0].ay = car->_speed_Y;
}//update
} // update
// compute speed component parallel to the track.
double
SingleCardata::getSpeed(const tCarElt * car, const double ltrackangle)
{
double SingleCardata::getSpeed(const tCarElt * car, const double ltrackangle) {
v2d speed(car->_speed_X, car->_speed_Y);
v2d dir(cos(ltrackangle), sin(ltrackangle));
return speed * dir;
}//getSpeed
} // getSpeed
void
SingleCardata::init(const CarElt * pcar)
{
void SingleCardata::init(const CarElt * pcar) {
car = pcar;
for(int i = 0; i < 4; i++)
{
corner1[i].ax = corner2[i].ax = car->_corner_x(i);
corner1[i].ay = corner2[i].ay = car->_corner_y(i);
}//for i
for (int i = 0; i < 4; i++) {
corner1[i].ax = corner2[i].ax = car->_corner_x(i);
corner1[i].ay = corner2[i].ay = car->_corner_y(i);
} // for i
lastspeed[0].ax = lastspeed[1].ax = lastspeed[2].ax = car->_speed_X;
lastspeed[0].ay = lastspeed[1].ay = lastspeed[2].ay = car->_speed_Y;
}//init
} // init
Cardata::Cardata(tSituation * s)
{
Cardata::Cardata(tSituation * s) {
data = new std::list<SingleCardata>(s->_ncars);
std::list<SingleCardata>::iterator it = data->begin();
for(int i = 0; it != data->end(); it++, i++)
{
it->init(s->cars[i]);
}
}//Cardata
for (int i = 0; it != data->end(); it++, i++) {
it->init(s->cars[i]);
}
} // Cardata
Cardata::~Cardata()
{
Cardata::~Cardata() {
delete data;
}//~Cardata
} // ~Cardata
static inline void Cupdate(SingleCardata &a) {a.update();}
static inline void Cupdate(SingleCardata &a) { // NOLINT(runtime/references)
a.update();
}
void
Cardata::update() const
{
void Cardata::update() const {
std::for_each(data->begin(), data->end(), Cupdate);
}//update
} // update
inline bool operator==(const SingleCardata& a, const tCarElt* b)
{return a.thisCar(b);}
SingleCardata *
Cardata::findCar(const tCarElt * car) const
{
SingleCardata * Cardata::findCar(const tCarElt * car) const {
SingleCardata *ret = NULL;
std::list<SingleCardata>::iterator it = std::find(data->begin(), data->end(), car);
if(it != data->end())
std::list<SingleCardata>::iterator it =
std::find(data->begin(), data->end(), car);
if (it != data->end())
ret = &(*it);
return ret;
}//findCar
} // findCar

View file

@ -28,16 +28,15 @@
each other (for that is the class Opponents/Opponent responsible).
*/
#ifndef _CARDATA_H_
#define _CARDATA_H_
#ifndef SRC_DRIVERS_KILO2008_CARDATA_H_
#define SRC_DRIVERS_KILO2008_CARDATA_H_
#include <car.h> //tCarElt
#include <raceman.h> //tSituation
#include <list> //std::list
#include <car.h> // tCarElt
#include <raceman.h> // tSituation
#include <list> // std::list
class SingleCardata
{
public:
class SingleCardata {
public:
void init(const tCarElt * car);
inline double getSpeedInTrackDirection() const { return speed; }
@ -51,9 +50,9 @@ public:
inline tPosd *getLastSpeed() { return lastspeed;}
void update();
//void operator() (void) {this->update();}
protected:
// void operator() (void) {this->update();}
protected:
static double getSpeed(const tCarElt * car, const double trackangle);
double speed; // speed in direction of the track.
@ -70,18 +69,17 @@ protected:
};
// TODO: use singleton pattern.
class Cardata
{
public:
Cardata(tSituation * s);
// TODO(kilo): use singleton pattern.
class Cardata {
public:
explicit Cardata(tSituation * s);
~Cardata();
void update() const;
SingleCardata *findCar(const tCarElt * car) const;
protected:
std::list<SingleCardata> *data; // List with car data.
protected:
std::list<SingleCardata> *data; // List with car data.
};
#endif // _CARDATA_H_
#endif // SRC_DRIVERS_KILO2008_CARDATA_H_