#include <camera.h>


Public Member Functions | |
| Camera (const std::string &id, Layer *layer, const Rect &viewport, RenderBackend *renderbackend) | |
| virtual | ~Camera () |
| const std::string & | getId () const |
| void | setId (const std::string &id) |
| void | setTilt (double tilt) |
| double | getTilt () const |
| void | setRotation (double rotation) |
| double | getRotation () const |
| void | setZoom (double zoom) |
| double | getZoom () const |
| void | setCellImageDimensions (uint32_t width, uint32_t height) |
| Point | getCellImageDimensions () |
| Point | getCellImageDimensions (Layer *layer) |
| double | getReferenceScale () const |
| Point3D | getZOffset (Layer *layer) |
| void | setLocation (const Location &location) |
| Location | getLocation () const |
| Point3D | getOrigin () const |
| Location & | getLocationRef () |
| void | attach (Instance *instance) |
| void | detach () |
| Instance * | getAttached () const |
| void | setViewPort (const Rect &viewport) |
| const Rect & | getViewPort () const |
| ExactModelCoordinate | toMapCoordinates (ScreenPoint screen_coords, bool z_calculated=true) |
| ScreenPoint | toScreenCoordinates (const ExactModelCoordinate &map_coords) |
| DoublePoint3D | toVirtualScreenCoordinates (const ExactModelCoordinate &map_coords) |
| void | setEnabled (bool enabled) |
| bool | isEnabled () |
| void | getMatchingInstances (ScreenPoint screen_coords, Layer &layer, std::list< Instance * > &instances, uint8_t alpha=0) |
| void | getMatchingInstances (Rect screen_rect, Layer &layer, std::list< Instance * > &instances, uint8_t alpha=0) |
| void | getMatchingInstances (Location &loc, std::list< Instance * > &instances, bool use_exactcoordinates=false) |
| void | update () |
| void | refresh () |
| void | resetUpdates () |
| void | addRenderer (RendererBase *renderer) |
| RendererBase * | getRenderer (const std::string &name) |
| void | resetRenderers () |
| void | calculateZValue (ScreenPoint &screen_coords) |
| void | setLightingColor (float red, float green, float blue) |
| void | resetLightingColor () |
| std::vector< float > | getLightingColor () |
| void | setOverlayColor (uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha) |
| std::vector< uint8_t > | getOverlayColor () |
| void | resetOverlayColor () |
| void | setOverlayImage (int32_t id, bool fill=false) |
| int32_t | getOverlayImage () |
| void | resetOverlayImage () |
| void | setOverlayAnimation (AnimationPtr anim, bool fill=false) |
| AnimationPtr | getOverlayAnimation () |
| void | resetOverlayAnimation () |
| void | render () |
Camera describes properties of a view port shown in the main screen Main screen can have multiple cameras active simultanously Different cameras can have different properties, like location to shoot, zoom or tilt
Definition at line 58 of file camera.h.
| FIFE::Camera::Camera | ( | const std::string & | id, | |
| Layer * | layer, | |||
| const Rect & | viewport, | |||
| RenderBackend * | renderbackend | |||
| ) |
Constructor Camera needs to be added to the view. If not done so, it is not rendered.
| id | identifier for the camera | |
| layer | layer where camera is bound. Camera is bound to a layer for two reasons: * camera's scaling is done based on cell image dimensions. Cell image is layer based ( |
| viewport | used viewport for the camera. Viewport is measured in pixels in relation to game main screen | |
| emc | coordinate, where camera is focused on given layer | |
| renderbackend | to use with rendering | |
| ipool | to use with rendering | |
| apool | to use with rendering |
Definition at line 74 of file camera.cpp.
| FIFE::Camera::~Camera | ( | ) | [virtual] |
Destructor
Definition at line 112 of file camera.cpp.
| void FIFE::Camera::addRenderer | ( | RendererBase * | renderer | ) |
Adds new renderer on the view. Ownership is transferred to the camera.
Definition at line 610 of file camera.cpp.
Referenced by FIFE::Map::addCamera().

