Esempio n. 1
0
void World::LoadCameras()
{
    // Setup Camera
    mCamera.push_back(new StaticCamera(vec3(3.0f, 5.0f, 5.0f),  vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 1.0f, 0.0f)));
    mCamera.push_back(new StaticCamera(vec3(3.0f, 74.5f, 5.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 1.0f, 0.0f)));
    mCamera.push_back(new StaticCamera(vec3(0.5f,  0.5f, 5.0f), vec3(0.0f, 0.5f, 0.0f), vec3(0.0f, 1.0f, 0.0f)));
    
    // Cube Character controlled with Third Person Camera
	OBJModel* character = new OBJModel("../Models/Calem.obj");
	character->SetPosition(vec3(0.0f, 0.0f, 0.0f));
	character->SetScaling(vec3(1.25, 1.25, 1.25));
    mCamera.push_back(new ThirdPersonCamera(character));
    mModel.push_back(character);
    
    // BSpline Camera
	BSpline* spline = new BSpline();
	spline->SetPosition(vec3(0.0, 2.5, 0.0));
	spline->AddControlPoint(vec3(20.0, 0.0, - 50.0));
	spline->AddControlPoint(vec3(40.0, 0.0, - 20.0));
	spline->AddControlPoint(vec3(60.0, 0.0, - 5.0));
	spline->AddControlPoint(vec3(80.0, 0.0, 20.0));
	spline->AddControlPoint(vec3(45.0, 0.0, 20.0));
	spline->AddControlPoint(vec3(25.0, 0.0, 10.0));
	spline->AddControlPoint(vec3(10.0, 0.0, 40.0));
	spline->AddControlPoint(vec3(-50.0, 0.0, 60.0));
	spline->AddControlPoint(vec3(-75.0, 0.0, 40.0));
	spline->AddControlPoint(vec3(-50.0, 0.0, 20.0));
	spline->AddControlPoint(vec3(-75.0, 0.0 ,- 20.0));
	spline->AddControlPoint(vec3(-60.0, 0.0, - 60.0));
	spline->AddControlPoint(vec3(-20.0, 0.0, - 60.0));
	
    if (spline == nullptr)
    {
        spline = FindSplineByIndex(0);
    }
    
    if (spline != nullptr)
    {
		mCamera.push_back(new BSplineCameraThirdPerson(spline, 5.0f));
    }

	
	//debug camera
	mCamera.push_back(new DebugCamera(vec3(0.0f, 2.0f, 0.0f)));
    
	// BSpline MainMeny Camera
	BSpline* splineMainMenu = new BSpline();
	splineMainMenu->SetPosition(vec3(0.0, 30, 0.0));
	splineMainMenu->AddControlPoint(vec3(20.0, 10.0, -10.0));
	splineMainMenu->AddControlPoint(vec3(40.0, - 20.0, 20.0));
	splineMainMenu->AddControlPoint(vec3(-60.0, - 10.0, - 5.0));
	splineMainMenu->AddControlPoint(vec3(20.0, 20.0, 20.0));
	splineMainMenu->AddControlPoint(vec3(-20.0, - 20.0, 40.0));
	splineMainMenu->AddControlPoint(vec3(45.0,40.0, 20.0));
	splineMainMenu->AddControlPoint(vec3(25.0, 0.0, 10.0));
	splineMainMenu->AddControlPoint(vec3(10.0, - 20.0, 40.0));
	splineMainMenu->AddControlPoint(vec3(-50.0, 30.0, 10.0));
	splineMainMenu->AddControlPoint(vec3(-50.0, 0.0, 20.0));
	splineMainMenu->AddControlPoint(vec3(-20.0, 30.0, - 20.0));
	splineMainMenu->AddControlPoint(vec3(30.0, - 10.0, 30.0));
	splineMainMenu->AddControlPoint(vec3(-20.0, 40.0, - 60.0));
		

	if (splineMainMenu == nullptr)
	{
		splineMainMenu = FindSplineByIndex(0);
	}

	if (splineMainMenu != nullptr)
	{
		mCamera.push_back(new BSplineCamera(splineMainMenu, 10.0f));
	}

	//Starting camera (change to the roller coaster for introduction credits)
	mCurrentCamera = 6;

}