Class for representing a viewport. More...
#include <Inventor/SbViewportRegion.h>
Public Member Functions | |
SbViewportRegion () | |
SbViewportRegion (short width, short height, float newScale=1.0) | |
SbViewportRegion (SbVec2s winSize, float newScale=1.0) | |
SbViewportRegion (SbVec2i32 winSize, float newScale=1.0) | |
SbViewportRegion (const SbViewportRegion &vpReg) | |
void | setWindowSize (short width, short height) |
void | setWindowSize (SbVec2s winSize) |
void | setWindowSize (SbVec2i32 winSize) |
void | setViewport (float left, float bottom, float width, float height) |
void | setViewport (SbVec2f origin, SbVec2f size) |
void | setViewportPixels (short left, short bottom, short width, short height) |
void | setViewportPixels (SbVec2s origin, SbVec2s size) |
void | setViewportPixels (SbVec2i32 origin, SbVec2i32 size) |
const SbVec2s & | getWindowSize () const |
const SbVec2i32 & | getWindowSize_i32 () const |
const SbVec2f & | getViewportOrigin () const |
const SbVec2s & | getViewportOriginPixels () const |
const SbVec2i32 & | getViewportOriginPixels_i32 () const |
const SbVec2f & | getViewportSize () const |
const SbVec2s & | getViewportSizePixels () const |
const SbVec2i32 & | getViewportSizePixels_i32 () const |
float | getViewportAspectRatio () const |
void | scaleWidth (float ratio) |
void | scaleHeight (float ratio) |
void | setPixelsPerInch (float ppi) |
float | getPixelsPerInch () const |
float | getPixelsPerPoint () const |
SbVec2f | normalize (const SbVec2s &position) const |
Friends | |
int | operator== (const SbViewportRegion ®1, const SbViewportRegion ®2) |
Class for representing a viewport.
This class represents the active viewport region in a display window. It contains the screen-space (pixels) size of the window as well as the origin and size of the viewport within the window. The viewport origin and size is stored both as pixel values and as normalized values (fraction of the window).
Initially the viewport is the same as the full window. Methods allow the viewport to be set either in terms of screen-space pixels or as normalized coordinates, where (0,0) is the lower-left corner of the window and (1,1) is the upper-right corner.
Remember that getWindowSize() returns the size of the window, not the viewport. Always call getViewportOriginPixels() and getViewportSizePixels() if you need the actual viewport in pixels.
Also remember:
The normalize() method is convenient for normalizing a point, but note that it normalizes to the range 0..1 and some Open Inventor classes expect values normalized to the the range -1..1. Currently you must do this normalization yourself.
SbViewportRegion::SbViewportRegion | ( | ) |
Default constructor.
Sets window size and viewport to default 100 x 100 pixels.
SbViewportRegion::SbViewportRegion | ( | short | width, | |
short | height, | |||
float | newScale = 1.0 | |||
) |
Constructor that takes width and a height in pixels.
Sets the window and the viewport.
SbViewportRegion::SbViewportRegion | ( | SbVec2s | winSize, | |
float | newScale = 1.0 | |||
) |
Constructor that takes width and a height in pixels.
Sets the window and the viewport.
SbViewportRegion::SbViewportRegion | ( | SbVec2i32 | winSize, | |
float | newScale = 1.0 | |||
) |
Constructor that takes width and a height in pixels.
Sets the window and the viewport.
SbViewportRegion::SbViewportRegion | ( | const SbViewportRegion & | vpReg | ) |
Constructor that takes a viewport region.
float SbViewportRegion::getPixelsPerInch | ( | ) | const [inline] |
Returns the pixel-per-inch ratio for the display device the viewport is part of.
float SbViewportRegion::getPixelsPerPoint | ( | ) | const [inline] |
Convenience function that returns number of pixels per printer's point.
float SbViewportRegion::getViewportAspectRatio | ( | ) | const |
Returns aspect ratio (width/height) of viewport.
const SbVec2f& SbViewportRegion::getViewportOrigin | ( | ) | const [inline] |
Returns viewport origin in 0..1 normalized coordinates relative to the current window size.
const SbVec2s& SbViewportRegion::getViewportOriginPixels | ( | ) | const |
Returns viewport origin in pixels.
const SbVec2i32& SbViewportRegion::getViewportOriginPixels_i32 | ( | ) | const |
Returns viewport origin in pixels.
const SbVec2f& SbViewportRegion::getViewportSize | ( | ) | const [inline] |
Returns viewport size in 0..1 normalized coordinates relative to the current window size.
const SbVec2s& SbViewportRegion::getViewportSizePixels | ( | ) | const |
Returns viewport size in pixels.
const SbVec2i32& SbViewportRegion::getViewportSizePixels_i32 | ( | ) | const |
Returns viewport size in pixels.
const SbVec2s& SbViewportRegion::getWindowSize | ( | ) | const |
Returns window size in pixels.
NOTE: By default this is also the viewport size in pixels, but in general this is not the viewport size. Use getViewportSizePixels().
const SbVec2i32& SbViewportRegion::getWindowSize_i32 | ( | ) | const |
Returns window size in pixels.
NOTE: By default this is also the viewport size in pixels, but in general this is not the viewport size. Use getViewportSizePixels().
Compute the 0..1 normalized coordinates of the specified pixel position, relative to the current viewport (not window).
position | in pixel coordinates |
void SbViewportRegion::scaleHeight | ( | float | ratio | ) |
Scales viewport within window to be the given ratio of its current height, leaving the resulting viewport centered about the same point as the current one.
void SbViewportRegion::scaleWidth | ( | float | ratio | ) |
Scales viewport within window to be the given ratio of its current width, leaving the resulting viewport centered about the same point as the current one.
void SbViewportRegion::setPixelsPerInch | ( | float | ppi | ) | [inline] |
Sets the pixel-per-inch ratio for the display device the viewport is part of.
The default value is 72 (1 pixel per printer's point).
Currently this value is only used by SoOffscreenRenderer::writeToPostScript().
Sets viewport to given region, specified as normalized coordinates relative to the current window size, where (0,0) is the lower-left corner and (1,1) is the upper-right.
The viewport origin and size in pixels are recomputed.
void SbViewportRegion::setViewport | ( | float | left, | |
float | bottom, | |||
float | width, | |||
float | height | |||
) | [inline] |
Sets viewport to given region, specified as normalized coordinates relative to the current window size, where (0,0) is the lower-left corner and (1,1) is the upper-right.
The normalized values are applied to the current window size to compute a new viewport origin and size in pixels.
Sets viewport to region with given origin (lower-left corner) and size, given as pixel coordinates.
The normalized viewport origin and size are recomputed. The specified values are not clamped to the window size.
Sets viewport to region with given origin (lower-left corner) and size, given as pixel coordinates.
The normalized viewport origin and size are recomputed. The specified values are not clamped to the window size.
void SbViewportRegion::setViewportPixels | ( | short | left, | |
short | bottom, | |||
short | width, | |||
short | height | |||
) | [inline] |
Sets viewport to given region, specified as pixel coordinates in window: (0,0) is the lower-left corner.
The normalized viewport origin and size are recomputed. The specified values are not clamped to the window size.
void SbViewportRegion::setWindowSize | ( | SbVec2i32 | winSize | ) |
Changes window size to given width and height in pixels, given as SbVec2i32.
If viewport has not been explicitly set by the application, the viewport is also changed to the specified width and height. If the viewport has been explicitly set, then the stored normalized values are applied to the new window to compute a new viewport origin and size in pixels.
void SbViewportRegion::setWindowSize | ( | SbVec2s | winSize | ) |
Changes window size to given width and height in pixels, given as SbVec2s.
If viewport has not been explicitly set by the application, the viewport is also changed to the specified width and height. If the viewport has been explicitly set, then the stored normalized values are applied to the new window to compute a new viewport origin and size in pixels.
void SbViewportRegion::setWindowSize | ( | short | width, | |
short | height | |||
) | [inline] |
Changes window size to given width and height in pixels.
If viewport has not been explicitly set by the application, the viewport is also changed to the specified width and height. If the viewport has been explicitly set, then the stored normalized values are applied to the new window to compute a new viewport origin and size in pixels.
int operator== | ( | const SbViewportRegion & | reg1, | |
const SbViewportRegion & | reg2 | |||
) | [friend] |
Equality comparison operator.