| void FIFE::Camera::attach | ( | Instance * | instance | ) |
Attaches the camera to an instance.
| instance | Instance to which the camera shall be attached |
Definition at line 573 of file camera.cpp.
| void FIFE::Camera::calculateZValue | ( | ScreenPoint & | screen_coords | ) |
calculates z-value for given screenpoint
Definition at line 316 of file camera.cpp.
| void FIFE::Camera::detach | ( | ) |
Detaches the camera from an instance.
Definition at line 582 of file camera.cpp.
| Instance* FIFE::Camera::getAttached | ( | ) | const [inline] |
Gets screen cell image dimensions for given layer.
Definition at line 230 of file camera.cpp.
| Point FIFE::Camera::getCellImageDimensions | ( | ) |
Gets screen cell image dimensions.
Definition at line 226 of file camera.cpp.
| const std::string& FIFE::Camera::getId | ( | ) | const [inline] |
| std::vector< float > FIFE::Camera::getLightingColor | ( | ) |
Returns a vector that contain the light color
Definition at line 665 of file camera.cpp.
| Location FIFE::Camera::getLocation | ( | ) | const |
Gets the location camera is rendering
Definition at line 248 of file camera.cpp.
| Location & FIFE::Camera::getLocationRef | ( | ) |
Gets a reference to the camera location
Definition at line 252 of file camera.cpp.
| void FIFE::Camera::getMatchingInstances | ( | Location & | loc, | |
| std::list< Instance * > & | instances, | |||
| bool | use_exactcoordinates = false | |||
| ) |
Returns instances that match given location. Instances are sorted based on camera view, so that "topmost" instance is first in returned list
| loc | location where to fetch instances from | |
| instances | list of instances that is filled based on hit test results | |
| use_exactcoordinates | if true, comparison is done using exact coordinates. if not, cell coordinates are used |
Definition at line 548 of file camera.cpp.
| void FIFE::Camera::getMatchingInstances | ( | ScreenPoint | screen_coords, | |
| Layer & | layer, | |||
| std::list< Instance * > & | instances, | |||
| uint8_t | alpha = 0 | |||
| ) |
Returns instances that match given screen coordinate
| screen_coords | screen coordinates to be used for hit search | |
| layer | layer to use for search | |
| instances | list of instances that is filled based on hit test results |
Definition at line 462 of file camera.cpp.
| void FIFE::Camera::getMatchingInstances | ( | Rect | screen_rect, | |
| Layer & | layer, | |||
| std::list< Instance * > & | instances, | |||
| uint8_t | alpha = 0 | |||
| ) |
Returns instances that match given screen coordinate
| screen_rect | rect that contains screen coordinates to be used for search | |
| layer | layer to use for search | |
| instances | list of instances that is filled based on hit test results | |
| accurate | should be true if the search should be exactly but its also much slower |
Definition at line 500 of file camera.cpp.
| Point3D FIFE::Camera::getOrigin | ( | ) | const |
Gets screen point for the camera location
Definition at line 272 of file camera.cpp.
| AnimationPtr FIFE::Camera::getOverlayAnimation | ( | ) |
Returns an AnimationPtr to the overlay animation
Definition at line 732 of file camera.cpp.
| std::vector< uint8_t > FIFE::Camera::getOverlayColor | ( | ) |
Returns a vector that contain the overlay color
Definition at line 687 of file camera.cpp.
| int32_t FIFE::Camera::getOverlayImage | ( | ) |
Returns the pool id of the overlay image
Definition at line 712 of file camera.cpp.
| double FIFE::Camera::getReferenceScale | ( | ) | const [inline] |
| RendererBase * FIFE::Camera::getRenderer | ( | const std::string & | name | ) | [virtual] |
Gets renderer with given name
Implements FIFE::IRendererContainer.
Definition at line 634 of file camera.cpp.
| double FIFE::Camera::getRotation | ( | ) | const |
| double FIFE::Camera::getTilt | ( | ) | const |
| const Rect & FIFE::Camera::getViewPort | ( | ) | const |
Gets a point that contain the visual z(z=1) difference, based on the given layer.
Definition at line 407 of file camera.cpp.
| double FIFE::Camera::getZoom | ( | ) | const |
| bool FIFE::Camera::isEnabled | ( | ) |
Gets if camera is enabled / disabled
Definition at line 268 of file camera.cpp.
| void FIFE::Camera::refresh | ( | ) |
Refreshes camera view in case e.g. location is updated directly (not via setLocation)
Definition at line 596 of file camera.cpp.
| void FIFE::Camera::render | ( | ) |
Renders camera
Definition at line 824 of file camera.cpp.
| void FIFE::Camera::resetLightingColor | ( | ) |
Resets lighting color
Definition at line 674 of file camera.cpp.
| void FIFE::Camera::resetOverlayAnimation | ( | ) |
Resets the animation overlay
Definition at line 736 of file camera.cpp.
| void FIFE::Camera::resetOverlayColor | ( | ) |
Resets the color overlay
Definition at line 702 of file camera.cpp.
| void FIFE::Camera::resetOverlayImage | ( | ) |
Resets the image overlay
Definition at line 720 of file camera.cpp.
| void FIFE::Camera::resetRenderers | ( | ) |
resets active layer information on all renderers.
Definition at line 638 of file camera.cpp.
| void FIFE::Camera::resetUpdates | ( | ) |
Resets temporary values from last update round, like warped flag
Definition at line 601 of file camera.cpp.
| void FIFE::Camera::setCellImageDimensions | ( | uint32_t | width, | |
| uint32_t | height | |||
| ) |
Sets screen cell image dimensions. Cell image dimension is basically width and height of a bitmap, that covers one cell in the layer where camera is bind
Definition at line 166 of file camera.cpp.
| void FIFE::Camera::setEnabled | ( | bool | enabled | ) |
Sets camera enabled / disabled
Definition at line 264 of file camera.cpp.
| void FIFE::Camera::setId | ( | const std::string & | id | ) | [inline] |
| void FIFE::Camera::setLightingColor | ( | float | red, | |
| float | green, | |||
| float | blue | |||
| ) |
Sets lighting color
Definition at line 657 of file camera.cpp.
| void FIFE::Camera::setLocation | ( | const Location & | location | ) |
Sets the location for camera
| location | location (center point) to render |
Definition at line 174 of file camera.cpp.
| void FIFE::Camera::setOverlayAnimation | ( | AnimationPtr | anim, | |
| bool | fill = false | |||
| ) |
Sets a animation as overlay, if fill is true the animation gets the viewport size.
Definition at line 725 of file camera.cpp.
| void FIFE::Camera::setOverlayColor | ( | uint8_t | red, | |
| uint8_t | green, | |||
| uint8_t | blue, | |||
| uint8_t | alpha | |||
| ) |
Sets a color as overlay
Definition at line 679 of file camera.cpp.
| void FIFE::Camera::setOverlayImage | ( | int32_t | id, | |
| bool | fill = false | |||
| ) |
Sets a image as overlay, if fill is true the image gets the viewport size.
Definition at line 706 of file camera.cpp.
| void FIFE::Camera::setRotation | ( | double | rotation | ) |
Sets rotation for the camera. Rotation can be visualized by thinking camera that rotates around an object that it is rendering
| rotation | rotation for the camera |
Definition at line 138 of file camera.cpp.
| void FIFE::Camera::setTilt | ( | double | tilt | ) |
Sets tilt for the camera. e.g. overhead camera has tilt 0, while traditional isometric camera has tilt 45
| tilt | tilt for the camera |
Definition at line 125 of file camera.cpp.
| void FIFE::Camera::setViewPort | ( | const Rect & | viewport | ) |
Sets the viewport for camera viewport is rectangle inside the view where camera renders
| viewport | area for camera render |
Definition at line 256 of file camera.cpp.
| void FIFE::Camera::setZoom | ( | double | zoom | ) |
Sets zoom for the camera.
| zoom | zoom for the camera |
Definition at line 151 of file camera.cpp.
| ExactModelCoordinate FIFE::Camera::toMapCoordinates | ( | ScreenPoint | screen_coords, | |
| bool | z_calculated = true | |||
| ) |
Transforms given point from screen coordinates to map coordinates
| screen_coords | screen coordinates to transform | |
| z_calculated | if true, z-value (depth cut point) is pre-calculated. If false, camera calculates it |
Definition at line 321 of file camera.cpp.
| ScreenPoint FIFE::Camera::toScreenCoordinates | ( | const ExactModelCoordinate & | map_coords | ) |
Transforms given point from map coordinates to screen coordinates
Definition at line 328 of file camera.cpp.
| DoublePoint3D FIFE::Camera::toVirtualScreenCoordinates | ( | const ExactModelCoordinate & | map_coords | ) |
Transforms given point from map coordinates to virtual screen coordinates
Definition at line 333 of file camera.cpp.
| void FIFE::Camera::update | ( | ) |
General update routine. In this function, the camera's position gets updated when its attached to another instance.
Definition at line 586 of file camera.cpp.
1.7.1