Warning
This page refers to an old version of SFML. Click here to switch to the latest version.
Warning
This page refers to an old version of SFML. Click here to switch to the latest version.
2D camera that defines what region is shown on screen More...
#include <SFML/Graphics/View.hpp>
Public Member Functions | |
| View () | |
| Default constructor. | |
| View (const FloatRect &rectangle) | |
| Construct the view from a rectangle. | |
| View (const Vector2f ¢er, const Vector2f &size) | |
| Construct the view from its center and size. | |
| void | setCenter (float x, float y) |
| Set the center of the view. | |
| void | setCenter (const Vector2f ¢er) |
| Set the center of the view. | |
| void | setSize (float width, float height) |
| Set the size of the view. | |
| void | setSize (const Vector2f &size) |
| Set the size of the view. | |
| void | setRotation (float angle) |
| Set the orientation of the view. | |
| void | setViewport (const FloatRect &viewport) |
| Set the target viewport. | |
| void | reset (const FloatRect &rectangle) |
| Reset the view to the given rectangle. | |
| const Vector2f & | getCenter () const |
| Get the center of the view. | |
| const Vector2f & | getSize () const |
| Get the size of the view. | |
| float | getRotation () const |
| Get the current orientation of the view. | |
| const FloatRect & | getViewport () const |
| Get the target viewport rectangle of the view. | |
| void | move (float offsetX, float offsetY) |
| Move the view relatively to its current position. | |
| void | move (const Vector2f &offset) |
| Move the view relatively to its current position. | |
| void | rotate (float angle) |
| Rotate the view relatively to its current orientation. | |
| void | zoom (float factor) |
| Resize the view rectangle relatively to its current size. | |
| const Transform & | getTransform () const |
| Get the projection transform of the view. | |
| const Transform & | getInverseTransform () const |
| Get the inverse projection transform of the view. | |
2D camera that defines what region is shown on screen
sf::View defines a camera in the 2D scene.
This is a very powerful concept: you can scroll, rotate or zoom the entire scene without altering the way that your drawable objects are drawn.
A view is composed of a source rectangle, which defines what part of the 2D scene is shown, and a target viewport, which defines where the contents of the source rectangle will be displayed on the render target (window or texture).
The viewport allows to map the scene to a custom part of the render target, and can be used for split-screen or for displaying a minimap, for example. If the source rectangle has not the same size as the viewport, its contents will be stretched to fit in.
To apply a view, you have to assign it to the render target. Then, every objects drawn in this render target will be affected by the view until you use another view.
Usage example:
See also the note on coordinates and undistorted rendering in sf::Transformable.
| sf::View::View | ( | ) |
Default constructor.
This constructor creates a default view of (0, 0, 1000, 1000)
|
explicit |
Construct the view from a rectangle.
| rectangle | Rectangle defining the zone to display |
Construct the view from its center and size.
| center | Center of the zone to display |
| size | Size of zone to display |
| const Vector2f & sf::View::getCenter | ( | ) | const |
| const Transform & sf::View::getInverseTransform | ( | ) | const |
Get the inverse projection transform of the view.
This function is meant for internal use only.
| float sf::View::getRotation | ( | ) | const |
Get the current orientation of the view.
| const Vector2f & sf::View::getSize | ( | ) | const |
| const Transform & sf::View::getTransform | ( | ) | const |
Get the projection transform of the view.
This function is meant for internal use only.
| const FloatRect & sf::View::getViewport | ( | ) | const |
Get the target viewport rectangle of the view.
| void sf::View::move | ( | const Vector2f & | offset | ) |
| void sf::View::move | ( | float | offsetX, |
| float | offsetY ) |
| void sf::View::reset | ( | const FloatRect & | rectangle | ) |
Reset the view to the given rectangle.
Note that this function resets the rotation angle to 0.
| rectangle | Rectangle defining the zone to display |
| void sf::View::rotate | ( | float | angle | ) |
Rotate the view relatively to its current orientation.
| angle | Angle to rotate, in degrees |
| void sf::View::setCenter | ( | const Vector2f & | center | ) |
| void sf::View::setCenter | ( | float | x, |
| float | y ) |
| void sf::View::setRotation | ( | float | angle | ) |
Set the orientation of the view.
The default rotation of a view is 0 degree.
| angle | New angle, in degrees |
| void sf::View::setSize | ( | const Vector2f & | size | ) |
| void sf::View::setSize | ( | float | width, |
| float | height ) |
| void sf::View::setViewport | ( | const FloatRect & | viewport | ) |
Set the target viewport.
The viewport is the rectangle into which the contents of the view are displayed, expressed as a factor (between 0 and 1) of the size of the RenderTarget to which the view is applied. For example, a view which takes the left side of the target would be defined with View.setViewport(sf::FloatRect(0, 0, 0.5, 1)). By default, a view has a viewport which covers the entire target.
| viewport | New viewport rectangle |
| void sf::View::zoom | ( | float | factor | ) |
Resize the view rectangle relatively to its current size.
Resizing the view simulates a zoom, as the zone displayed on screen grows or shrinks. factor is a multiplier:
| factor | Zoom factor to apply |