From 33bca1d28696584abd3ad44721331824b8286757 Mon Sep 17 00:00:00 2001
From: Xavier CORBILLON <xavier.corbillon@telecom-bretagne.eu>
Date: Wed, 19 Jan 2011 00:18:32 +0100
Subject: [PATCH] Modification pour Ubuntu

---
 include/simul/element.h |  2 +-
 include/simul/robot.h   |  2 +-
 include/simul/table.h   |  3 ++-
 simulation/configure.ac |  2 +-
 src/simul/element.cpp   | 16 +++++++-------
 src/simul/robot.cpp     | 11 ++++------
 src/simul/table.cpp     | 46 +++++++++++++++++++++++------------------
 7 files changed, 42 insertions(+), 40 deletions(-)

diff --git a/include/simul/element.h b/include/simul/element.h
index 200d8408..c6f63fee 100644
--- a/include/simul/element.h
+++ b/include/simul/element.h
@@ -3,7 +3,7 @@
 
 #include "Position.h"
 #include <QPainter>
-#include "Box2D/Box2D.h"
+#include "Box2D.h"
 
 class Element
 {
diff --git a/include/simul/robot.h b/include/simul/robot.h
index ebeaaf53..ff9a99cd 100644
--- a/include/simul/robot.h
+++ b/include/simul/robot.h
@@ -5,7 +5,7 @@
 #include <QKeyEvent>
 #include <boost/circular_buffer.hpp>
 #include "PositionPlusAngle.h"
-#include <Box2D/Box2D.h>
+#include <Box2D.h>
 
 class Robot
 {
diff --git a/include/simul/table.h b/include/simul/table.h
index 65b4a4a6..47fc1ff6 100644
--- a/include/simul/table.h
+++ b/include/simul/table.h
@@ -3,7 +3,7 @@
 
 #include <QWidget>
 #include "element.h"
-#include <Box2D/Box2D.h>
+#include <Box2D.h>
 
 class Table : public QWidget
 {
@@ -20,6 +20,7 @@ public:
 
 	static const int tableWidth = 3000;
 	static const int tableHeight = 2100;
+	static b2AABB getWorldAABB();
 	//static const int tableWidth = 2100;
 	//static const int tableHeight = 3000;
 
diff --git a/simulation/configure.ac b/simulation/configure.ac
index f352465e..91daaf0b 100644
--- a/simulation/configure.ac
+++ b/simulation/configure.ac
@@ -23,7 +23,7 @@ AX_BOOST_BASE([1.40], [AC_MSG_RESULT(yes) ] , [AC_MSG_RESULT(no) ] )
 
 CXXFLAGS=
 
-AX_DEP_CHECK(Box2D, [/usr/lib /usr/local/lib], libBox2D.so,[/usr/include /usr/local/include],Box2D/Box2D.h, -lBox2D)
+AX_DEP_CHECK(Box2D, [/usr/lib /usr/local/lib], libbox2d.so,[/usr/include /usr/local/include],Box2D.h, -lbox2d)
 
 AC_ARG_ENABLE([debug], AS_HELP_STRING([--enable-debug],[Turn on debugging]), [enable_debug=$enableval],[enable_debug="no"])
 AC_MSG_CHECKING(debug)
diff --git a/src/simul/element.cpp b/src/simul/element.cpp
index 951d0abf..26b6b13b 100644
--- a/src/simul/element.cpp
+++ b/src/simul/element.cpp
@@ -7,20 +7,18 @@ Element::Element(b2World & world, Position p, Type t)
 	multiplier = 0;
 
 	b2BodyDef bodyDef;
-	bodyDef.type = b2_dynamicBody;
+	//bodyDef.type = b2_dynamicBody;
 	bodyDef.position.Set(p.x/100., p.y/100.);
 	
 	body = world.CreateBody(&bodyDef);
 
-	b2CircleShape circle;
-	circle.m_p.Set(0.,0.);
-	circle.m_radius = 1.0f;
+	b2CircleDef circleDef;
+	circleDef.radius = 1.0f;
+	circleDef.localPosition.Set(0.,0.);
 
-	b2FixtureDef fixtureDef;
-	fixtureDef.shape = &circle;
-	fixtureDef.density = 1.0f;
-	fixtureDef.friction = 0.4f;
-	body->CreateFixture(&fixtureDef);
+	circleDef.density = 1.0f;
+	circleDef.friction = 0.4f;
+	body->CreateShape(&circleDef);
 }
 
 void Element::updatePos()
diff --git a/src/simul/robot.cpp b/src/simul/robot.cpp
index b14c6e8f..8cf705f9 100644
--- a/src/simul/robot.cpp
+++ b/src/simul/robot.cpp
@@ -60,20 +60,17 @@ Robot::Robot(b2World & world) : olds(10000)
 	asservissement->strategie = strategie;
 
 	b2BodyDef bodyDef;
-	bodyDef.type = b2_dynamicBody;
 	bodyDef.position.Set(pos.position.x/100., pos.position.y/100.);
 	bodyDef.angle = pos.angle.getValueInRadian();
 	
 	body = world.CreateBody(&bodyDef);
 
-	b2PolygonShape box;
+	b2PolygonDef box;
 	box.SetAsBox(1.,1., b2Vec2(1,1),0);
 
-	b2FixtureDef fixtureDef;
-	fixtureDef.shape = &box;
-	fixtureDef.density = 10.0f;
-	fixtureDef.friction = 1.0f;
-	body->CreateFixture(&fixtureDef);
+	box.density = 10.0f;
+	box.friction = 1.0f;
+	body->CreateShape(&box);
 }
 
 void Robot::updateForces(int dt)
diff --git a/src/simul/table.cpp b/src/simul/table.cpp
index a9a8450e..4911400e 100644
--- a/src/simul/table.cpp
+++ b/src/simul/table.cpp
@@ -13,7 +13,15 @@ Position getCaseCenter(unsigned int i, unsigned int j)
 	return Position(625 + i*350, 175 + j*350);
 }
 
