Subversion Repositories QTron

Compare Revisions

Ignore whitespace Rev 17 → Rev 18

/bike.cpp
163,10 → 163,10
}
 
int sign(float x){
if(x > 0.0){
if(x > 0.0){
return 1;
}
if(x < 0.0){
if(x < 0.0){
return -1;
}
return 0;
181,38 → 181,38
return true;
if(linePoints[i].x() < 0 || linePoints[i].x() > 800 || linePoints[i].y() < 0 || linePoints[i].y() > 600)
return true;
int j, r;
int j, r;
Bike *bike;
for(int r = 0; r < bikes.count(); r++)
{
bike = bikes[r];
for(j = 0; j < bike->linePoints.count() - 1; j++)
{
if(!(bike->linePoints[j].x() == bike->linePoints[j+1].x() && linePoints[i].x() == linePoints[i-1].x()) && !(bike->linePoints[j].y() == bike->linePoints[j+1].y() && linePoints[i].y() == linePoints[i-1].y()))
{
for(int r = 0; r < bikes.count(); r++)
{
bike = bikes[r];
for(j = 0; j < bike->linePoints.count() - 1; j++)
{
if(!(bike->linePoints[j].x() == bike->linePoints[j+1].x() && linePoints[i].x() == linePoints[i-1].x()) && !(bike->linePoints[j].y() == bike->linePoints[j+1].y() && linePoints[i].y() == linePoints[i-1].y()))
{
 
// If not parallel
if(bike->linePoints[j].x() == bike->linePoints[j+1].x())
{
// x equal
// If not parallel
if(bike->linePoints[j].x() == bike->linePoints[j+1].x())
{
// x equal
 
if(linePoints[i-1].x() > bike->linePoints[j].x() && linePoints[i].x() < bike->linePoints[j].x() || linePoints[i-1].x() < bike->linePoints[j].x() && linePoints[i].x() > bike->linePoints[j].x())
{
if((sign(linePoints[i-1].y() - bike->linePoints[j].y()) != sign(linePoints[i-1].y() - bike->linePoints[j+1].y())))
return true;
}
}
else if(bike->linePoints[j].y() == bike->linePoints[j+1].y())
{
if(linePoints[i-1].x() > bike->linePoints[j].x() && linePoints[i].x() < bike->linePoints[j].x() || linePoints[i-1].x() < bike->linePoints[j].x() && linePoints[i].x() > bike->linePoints[j].x())
{
if((sign(linePoints[i-1].y() - bike->linePoints[j].y()) != sign(linePoints[i-1].y() - bike->linePoints[j+1].y())))
return true;
}
}
else if(bike->linePoints[j].y() == bike->linePoints[j+1].y())
{
 
if(linePoints[i-1].y() > bike->linePoints[j].y() && linePoints[i].y() < bike->linePoints[j].y() || linePoints[i-1].y() < bike->linePoints[j].y() && linePoints[i].y() > bike->linePoints[j].y())
{
if((sign(linePoints[i-1].x() - bike->linePoints[j].x()) != sign(linePoints[i-1].x() - bike->linePoints[j+1].x())))
return true;
}
}
}
}
if(linePoints[i-1].y() > bike->linePoints[j].y() && linePoints[i].y() < bike->linePoints[j].y() || linePoints[i-1].y() < bike->linePoints[j].y() && linePoints[i].y() > bike->linePoints[j].y())
{
if((sign(linePoints[i-1].x() - bike->linePoints[j].x()) != sign(linePoints[i-1].x() - bike->linePoints[j+1].x())))
return true;
}
}
}
}
}
return false;
}