bool ThreeDGraphicsClass::Initialize() { bool result; mAllModels = new vector<ModelClass*>; if(!mAllModels) { #ifdef _WIN32 MessageBoxA( NULL, "Model Vector Obj Creation Failure", "Error", MB_OK ); #endif return false; } mShaderProgram = new ShaderProgram(); if(!mShaderProgram) { #ifdef _WIN32 MessageBoxA( NULL, "Shader Program Obj Creation Failure", "Error", MB_OK ); #endif return false; } result = mShaderProgram->Initialize("./shaders/VertexShader.glsl", "./shaders/FragmentShader.glsl"); if(!result) { #ifdef _WIN32 MessageBoxA( NULL, "Shader Program Init Failure", "Error", MB_OK ); #endif return false; } mLightSource = new LightClass(); if(!mLightSource) return false; mLightSource->SetDiffuseColor(1.0f, 1.0f, 1.0f, 1.0f); mLightSource->SetAmbientLight(0.15f, 0.15f, 0.15f, 1.0f); mLightSource->SetSpecularColor(1.0f, 1.0f, 1.0f, 1.0f); mLightSource->SetSpecularPower(32.0f); mLightSource->SetDirection(0.0f, -1.0f, 0.0f); mLightSource->SetPosition(0.0f, 5.0f, 0.0f); //Add the floor addNewModel("data/smallsquare.obj", "data/red.tga", "data/stone.tga"); ModelClass* floor = (*mAllModels)[0]; floor->setScaleFactor(Vector3(10.0f, 1.0f, 1.0f)); floor->translate(Vector3(0.0f, -0.9f, 0.0f)); floor->rotate(Vector3(1.0f, 0.0f, 0.0f)); floor->setColor(Vector3(0.8039215686f, 0.78823529f, 0.78823529f)); //Add the sphere1 addNewModel("data/sphere.obj", "data/red.tga", "data/stone.tga"); ModelClass* sphere1 = (*mAllModels)[1]; sphere1->setScaleFactor(Vector3(0.5f, 0.5f, 0.5f)); sphere1->translate(Vector3(-1.0f, 0.0f, 0.0f)); //Add the sphere2 addNewModel("data/sphere.obj", "data/red.tga", "data/stone.tga"); ModelClass* sphere2 = (*mAllModels)[2]; sphere2->setScaleFactor(Vector3(0.5f, 0.5f, 0.5f)); sphere2->translate(Vector3(1.0f, 0.0f, 0.0f)); sphere2->setColor(Vector3(0.0f, 0.0f, 1.0f)); return true; }