Class Viewport<T>
Implements IGridView<T> to expose a "viewport", or sub-area, of another grid view. Its indexers perform relative to absolute coordinate translations based on the viewport size/location, and return the proper value of type T from the underlying view.
Implements
Inherited Members
Namespace: SadRogue.Primitives.GridViews
Assembly: TheSadRogue.Primitives.dll
Syntax
public class Viewport<T> : GridViewBase<T>, IGridView<T>
Type Parameters
Name | Description |
---|---|
T | The type being exposed by the Viewport. |
Remarks
This implementation restricts the subsection of the view that is presented in such a way that no part of the viewport can be outside the boundary of its parent grid view. The viewport cannot be bigger than the underlying grid view, and the viewport's position is "locked" to the edge so that it cannot be set in such a way that a portion of the viewport lies outside the bounds of the parent view. If you would rather allow this and return a default value for locations outside the parent grid view, see UnboundedViewport<T>.
Constructors
Viewport(IGridView<T>)
Constructor. Takes the map view to represent. The viewport will represent the entire given map view.
Declaration
public Viewport(IGridView<T> gridView)
Parameters
Type | Name | Description |
---|---|---|
IGridView<T> | gridView | The map view to represent. |
Viewport(IGridView<T>, Rectangle)
Constructor. Takes the parent grid view, and the initial subsection of that grid view to represent.
Declaration
public Viewport(IGridView<T> gridView, Rectangle viewArea)
Parameters
Type | Name | Description |
---|---|---|
IGridView<T> | gridView | The grid view being represented. |
Rectangle | viewArea | The initial subsection of that grid view to represent. |
Properties
GridView
The grid view that this Viewport is exposing values from.
Declaration
public IGridView<T> GridView { get; }
Property Value
Type | Description |
---|---|
IGridView<T> |
Height
The height of the area being represented.
Declaration
public override int Height { get; }
Property Value
Type | Description |
---|---|
Int32 |
Overrides
Item[Point]
Given a position in relative coordinates, returns the "value" associated with that location in absolute coordinates.
Declaration
public override T this[Point relativePosition] { get; }
Parameters
Type | Name | Description |
---|---|---|
Point | relativePosition | Viewport-relative position of the location to retrieve the value for. |
Property Value
Type | Description |
---|---|
T | The "value" associated with the absolute location represented on the underlying grid view. |
Overrides
ViewArea
The area of GridView that this Viewport is exposing. Use SetViewArea(Rectangle) to set the viewing area.
Declaration
public ref readonly Rectangle ViewArea { get; }
Property Value
Type | Description |
---|---|
Rectangle |
Width
The width of the area being represented.
Declaration
public override int Width { get; }
Property Value
Type | Description |
---|---|
Int32 |
Overrides
Methods
SetViewArea(Rectangle)
Sets the viewing area for the viewport to the value given. The viewport will automatically be bounded as needed to ensure that it remains within the bounds of the underlying IGridView.
Declaration
public void SetViewArea(Rectangle viewArea)
Parameters
Type | Name | Description |
---|---|---|
Rectangle | viewArea | The new view area. |
ToString()
Returns a string representation of the grid values inside the viewport.
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
String | A string representation of the values inside the viewport. |
ToString(Func<T, String>)
Returns a string representation of the grid values inside the viewport, using
elementStringifier
to determine what string represents each value.
Declaration
public string ToString(Func<T, string> elementStringifier)
Parameters
Type | Name | Description |
---|---|---|
Func<T, String> | elementStringifier | Function determining the string representation of each element. |
Returns
Type | Description |
---|---|
String | A string representation of the grid values inside the viewport. |
ToString(Int32, Func<T, String>)
Returns a string representation of the grid values inside the viewport, using the function specified to turn elements into strings, and using the "field length" specified.
Declaration
public string ToString(int fieldSize, Func<T, string> elementStringifier = null)
Parameters
Type | Name | Description |
---|---|---|
Int32 | fieldSize | The size of the field to give each value. A positive-number right-aligns the text within the field, while a negative number left-aligns the text. |
Func<T, String> | elementStringifier | Function to use to convert each element to a string. null defaults to the ToString function of type T. |
Returns
Type | Description |
---|---|
String | A string representation of the grid values inside the viewport. |
Remarks
Each element of type T will have spaces added to cause it to take up exactly
fieldSize
characters, provided fieldSize
is less than the length of the element's string representation.