On passe -ansi -pedantic -Wconversion -Wformat=2 -Winit-self -Wmissing-include-dirs -Wswitch-default -Wsync-nand -Wunused -Wstrict-overflow=5 -Wfloat-equal -Wundef -Wno-endif-labels -Wshadow -Wunsafe-loop-optimizations -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wlogical-op -Wmissing-declarations -Wnormalized=nfc -Wpacked -Wredundant-decls -Winline -Winvalid-pch -Wdisabled-optimization -Woverlength-strings .

This commit is contained in:
Georges Dupéron 2012-01-10 03:14:21 +01:00
parent 0016a66cbd
commit 8239cd8fbe
35 changed files with 67 additions and 59 deletions

View File

@ -1,5 +1,6 @@
CXX=g++ CXX=g++
# -ansi -pedantic -Wconversion # -ansi -pedantic -Wconversion
# -Wformat=2 -Winit-self -Wmissing-include-dirs -Wswitch-default -Wsync-nand -Wunused -Wstrict-overflow=5 -Wfloat-equal -Wundef -Wno-endif-labels -Wshadow -Wunsafe-loop-optimizations -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wlogical-op -Wmissing-declarations -Wnormalized=nfc -Wpacked -Wredundant-decls -Winline -Winvalid-pch -Wdisabled-optimization -Woverlength-strings
CCWARN=-Wall -Wextra -Werror CCWARN=-Wall -Wextra -Werror
# TODO : -O3 -m32 ou -m64 # TODO : -O3 -m32 ou -m64
# -g -rdynamic uniquement pour le debug. # -g -rdynamic uniquement pour le debug.

4
geometry/angle.cpp Normal file
View File

@ -0,0 +1,4 @@
#include "all_includes.hh"
float Angle::r2d(float rad) { return rad / Pi * 180; }
float Angle::d2r(float deg) { return deg / 180 * Pi; }

View File

