Nice!
What exactly is the reason for leaving out the include files & guards?
Also could you (or am I allowed to) format the main loop a bit better? I mean at the moment it's just a hugh block of code which seems quite hard to read. Or is there a reason why you don't insert spaces/break lines?
So this
while(app.pollEvent(eve))if(eve.type==sf::Event::Closed)app.close();
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Q))cam.zoom(1.05f);
if(sf::Keyboard::isKeyPressed(sf::Keyboard::W))cam.move(0.f,-10.f);
if(sf::Keyboard::isKeyPressed(sf::Keyboard::E))cam.zoom(0.95f);
if(sf::Keyboard::isKeyPressed(sf::Keyboard::A))cam.move(-10.f,0.f);
if(sf::Keyboard::isKeyPressed(sf::Keyboard::S))cam.move(0.f,10.f);
if(sf::Keyboard::isKeyPressed(sf::Keyboard::D))cam.move(10.f,0.f);
Would turn into this
while(app.pollEvent(eve))
if(eve.type==sf::Event::Closed)
app.close();
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Q))
cam.zoom(1.05f);
if(sf::Keyboard::isKeyPressed(sf::Keyboard::W))
cam.move(0.f,-10.f);
if(sf::Keyboard::isKeyPressed(sf::Keyboard::E))
cam.zoom(0.95f);
if(sf::Keyboard::isKeyPressed(sf::Keyboard::A))
cam.move(-10.f,0.f);
if(sf::Keyboard::isKeyPressed(sf::Keyboard::S))
cam.move(0.f,10.f);
if(sf::Keyboard::isKeyPressed(sf::Keyboard::D))
cam.move(10.f,0.f);
Or at least add a space after the if-statement, so one can differentiat what is the check and what is the action with one look.