void ObjectsLoader::Init( CompositeNode* l, MeshFileLoader* MeshLoader) {
	// Init Camera
	Camera* c = reinterpret_cast<Camera*>(l->GetByName("GlobalCamera"));
	M3DVector3f pos;
	m3dLoadVector3( pos, 0.0f, 0.0f, 10.0f );
    c->SetPosition( pos );
    c->SetPerspective(45.0f,(GLfloat)800/(GLfloat)600,0.1f,100.0f);

	// Load some Meshes
	Mesh* Rose = MeshLoader->Load("Objects/rose+vase.obj");
	Mesh* Soccerball = MeshLoader->Load("Objects/soccerball.obj");
	Mesh* Slotmachine = MeshLoader->Load("Objects/slot_machine.obj");
	Mesh* F16 = MeshLoader->Load("Objects/f-16.obj");
	Mesh* Shuttle = MeshLoader->Load("Objects/shuttle.obj");
	Mesh* Cessna = MeshLoader->Load("Objects/cessna.obj");

	// Build up Scenegraph
	c->AddChild(
		(new Transform(string("SlotMachineTransform")))->AddChild(
			(new Geometry(Slotmachine, string("SlotMachine")))
	));
	c->AddChild(
		(new Transform(string("RoseTransform")))->AddChild(
			(new Geometry(Rose, "Rose")))
	);
	c->AddChild(
		(new Transform(string("SoccerballTransform")))->AddChild(
			(new Geometry(Soccerball, "Soccerball")))
	);
	c->AddChild(
		(new Transform(string("F16Transform")))->AddChild(
			(new Geometry(F16, "F16")))
	);
	c->AddChild(
		(new Transform(string("ShuttleTransform")))->AddChild(
			(new Geometry(Shuttle, "Shuttle")))
	);
	c->AddChild(
		(new Transform(string("CessnaTransform")))->AddChild(
			(new Geometry(Cessna, "Cessna")))
	);

	Transform* t = reinterpret_cast<Transform*>(l->GetByName("SlotMachineTransform"));
	t->Translate(-3.0f, 0.0f, 0.0f);
	t->Scale(0.1f, 0.1f, 0.1f);

	t = reinterpret_cast<Transform*>(l->GetByName("RoseTransform"));
	t->Translate(2.0f, 0.0f, 0.0f);
	t->Scale(0.02f, 0.02f, 0.02f);

	t = reinterpret_cast<Transform*>(l->GetByName("SoccerballTransform"));
	t->Scale(0.15f, 0.15f, 0.15f);

	t = reinterpret_cast<Transform*>(l->GetByName("F16Transform"));
	t->Translate(4.0f, 1.2f, 0.0f);
	t->Scale(0.4f, 0.4f, 0.4f);

	t = reinterpret_cast<Transform*>(l->GetByName("ShuttleTransform"));
	t->Translate(-3.5f, 2.3f, 0.0f);
	t->Scale(0.2f, 0.2f, 0.2f);

	t = reinterpret_cast<Transform*>(l->GetByName("CessnaTransform"));
	t->Translate(0.0f, 2.5f, 0.0f);
	t->Scale(0.05f, 0.05f, 0.05f);
}