Gamedev Framework (gf)  0.17.0
A C++14 framework for 2D games
Public Member Functions | List of all members
gf::HexagonGrid Class Reference

A hexagonal grid. More...

#include <gf/Grid.h>

Inheritance diagram for gf::HexagonGrid:
Inheritance graph
[legend]

Public Member Functions

 HexagonGrid (MapCellAxis axis, MapCellIndex index, Vector2i gridSize, float radius, const Color4f &color, float lineWidth=1.0f)
 Constructor. More...
 
void setGridSize (Vector2i gridSize)
 Set the grid size. More...
 
Vector2i getGridSize () const noexcept
 Get the grid size. More...
 
void setRadius (float radius)
 Set the radius of hexagon. More...
 
float getRadius () const noexcept
 Get the radius of hexagon. More...
 
Vector2f getHexagonSize () const noexcept
 Get the hexagon size. More...
 
void setColor (const Color4f &color)
 Set the color of the grid frame. More...
 
const Color4fgetColor () const noexcept
 Get the color of the grid frame. More...
 
void setLineWidth (float lineWidth) noexcept
 Set the width of the grid frame. More...
 
float getLineWidth () const noexcept
 Get the width of the grid frame. More...
 
RectF getLocalBounds () const
 Get the local bounding rectangle of the entity. More...
 
void setAnchor (Anchor anchor)
 Set the anchor origin of the entity. More...
 
VertexBuffer commitGeometry () const
 Create a buffer with the current geometry. More...
 
virtual void draw (RenderTarget &target, const RenderStates &states) override
 Draw the object to a render target. More...
 
- Public Member Functions inherited from gf::Transformable
 Transformable ()
 Default constructor. More...
 
void setOrigin (Vector2f origin)
 Set the local origin of the object. More...
 
Vector2f getOrigin () const
 Get the local origin of the object. More...
 
void setPosition (Vector2f position)
 Set the position of the object. More...
 
Vector2f getPosition () const
 Get the position of the object. More...
 
void move (Vector2f offset)
 Move the object by a given offset. More...
 
void setRotation (float angle)
 Set the orientation of the object. More...
 
float getRotation () const
 Get the orientation of the object. More...
 
void rotate (float angle)
 Rotate the object. More...
 
void setScale (Vector2f factors)
 Set the scale factors of the object. More...
 
void setScale (float factor)
 Set the scale factor of the object. More...
 
Vector2f getScale () const
 Get the current scale of the object. More...
 
void scale (Vector2f factors)
 Scale the object. More...
 
void scale (float factor)
 Scale the object. More...
 
Matrix3f getTransform () const
 Get the combined transform of the object. More...
 
Matrix3f getInverseTransform () const
 Get the inverse of the combined transform of the object. More...
 
- Public Member Functions inherited from gf::Drawable
virtual ~Drawable ()
 Virtual desctructor. More...
 

Additional Inherited Members

- Protected Member Functions inherited from gf::Transformable
void setOriginFromAnchorAndBounds (Anchor anchor, const RectF &bounds)
 Set the origin from an anchor and bounds. More...
 

Detailed Description

A hexagonal grid.

Constructor & Destructor Documentation

◆ HexagonGrid()

gf::HexagonGrid::HexagonGrid ( MapCellAxis  axis,
MapCellIndex  index,
Vector2i  gridSize,
float  radius,
const Color4f color,
float  lineWidth = 1.0f 
)

Constructor.

Parameters
axisThe orientation of hexagon cells. X for pointy and Y for flat
indexThe index of data storage. Odd or Even indicate on which col or row is the offset
gridSizeThe number of hexagonal cell in the grid
radiusThe radius of hexagon
colorThe color of the grid frame
lineWidthThe width of the grid frame
See also
gf::MapCellAxis and gf::MapCellIndex

Member Function Documentation

◆ commitGeometry()

VertexBuffer gf::HexagonGrid::commitGeometry ( ) const

Create a buffer with the current geometry.

The geometry is uploaded in the graphics memory so that it's faster to draw.

Returns
A buffer with the current geometry

◆ draw()

virtual void gf::HexagonGrid::draw ( RenderTarget target,
const RenderStates states 
)
overridevirtual

Draw the object to a render target.

This is a pure virtual function that has to be implemented by the derived class to define how the drawable should be drawn.

Parameters
targetRender target to draw to
statesCurrent render states

Implements gf::Drawable.

◆ getColor()

const Color4f& gf::HexagonGrid::getColor ( ) const
inlinenoexcept

Get the color of the grid frame.

Returns
The current color of the grid frame

◆ getGridSize()

Vector2i gf::HexagonGrid::getGridSize ( ) const
inlinenoexcept

Get the grid size.

Returns
The current grid size

◆ getHexagonSize()

Vector2f gf::HexagonGrid::getHexagonSize ( ) const
inlinenoexcept

Get the hexagon size.

Returns
The current hexagon size

◆ getLineWidth()

float gf::HexagonGrid::getLineWidth ( ) const
inlinenoexcept

Get the width of the grid frame.

Returns
The current width of the grid frame

◆ getLocalBounds()

RectF gf::HexagonGrid::getLocalBounds ( ) const

Get the local bounding rectangle of the entity.

The returned rectangle is in local coordinates, which means that it ignores the transformations (translation, rotation, scale, ...) that are applied to the entity. In other words, this function returns the bounds of the entity in the entity's coordinate system.

Returns
Local bounding rectangle of the entity

◆ getRadius()

float gf::HexagonGrid::getRadius ( ) const
inlinenoexcept

Get the radius of hexagon.

Returns
The current radius of hexagon

◆ setAnchor()

void gf::HexagonGrid::setAnchor ( Anchor  anchor)

Set the anchor origin of the entity.

Compute the origin of the entity based on the local bounds and the specified anchor. Internally, this function calls Transformable::setOrigin().

Parameters
anchorThe anchor of the entity
See also
getLocalBounds(), Transformable::setOrigin()

◆ setColor()

void gf::HexagonGrid::setColor ( const Color4f color)

Set the color of the grid frame.

Parameters
colorThe new color of the grid frame

◆ setGridSize()

void gf::HexagonGrid::setGridSize ( Vector2i  gridSize)

Set the grid size.

Parameters
gridSizeThe new grid size

◆ setLineWidth()

void gf::HexagonGrid::setLineWidth ( float  lineWidth)
inlinenoexcept

Set the width of the grid frame.

Parameters
lineWidthThe new width of the grid frame

◆ setRadius()

void gf::HexagonGrid::setRadius ( float  radius)

Set the radius of hexagon.

Parameters
radiusThe new radius of hexagon