22 #ifndef FIFE_VIEW_CAMERA_H
23 #define FIFE_VIEW_CAMERA_H
36 #include "model/structures/location.h"
37 #include "util/structures/rect.h"
38 #include "util/math/matrix.h"
39 #include "video/animation.h"
41 #include "rendererbase.h"
45 typedef Point3D ScreenPoint;
51 typedef std::map<Layer*, RenderList > t_layer_to_instances;
77 Camera(
const std::string&
id,
88 const std::string&
getId()
const {
return m_id; }
92 void setId(
const std::string&
id) { m_id = id; }
250 void getMatchingInstances(Location& loc, std::list<Instance*>& instances,
bool use_exactcoordinates=
false);
306 void setOverlayColor(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha);
347 friend class MapObserver;
348 void addLayer(
Layer* layer);
349 void removeLayer(
Layer* layer);
350 void updateMap(
Map* map);
360 void updateMatrices();
368 void updateReferenceScale();
372 void updateRenderLists();
376 void cacheUpdate(
Layer* layer);
388 void renderOverlay();
405 uint32_t m_screen_cell_width;
406 uint32_t m_screen_cell_height;
407 double m_reference_scale;
411 std::map<Layer*, Point> m_image_dimensions;
415 std::map<std::string, RendererBase*> m_renderers;
416 std::list<RendererBase*> m_pipeline;
422 t_layer_to_instances m_layer_to_instances;
424 std::map<Layer*,LayerCache*> m_cache;
425 MapObserver* m_map_observer;
431 std::vector<float> m_light_colors;
437 SDL_Color m_overlay_color;
442 uint32_t m_start_time;