-Table::Table(QWidget* parent) : QWidget(parent), world(b2Vec2(0.f,0.f), false)
+b2AABB Table::getWorldAABB()
+{
+	b2AABB a;
+	a.lowerBound.Set(-100,-100);
+	a.upperBound.Set(tableWidth+100, tableHeight+100);
+	return a;
+}
+
+Table::Table(QWidget* parent) : QWidget(parent), world(getWorldAABB(),b2Vec2(0.f,0.f), false)
 {
 	dt=0;
 	setAutoFillBackground(true);
@@ -31,45 +39,43 @@ Table::Table(QWidget* parent) : QWidget(parent), world(b2Vec2(0.f,0.f), false)
 	tableBody = world.CreateBody(&bodyDef);
 
 	
-	b2PolygonShape box;
-	b2FixtureDef fixtureDef;
-	fixtureDef.shape = &box;
-	fixtureDef.friction = 0.5;
-	fixtureDef.density = 0;
+	b2PolygonDef box;
+	box.friction = 0.5;
+	box.density = 0;
 
 	box.SetAsBox(30,1, b2Vec2(0,-1),0);
-	tableBody->CreateFixture(&fixtureDef);
+	tableBody->CreateShape(&box);
 
 	box.SetAsBox(1,21, b2Vec2(-1,0),0);
-	tableBody->CreateFixture(&fixtureDef);
+	tableBody->CreateShape(&box);
 
 	box.SetAsBox(1,21, b2Vec2(31,0),0);
-	tableBody->CreateFixture(&fixtureDef);
+	tableBody->CreateShape(&box);
 
 	box.SetAsBox(30.,1., b2Vec2(0,22),0);
-	tableBody->CreateFixture(&fixtureDef);
+	tableBody->CreateShape(&box);
 
 	//Starting zones borders
 	box.SetAsBox(4.00,.11, b2Vec2(0.,4.), 0.);
-	tableBody->CreateFixture(&fixtureDef);
+	tableBody->CreateShape(&box);
 	box.SetAsBox(4.00,.11, b2Vec2(30.,4.), 0.);
-	tableBody->CreateFixture(&fixtureDef);
+	tableBody->CreateShape(&box);
 
 	//Blocked zones
 	box.SetAsBox(3.50,1.20, b2Vec2(8,21), 0.);
-	tableBody->CreateFixture(&fixtureDef);
+	tableBody->CreateShape(&box);
 	box.SetAsBox(3.50,1.20, b2Vec2(22,21), 0.);
-	tableBody->CreateFixture(&fixtureDef);
+	tableBody->CreateShape(&box);
 
 	box.SetAsBox(.11,0.65, b2Vec2(4.61,19.15), 0.);
-	tableBody->CreateFixture(&fixtureDef);
+	tableBody->CreateShape(&box);
 	box.SetAsBox(.11,0.65, b2Vec2(18.61,19.15), 0.);
-	tableBody->CreateFixture(&fixtureDef);
+	tableBody->CreateShape(&box);
 
 	box.SetAsBox(.11,0.65, b2Vec2(11.39,19.15), 0.);
-	tableBody->CreateFixture(&fixtureDef);
+	tableBody->CreateShape(&box);
 	box.SetAsBox(.11,0.64, b2Vec2(25.39,19.15), 0.);
-	tableBody->CreateFixture(&fixtureDef);
+	tableBody->CreateShape(&box);
 
 	//Init position of elements
 	int l1 = rand() % 20; 
@@ -96,8 +102,8 @@ void Table::update(int dt)
 	for(unsigned int i=0; i < robots.size(); i++)
 		robots[i]->updateForces(dt);
 
-	world.Step((float)dt/1000., 10, 10);
-	world.ClearForces();
+	world.Step((float)dt/1000., 10);
+	//world.ClearForces();
 	for(unsigned int i=0; i < elements.size(); i++)
 		elements[i]->updatePos();
 	repaint();
-- 
GitLab