@ -4,8 +4,8 @@
namespace Angle { namespace Angle {
const double dPi = 3.141592653589793238462643383279; const double dPi = 3.141592653589793238462643383279;
const float Pi = (float)(dPi); const float Pi = (float)(dPi);
float r2d(float rad) { return rad / Pi * 180; } float r2d(float rad);
float d2r(float deg) { return deg / 180 * Pi; } float d2r(float deg);
} }
#endif #endif

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
Segment::Segment(Vertex u, Vertex v): u(u), v(v) {} Segment::Segment(Vertex _u, Vertex _v): u(_u), v(_v) {}
float Segment::length() { float Segment::length() {
return (u-v).norm(); return (u-v).norm();

View File

@ -2,7 +2,7 @@
Vertex::Vertex() {} Vertex::Vertex() {}
Vertex::Vertex(float x, float y, float z): x(x), y(y), z(z) {} Vertex::Vertex(float _x, float _y, float _z): x(_x), y(_y), z(_z) {}
float Vertex::norm() const { return std::sqrt(x*x + y*y + z*z); } float Vertex::norm() const { return std::sqrt(x*x + y*y + z*z); }

View File

@ -1,16 +1,16 @@
#include "all_includes.hh" #include "all_includes.hh"
GPUTriangle::GPUTriangle(Vertex left, Vertex top, Vertex right, unsigned char r, unsigned char g, unsigned char b) GPUTriangle::GPUTriangle(Vertex left, Vertex top, Vertex right, unsigned char _r, unsigned char _g, unsigned char _b)
: c(left, top, right), r(r), g(g), b(b), vnormal(normal(left,top,right)) { : c(left, top, right), r(_r), g(_g), b(_b), vnormal(normal(left,top,right)) {
} }
GPUTriangle::GPUTriangle(Triangle c, unsigned char r, unsigned char g, unsigned char b) GPUTriangle::GPUTriangle(Triangle _c, unsigned char _r, unsigned char _g, unsigned char _b)
: c(c), r(r), g(g), b(b), vnormal(normal(c[LEFT], c[TOP], c[RIGHT])) { : c(_c), r(_r), g(_g), b(_b), vnormal(normal(c[LEFT], c[TOP], c[RIGHT])) {
} }
Vertex GPUTriangle::normal(Vertex left, Vertex top, Vertex right) { Vertex GPUTriangle::normal(Vertex left, Vertex top, Vertex right) {
Vertex normal = (left - top)*(right - top); Vertex v = (left - top)*(right - top);
return normal / normal.norm(); return v / v.norm();
} }
void GPUTriangle::display() { void GPUTriangle::display() {

View File

@ -3,7 +3,7 @@ Heap::Heap()
bucketArraySize(1), lastNode(-1) { bucketArraySize(1), lastNode(-1) {
} }
void Heap::init(int id, int factor) { this->id = id; this->factor = (float)factor; } void Heap::init(int _id, int _factor) { this->id = _id; this->factor = (float)_factor; }
void Heap::insert(float key, Chose* value) { void Heap::insert(float key, Chose* value) {
++lastNode; ++lastNode;

10
lod.cpp
View File

@ -1,16 +1,16 @@
#include "all_includes.hh" #include "all_includes.hh"
Lod::Lod(Vertex camera, Chose* root) { Lod::Lod(Vertex _camera, Chose* root) {
for (int i = 0; i < 6; i++) { for (int i = 0; i < 6; i++) {
merge[i].init(i, (i & 1) ? 1 : -1); merge[i].init(i, (i & 1) ? 1 : -1);
splitIn[i].init(6+i, (i & 1) ? 1 : -1); splitIn[i].init(6+i, (i & 1) ? 1 : -1);
splitOut[i].init(12+i, (i & 1) ? -1 : 1); splitOut[i].init(12+i, (i & 1) ? -1 : 1);
} }
this->camera[0] = camera.x; this->camera[0] = _camera.x;
this->camera[1] = camera.y; this->camera[1] = _camera.y;
this->camera[2] = camera.z; this->camera[2] = _camera.z;
addSplitCube(root); addSplitCube(root);
setCamera(camera); setCamera(_camera);
} }
void Lod::setCamera(Vertex newCamera) { void Lod::setCamera(Vertex newCamera) {

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
BatimentQuad::BatimentQuad(Quad c, Cardinal entry) : Chose(), c(c), entry(entry) { BatimentQuad::BatimentQuad(Quad _c, Cardinal _entry) : Chose(), c(_c), entry(_entry) {
addEntropy(c); addEntropy(c);
addEntropy(entry); addEntropy(entry);
} }

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
BatimentQuadBlock::BatimentQuadBlock(Quad c, float height) : Chose(), c(c), height(height) { BatimentQuadBlock::BatimentQuadBlock(Quad _c, float _height) : Chose(), c(_c), height(_height) {
addEntropy(c); addEntropy(c);
} }

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
BatimentQuadFenetre::BatimentQuadFenetre(Quad c, float height) : Chose(), c(c), height(height) { BatimentQuadFenetre::BatimentQuadFenetre(Quad _c, float _height) : Chose(), c(_c), height(_height) {
addEntropy(c); addEntropy(c);
} }

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
BatimentQuadJardin::BatimentQuadJardin(Quad c) : Chose(), c(c) { BatimentQuadJardin::BatimentQuadJardin(Quad _c) : Chose(), c(_c) {
addEntropy(c); addEntropy(c);
} }

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
BatimentQuadMaison::BatimentQuadMaison(Quad c) : Chose(), c(c) { BatimentQuadMaison::BatimentQuadMaison(Quad _c) : Chose(), c(_c) {
addEntropy(c); addEntropy(c);
} }

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
BatimentQuadMaisonPont::BatimentQuadMaisonPont(Quad c, float height) : Chose(), c(c), height(height) { BatimentQuadMaisonPont::BatimentQuadMaisonPont(Quad _c, float _height) : Chose(), c(_c), height(_height) {
addEntropy(c); addEntropy(c);
} }

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
BatimentQuadMur::BatimentQuadMur(Quad c, float height) : Chose(), c(c), height(height) { BatimentQuadMur::BatimentQuadMur(Quad _c, float _height) : Chose(), c(_c), height(_height) {
addEntropy(c); addEntropy(c);
this->window = false; this->window = false;
} }

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
BatimentQuadPont::BatimentQuadPont(Quad c, float height) : Chose(), c(c), height(height) { BatimentQuadPont::BatimentQuadPont(Quad _c, float _height) : Chose(), c(_c), height(_height) {
addEntropy(c); addEntropy(c);
} }
@ -9,12 +9,12 @@ void BatimentQuadPont::getBoundingBoxPoints() {
addBBPoints(c + Vertex(0,0,height)); // TODO addBBPoints(c + Vertex(0,0,height)); // TODO
} }
float ct(float x) { float BatimentQuadPont::ct(float x) {
return (float)(1 - cosh(x / 1.f)); return (float)(1 - cosh(x / 1.f));
} }
float nt(float x, float height) { float BatimentQuadPont::nt(float x, float _height) {
return (ct(x) + -ct(-1.7f))/(ct(0)+ -ct(-1.7f)) * height; return (ct(x) + -ct(-1.7f))/(ct(0)+ -ct(-1.7f)) * _height;
} }
void BatimentQuadPont::triangulation() { void BatimentQuadPont::triangulation() {

View File

@ -5,14 +5,17 @@
class BatimentQuadPont: public Chose { class BatimentQuadPont: public Chose {
private : private :
Quad c; Quad c;
float height; float height;
public : public :
BatimentQuadPont(Quad c, float height); BatimentQuadPont(Quad c, float height);
virtual void triangulation(); virtual void triangulation();
virtual void getBoundingBoxPoints(); virtual void getBoundingBoxPoints();
private:
float ct(float x);
float nt(float x, float height);
}; };
#endif #endif

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
BatimentQuadToit::BatimentQuadToit(Quad c, float height) : Chose(), c(c), height(height) { BatimentQuadToit::BatimentQuadToit(Quad _c, float _height) : Chose(), c(_c), height(_height) {
addEntropy(c); addEntropy(c);
} }

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
BatimentTri::BatimentTri(Triangle c) : Chose(), c(c) { BatimentTri::BatimentTri(Triangle _c) : Chose(), c(_c) {
addEntropy(c); addEntropy(c);
} }

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
QuartierQuad::QuartierQuad(Quad c) : Chose(), c(c) { QuartierQuad::QuartierQuad(Quad _c) : Chose(), c(_c) {
addEntropy(c); addEntropy(c);
} }

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
QuartierQuadAngle::QuartierQuadAngle(Quad c) : QuartierQuad(c) { QuartierQuadAngle::QuartierQuadAngle(Quad _c) : QuartierQuad(_c) {
} }
bool QuartierQuadAngle::split() { bool QuartierQuadAngle::split() {

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
QuartierQuadCarre::QuartierQuadCarre(Quad c) : QuartierQuad(c) { QuartierQuadCarre::QuartierQuadCarre(Quad _c) : QuartierQuad(_c) {
} }
bool QuartierQuadCarre::split() { bool QuartierQuadCarre::split() {

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
QuartierQuadRect::QuartierQuadRect(Quad c) : QuartierQuad(c) { QuartierQuadRect::QuartierQuadRect(Quad _c) : QuartierQuad(_c) {
} }
bool QuartierQuadRect::split() { bool QuartierQuadRect::split() {

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
QuartierTri::QuartierTri(Triangle c) : Chose(), c(c) { QuartierTri::QuartierTri(Triangle _c) : Chose(), c(_c) {
addEntropy(c); addEntropy(c);
} }

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
QuartierTriCentre::QuartierTriCentre(Triangle c) : QuartierTri(c) { QuartierTriCentre::QuartierTriCentre(Triangle _c) : QuartierTri(_c) {
} }
bool QuartierTriCentre::split() { bool QuartierTriCentre::split() {

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
QuartierTriHauteur::QuartierTriHauteur(Triangle c) : QuartierTri(c) { QuartierTriHauteur::QuartierTriHauteur(Triangle _c) : QuartierTri(_c) {
} }
bool QuartierTriHauteur::split() { bool QuartierTriHauteur::split() {

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
QuartierTriTrapeze::QuartierTriTrapeze(Triangle c) : QuartierTri(c) { QuartierTriTrapeze::QuartierTriTrapeze(Triangle _c) : QuartierTri(_c) {
} }
bool QuartierTriTrapeze::split() { bool QuartierTriTrapeze::split() {

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
RouteQuadCarrefour::RouteQuadCarrefour(Quad c) : Chose(), c(c) { RouteQuadCarrefour::RouteQuadCarrefour(Quad _c) : Chose(), c(_c) {
addEntropy(c); addEntropy(c);
} }

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
RouteQuadChaussee::RouteQuadChaussee(Quad c) : Chose(), c(c) { RouteQuadChaussee::RouteQuadChaussee(Quad _c) : Chose(), c(_c) {
addEntropy(c); addEntropy(c);
} }

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
RouteTriChaussee::RouteTriChaussee(Triangle c) : Chose(), c(c) { RouteTriChaussee::RouteTriChaussee(Triangle _c) : Chose(), c(_c) {
addEntropy(c); addEntropy(c);
} }

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
TrottoirQuadNormal::TrottoirQuadNormal(Quad c, float height) : Chose(), c(c), height(height) { TrottoirQuadNormal::TrottoirQuadNormal(Quad _c, float _height) : Chose(), c(_c), height(_height) {
} }
void TrottoirQuadNormal::getBoundingBoxPoints() { void TrottoirQuadNormal::getBoundingBoxPoints() {

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
TerrainQuadHerbe::TerrainQuadHerbe(Quad c) : Chose(), c(c) { TerrainQuadHerbe::TerrainQuadHerbe(Quad _c) : Chose(), c(_c) {
addEntropy(c); addEntropy(c);
} }

View File

@ -1,6 +1,6 @@
#include "all_includes.hh" #include "all_includes.hh"
TerrainTriHerbe::TerrainTriHerbe(Triangle c) : Chose(), c(c) { TerrainTriHerbe::TerrainTriHerbe(Triangle _c) : Chose(), c(_c) {
addEntropy(c); addEntropy(c);
} }

View File

@ -1,9 +1,9 @@
#include "all_includes.hh" #include "all_includes.hh"
View::View(Chose* root) View::View(Chose* _root)
: root(root), : root(_root),
camera(Camera(Vertex(9600,10000,15300),0,179,1000,0.6f)), camera(Camera(Vertex(9600,10000,15300),0,179,1000,0.6f)),
lod(camera.cameraCenter, root) { lod(camera.cameraCenter, _root) {
initWindow(); initWindow();
mainLoop(); mainLoop();
} }
@ -145,13 +145,13 @@ void View::mainLoop() {
SDL_Quit(); SDL_Quit();
} }
Camera::Camera(Vertex pos, float xA, float yA, int moveSensitivity, float mouseSensitivity) Camera::Camera(Vertex _cameraCenter, float _xAngle, float _yAngle, int _moveSensitivity, float _mouseSensitivity)
: cameraCenter(pos), : cameraCenter(_cameraCenter),
cameraSight(cameraCenter + Vertex::fromSpherical(100,yA,xA)), cameraSight(cameraCenter + Vertex::fromSpherical(100,_yAngle,_xAngle)),
xAngle(xA), xAngle(_xAngle),
yAngle(yA), yAngle(_yAngle),
moveDist(moveSensitivity), moveSensitivity(_moveSensitivity),
mouseSensitivity(mouseSensitivity), mouseSensitivity(_mouseSensitivity),
up(false), down(false), left(false), right(false), up(false), down(false), left(false), right(false),
pageUp(false), pageDown(false) pageUp(false), pageDown(false)
{ {
@ -207,11 +207,11 @@ void Camera::keyboard(const SDL_KeyboardEvent &eventKey) {
break; break;
case 's': case 's':
if (eventKey.type != SDL_KEYDOWN) break; if (eventKey.type != SDL_KEYDOWN) break;
moveDist = std::min(50000,std::max(moveDist+1, moveDist*10/9)); moveSensitivity = std::min(50000,std::max(moveSensitivity+1, moveSensitivity*10/9));
break; break;
case 'x': case 'x':
if (eventKey.type != SDL_KEYDOWN) break; if (eventKey.type != SDL_KEYDOWN) break;
moveDist = std::max(10, moveDist*9/10); moveSensitivity = std::max(10, moveSensitivity*9/10);
break; break;
case 'p': // _Print _Position case 'p': // _Print _Position
if (eventKey.type != SDL_KEYDOWN) break; if (eventKey.type != SDL_KEYDOWN) break;
@ -225,7 +225,7 @@ void Camera::keyboard(const SDL_KeyboardEvent &eventKey) {
} }
void Camera::animation(int elapsedTime) { void Camera::animation(int elapsedTime) {
float diff = ((float)(elapsedTime+1)/1000.f)*(float)moveDist; float diff = ((float)(elapsedTime+1)/1000.f)*(float)moveSensitivity;
if(up) if(up)
cameraCenter = cameraCenter + Vertex::fromSpherical(diff, yAngle, xAngle); cameraCenter = cameraCenter + Vertex::fromSpherical(diff, yAngle, xAngle);

View File

@ -17,7 +17,7 @@ class Camera {
private : private :
float xAngle; float xAngle;
float yAngle; float yAngle;
int moveDist; int moveSensitivity;
float mouseSensitivity; float mouseSensitivity;
bool up; bool up;
bool down; bool down;