Added Lighting recently to my game engine. Also, will need to port CStyle pointers to C++ 11 style pointers.
Here are some of the examples:
Directional Light
reference = new DirectionalLight(L"MyLight1", GetGameRenderState());
shared_ptr light = reference->GetProperty();
light->SetAmbient(XMFLOAT3(0.2f, 0.2f, 0.2f));
light->SetDiffuse(XMFLOAT3(0.5f, 0.5f, 0.5f));
light->SetSpecular(XMFLOAT3(0.5f, 0.5f, 0.5f));
light->SetDirection(XMFLOAT3(0.0f, -1.0f, 0.0f));
AddObject(reference);
Point Light
reference = new PointLight(L"MyLight1", GetGameRenderState());
shared_ptr light = reference->GetProperty();
light->SetAmbient(XMFLOAT3(0.2f, 0.2f, 0.2f));
light->SetDiffuse(XMFLOAT3(0.5f, 0.5f, 0.5f));
light->SetSpecular(XMFLOAT3(0.5f, 0.5f, 0.5f));
light->SetAttenuation(XMFLOAT3(0.0f, 0.5f, 0.0f));
light->SetRange(25.0f);
reference->SetPosition(0.0f, 5.0f, 0.0f);
AddObject(reference);
Spot Light
reference = new SpotLight(L"MyLight1", GetGameRenderState());
shared_ptr light = reference->GetProperty();
light->SetAmbient(XMFLOAT3(0.2f, 0.2f, 0.2f));
light->SetDiffuse(XMFLOAT3(0.5f, 0.5f, 0.5f));
light->SetSpecular(XMFLOAT3(0.5f, 0.5f, 0.5f));
light->SetDirection(XMFLOAT3(0.0f, -1.0f, 0.0f));
light->SetSpot(2.0f);
light->SetRange(25.0f);
light->SetAttenuation(XMFLOAT3(0.0f, 0.5f, 0.0f));
reference->SetPosition(0.0f, 5.0f, 0.0f);
AddObject(reference);