bool processCollision(Obstacle &tmpObject) { if (!gameInPlay) return false; Point pointOnField = tmpObject.getOrigin() +tmpObject.getVelocity(); tmpObject.setOrigin(pointOnField); //Point pointOnField = currentOrigin +velocity; //Point currentVehicleOrigin = vehicle.getOrigin(); //pointOnField = pointOnField + originInSpace; //vehicle.setOrigin(pointOnField); //collision with Wall/Floor if ( abs(pointOnField.x) > courseDepth ||abs(pointOnField.z) > courseDepth ||abs(pointOnField.y) > courseDepth ) { //velocity=Point(0,0,0); //speed=0; tmpObject.setVelocity(Point(0,0,0)); tmpObject.setSpeed(0); //adjust the course Velocity so we don't get stuck in a wall if ( tmpObject.getOrigin().x > courseDepth) tmpObject.setOrigin(Point( courseDepth,tmpObject.getOrigin().y,tmpObject.getOrigin().z)); if ( tmpObject.getOrigin().x < -courseDepth) tmpObject.setOrigin(Point( -courseDepth,tmpObject.getOrigin().y,tmpObject.getOrigin().z)); if ( tmpObject.getOrigin().z > courseDepth) tmpObject.setOrigin(Point(tmpObject.getOrigin().x,tmpObject.getOrigin().y, courseDepth)); if ( tmpObject.getOrigin().z < -courseDepth) tmpObject.setOrigin(Point(tmpObject.getOrigin().x,tmpObject.getOrigin().y, -courseDepth)); if ( tmpObject.getOrigin().y > courseDepth) tmpObject.setOrigin(Point(tmpObject.getOrigin().x, courseDepth,tmpObject.getOrigin().z)); if ( tmpObject.getOrigin().y < -courseDepth) tmpObject.setOrigin(Point(tmpObject.getOrigin().x, -courseDepth,tmpObject.getOrigin().z)); cout <<"Collision with Wall "<<pointOnField <<" x> depth("<<courseDepth<<endl; return true; } //collision vehicle With Pond if(pond.objectWithinBoundingBox(tmpObject)) { tmpObject.setVelocity(Point(0,0,0)); tmpObject.setSpeed(0); cout << "collision with pond vehicle at "<<pointOnField<<endl; return true; } //collision with snowdrift 2; if(snowcave2.objectWithinBoundingBox(tmpObject)) { velocity = Point(0,0,0); tmpObject.setSpeed(0); cout << "collision with snowcave2 at "<<pointOnField<<endl; return true; } if(snowcave.objectWithinBoundingBox(tmpObject)) { velocity = Point(0,0,0); tmpObject.setSpeed(0); cout << "collision with snowcave at "<<pointOnField<<endl; return true; } //collision with snowman if(snowman.objectWithinBoundingBox(tmpObject) || snowman2.objectWithinBoundingBox(tmpObject) || snowman3.objectWithinBoundingBox(tmpObject)) { tmpObject.setVelocity(Point(0,0,0)); tmpObject.setSpeed(0); cout << "collision with snowman at "<<pointOnField<<endl; return true; } //put back the vehicleOrigin() //vehicle.setOrigin(currentVehicleOrigin); return false; }//end of processCollision