ISceneObject* CreatePlayerObject() { IModeler* modeler2 = new WavefrontOBJModeler(); modeler2->LoadFromFile ( "marble.obj" ); modeler2->SetMaterial ( MaterialFactory::CreateMaterial ( RED_PLASTIC ) ); modeler2->Scale ( 0.5f, 0.5f, 0.5f ); modeler2->CenterAtOrigin(); SceneObject* marble = new SceneObject ( "Marble", Vector3d ( -1.f, -0.5f, 0.f ) ); marble->SetModeler ( modeler2, true ); marble->SetRenderer ( new GLSceneObjectRenderer(), true ); marble->SetAnimator ( &player, false ); marble->SetupBoundingBox(); return marble; }
ISceneObject* CreateWallObject(const string &name, const Vector3d &position) { IModeler* modeler = new WavefrontOBJModeler(); modeler->LoadFromFile ( "wall.obj" ); modeler->SetMaterial ( MaterialFactory::CreateMaterial ( PEARL ) ); modeler->Scale ( 0.1f, 0.6f, 1.f ); modeler->CenterAtOrigin(); modeler->RecalculateNormals(); SceneObject* object = new SceneObject (name, position); object->SetModeler ( modeler, true ); object->SetRenderer ( new GLSceneObjectRenderer(), true ); object->SetupBoundingBox(); IAnimator* animator = new MotionAnimator (name); object->SetAnimator ( animator, true ); return object; }
ISceneObject* CreateCubeObject() { WavefrontOBJModeler* modeler = new WavefrontOBJModeler(); modeler->LoadFromFile ( "cube.obj" ); modeler->SetMaterial ( MaterialFactory::CreateMaterial ( EMERALD ) ); modeler->RecalculateNormals(); modeler->Scale ( 0.25f, 0.25f, 0.25f ); modeler->CenterAtOrigin(); SceneObject* cube = new SceneObject ( "Cube", Vector3d ( 0.9f, -0.4f, 0.f ) ); cube->SetModeler ( modeler, true ); cube->SetRenderer ( new GLSceneObjectRenderer(), true ); cube->SetupBoundingBox(); MotionAnimator* animator = new MotionAnimator ( "Cube" ); cube->SetAnimator ( animator, true ); return cube; }