2D camera that defines what region is shown on screen More...
#include <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 Matrix3 & | GetMatrix () const |
| Get the projection matrix of the view. | |
| const Matrix3 & | GetInverseMatrix () const |
| Get the inverse projection matrix 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:
sf::RenderWindow window; sf::View view; // Initialize the view to a rectangle located at (100, 100) and with a size of 400x200 view.Reset(sf::FloatRect(100, 100, 400, 200)); // Rotate it by 45 degrees view.Rotate(45); // Set its target viewport to be half of the window view.SetViewport(sf::FloatRect(0.f, 0.f, 0.5f, 1.f)); // Apply it window.SetView(view); // Render stuff window.Draw(someSprite); // Set the default view back window.SetView(window.GetDefaultView()); // Render stuff not affected by the view window.Draw(someText);
| sf::View::View | ( | ) |
Default constructor.
This constructor creates a default view of (0, 0, 1000, 1000)
| sf::View::View | ( | const FloatRect & | rectangle | ) | [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 Matrix3& sf::View::GetInverseMatrix | ( | ) | const |
Get the inverse projection matrix of the view.
This functions is meant for internal use only.
| const Matrix3& sf::View::GetMatrix | ( | ) | const |
Get the projection matrix of the view.
This functions 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 FloatRect& sf::View::GetViewport | ( | ) | const |
Get the target viewport rectangle of the view.
| void sf::View::Move | ( | float | offsetX, |
| float | offsetY | ||
| ) |
| void sf::View::Move | ( | const Vector2f & | offset | ) |
| 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 | ( | float | x, |
| float | y | ||
| ) |
| void sf::View::SetCenter | ( | const Vector2f & | center | ) |
| 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 |