22 #ifndef FIFE_VIEW_CAMERA_H
23 #define FIFE_VIEW_CAMERA_H
35 #include "model/structures/location.h"
36 #include "util/structures/rect.h"
37 #include "util/math/matrix.h"
39 #include "rendererbase.h"
43 typedef Point3D ScreenPoint;
51 typedef std::map<Layer*, RenderList > t_layer_to_instances;
77 Camera(
const std::string&
id,
90 const std::string&
getId()
const {
return m_id; }
94 void setId(
const std::string&
id) { m_id = id; }
240 void getMatchingInstances(Location& loc, std::list<Instance*>& instances,
bool use_exactcoordinates=
false);
286 void setLightingColor(
float red,
float green,
float blue,
float alpha);
287 void resetLightingColor();
288 std::vector<float> getLightingColor();
295 friend class MapObserver;
296 void addLayer(
Layer* layer);
297 void removeLayer(
Layer* layer);
298 void updateMap(
Map* map);
308 void updateMatrices();
316 void updateReferenceScale();
338 unsigned int m_screen_cell_width;
339 unsigned int m_screen_cell_height;
340 double m_reference_scale;
345 std::map<Layer*, Point> m_image_dimensions;
349 std::map<std::string, RendererBase*> m_renderers;
350 std::list<RendererBase*> m_pipeline;
358 t_layer_to_instances m_layer_to_instances;
360 std::map<Layer*,LayerCache*> m_cache;
361 MapObserver* m_map_observer;
367 std::vector<float> m_light_colors;