# sf::Shape Class Reference

Shape defines a drawable convex shape ; it also defines helper functions to draw simple shapes like lines, rectangles, circles, etc. More...

`#include <Shape.hpp>`

Inheritance diagram for sf::Shape:

List of all members.

## Classes

struct | Point
| Defines a simple 2D point.

## Public Member Functions

| Shape ()
| Default constructor.
void | AddPoint (float X, float Y, const Color &Col=Color(255, 255, 255), const Color &OutlineCol=Color(0, 0, 0))
| Add a point to the shape.
void | AddPoint (const Vector2f &Position, const Color &Col=Color(255, 255, 255), const Color &OutlineCol=Color(0, 0, 0))
| Add a point to the shape.
unsigned int | GetNbPoints () const
| Get the number of points composing the shape.
void | EnableFill (bool Enable)
| Enable or disable filling the shape.
void | EnableOutline (bool Enable)
| Enable or disable drawing the shape outline.
void | SetPointPosition (unsigned int Index, const Vector2f &Position)
| Set the position of a point.
void | SetPointPosition (unsigned int Index, float X, float Y)
| Set the position of a point.
void | SetPointColor (unsigned int Index, const Color &Col)
| Set the color of a point.
void | SetPointOutlineColor (unsigned int Index, const Color &OutlineCol)
| Set the outline color of a point.
void | SetOutlineWidth (float Width)
| Change the width of the shape outline.
const Vector2f & | GetPointPosition (unsigned int Index) const
| Get the position of a point.
const Color & | GetPointColor (unsigned int Index) const
| Get the color of a point.
const Color & | GetPointOutlineColor (unsigned int Index) const
| Get the outline color of a point.
float | GetOutlineWidth () const
| Get the width of the shape outline.
void | SetPosition (float X, float Y)
| Set the position of the object (take 2 values).
void | SetPosition (const Vector2f &Position)
| Set the position of the object (take a 2D vector).
void | SetX (float X)
| Set the X position of the object.
void | SetY (float Y)
| Set the Y position of the object.
void | SetScale (float ScaleX, float ScaleY)
| Set the scale of the object (take 2 values).
void | SetScale (const Vector2f &Scale)
| Set the scale of the object (take a 2D vector).
void | SetScaleX (float FactorX)
| Set the X scale factor of the object.
void | SetScaleY (float FactorY)
| Set the Y scale factor of the object.
void | SetCenter (float CenterX, float CenterY)
| Set the center of the object, in coordinates relative to the top-left of the object (take 2 values).
void | SetCenter (const Vector2f &Center)
| Set the center of the object, in coordinates relative to the top-left of the object (take a 2D vector).
void | SetRotation (float Rotation)
| Set the orientation of the object.
void | SetColor (const Color &Col)
| Set the color of the object.
void | SetBlendMode (Blend::Mode Mode)
| Set the blending mode for the object.
const Vector2f & | GetPosition () const
| Get the position of the object.
const Vector2f & | GetScale () const
| Get the current scale of the object.
const Vector2f & | GetCenter () const
| Get the center of the object.
float | GetRotation () const
| Get the orientation of the object.
const Color & | GetColor () const
| Get the color of the object.
Blend::Mode | GetBlendMode () const
| Get the current blending mode.
void | Move (float OffsetX, float OffsetY)
| Move the object of a given offset (take 2 values).
void | Move (const Vector2f &Offset)
| Move the object of a given offset (take a 2D vector).
void | Scale (float FactorX, float FactorY)
| Scale the object (take 2 values).
void | Scale (const Vector2f &Factor)
| Scale the object (take a 2D vector).
void | Rotate (float Angle)
| Rotate the object.
sf::Vector2f | TransformToLocal (const sf::Vector2f &Point) const
| Transform a point from global coordinates into local coordinates (ie it applies the inverse of object's center, translation, rotation and scale to the point).
sf::Vector2f | TransformToGlobal (const sf::Vector2f &Point) const
| Transform a point from local coordinates into global coordinates (ie it applies the object's center, translation, rotation and scale to the point).

## Static Public Member Functions

static Shape | Line (float P1X, float P1Y, float P2X, float P2Y, float Thickness, const Color &Col, float Outline=0.f, const Color &OutlineCol=sf::Color(0, 0, 0))
| Create a shape made of a single line (use floats).
static Shape | Line (const Vector2f &P1, const Vector2f &P2, float Thickness, const Color &Col, float Outline=0.f, const Color &OutlineCol=sf::Color(0, 0, 0))
| Create a shape made of a single line (use vectors).
static Shape | Rectangle (float P1X, float P1Y, float P2X, float P2Y, const Color &Col, float Outline=0.f, const Color &OutlineCol=sf::Color(0, 0, 0))
| Create a shape made of a single rectangle (use floats).
static Shape | Rectangle (const Vector2f &P1, const Vector2f &P2, const Color &Col, float Outline=0.f, const Color &OutlineCol=sf::Color(0, 0, 0))
| Create a shape made of a single rectangle (use vectors).
static Shape | Circle (float X, float Y, float Radius, const Color &Col, float Outline=0.f, const Color &OutlineCol=sf::Color(0, 0, 0))
| Create a shape made of a single circle (use floats).
static Shape | Circle (const Vector2f &Center, float Radius, const Color &Col, float Outline=0.f, const Color &OutlineCol=sf::Color(0, 0, 0))
| Create a shape made of a single circle (use vectors).

## Protected Member Functions

virtual void | Render (RenderTarget &Target) const
| /see Drawable::Render
const Matrix3 & | GetMatrix () const
| Get the transform matrix of the drawable.
const Matrix3 & | GetInverseMatrix () const
| Get the inverse transform matrix of the drawable.

## Detailed Description

Shape defines a drawable convex shape ; it also defines helper functions to draw simple shapes like lines, rectangles, circles, etc.

Definition at line 43 of file Shape.hpp.

## Constructor & Destructor Documentation

sf::Shape::Shape | ( |  | ) |

Default constructor.

Definition at line 38 of file Shape.cpp.

## Member Function Documentation

void sf::Shape::AddPoint | ( | const Vector2f & | Position,
|  | const Color & | Col = `Color(255, 255, 255)`,
|  | const Color & | OutlineCol = `Color(0, 0, 0)` |
| ) |  |  |

Add a point to the shape.

Parameters:

  | Position | : Position of the point
  | Col | : Color of the point (white by default)
  | OutlineCol | : Outline color of the point (black by default)

Definition at line 61 of file Shape.cpp.

void sf::Shape::AddPoint | ( | float | X,
|  | float | Y,
|  | const Color & | Col = `Color(255, 255, 255)`,
|  | const Color & | OutlineCol = `Color(0, 0, 0)` |
| ) |  |  |

Add a point to the shape.

Parameters:

  | X,Y | : Position of the point
  | Col | : Color of the point (white by default)
  | OutlineCol | : Outline color of the point (black by default)

Definition at line 52 of file Shape.cpp.

Shape sf::Shape::Circle | ( | const Vector2f & | Center,
|  | float | Radius,
|  | const Color & | Col,
|  | float | Outline = `0.f`,
|  | const Color & | OutlineCol = `sf::Color(0, 0, 0)` |
| ) |  |  | `[static]`

Create a shape made of a single circle (use vectors).

Parameters:

  | Center | : Position of the center
  | Radius | : Radius
  | Col | : Color used to fill the circle
  | Outline | : Outline width (0 by default)
  | OutlineCol | : Color used to draw the outline (black by default)

Definition at line 276 of file Shape.cpp.

Shape sf::Shape::Circle | ( | float | X,
|  | float | Y,
|  | float | Radius,
|  | const Color & | Col,
|  | float | Outline = `0.f`,
|  | const Color & | OutlineCol = `sf::Color(0, 0, 0)` |
| ) |  |  | `[static]`

Create a shape made of a single circle (use floats).

Create a shape made of a single circle.

Parameters:

  | X,Y | : Position of the center
  | Radius | : Radius
  | Col | : Color used to fill the circle
  | Outline | : Outline width (0 by default)
  | OutlineCol | : Color used to draw the outline (black by default)

Definition at line 250 of file Shape.cpp.

void sf::Shape::EnableFill | ( | bool | Enable | ) |

Enable or disable filling the shape.

Fill is enabled by default

Parameters:

  | Enable | : True to enable, false to disable

Fill is enabled by default

Definition at line 81 of file Shape.cpp.

void sf::Shape::EnableOutline | ( | bool | Enable | ) |

Enable or disable drawing the shape outline.

Outline is enabled by default

Parameters:

  | Enable | : True to enable, false to disable

Outline is enabled by default

Definition at line 91 of file Shape.cpp.

Blend::Mode sf::Drawable::GetBlendMode | ( |  | ) | const`[inherited]`

Get the current blending mode.

Returns:
  Current blending mode

Definition at line 258 of file Drawable.cpp.

const Vector2f & sf::Drawable::GetCenter | ( |  | ) | const`[inherited]`

Get the center of the object.

Returns:
  Current position of the center

Definition at line 231 of file Drawable.cpp.

const Color & sf::Drawable::GetColor | ( |  | ) | const`[inherited]`

Get the color of the object.

Returns:
  Current color

Definition at line 249 of file Drawable.cpp.

const Matrix3 & sf::Drawable::GetInverseMatrix | ( |  | ) | const`[protected, inherited]`

Get the inverse transform matrix of the drawable.

Returns:
  Inverse transform matrix

Definition at line 350 of file Drawable.cpp.

const Matrix3 & sf::Drawable::GetMatrix | ( |  | ) | const`[protected, inherited]`

Get the transform matrix of the drawable.

Returns:
  Transform matrix

Definition at line 334 of file Drawable.cpp.

unsigned int sf::Shape::GetNbPoints | ( |  | ) | const

Get the number of points composing the shape.

Parameters:

  | Total | number of points

Definition at line 71 of file Shape.cpp.

float sf::Shape::GetOutlineWidth | ( |  | ) | const

Get the width of the shape outline.

Returns:
  Current outline width

Definition at line 175 of file Shape.cpp.

const Color & sf::Shape::GetPointColor | ( | unsigned int | Index | ) | const

Get the color of a point.

Parameters:

  | Index | : Index of the point, in range [0, GetNbPoints() - 1]

Returns:
  Color of the Index-th point

Definition at line 157 of file Shape.cpp.

const Color & sf::Shape::GetPointOutlineColor | ( | unsigned int | Index | ) | const

Get the outline color of a point.

Parameters:

  | Index | : Index of the point, in range [0, GetNbPoints() - 1]

Returns:
  Outline color of the Index-th point

Definition at line 166 of file Shape.cpp.

const Vector2f & sf::Shape::GetPointPosition | ( | unsigned int | Index | ) | const

Get the position of a point.

Parameters:

  | Index | : Index of the point, in range [0, GetNbPoints() - 1]

Returns:
  Position of the Index-th point

Definition at line 148 of file Shape.cpp.

const Vector2f & sf::Drawable::GetPosition | ( |  | ) | const`[inherited]`

Get the position of the object.

Returns:
  Current position

Definition at line 213 of file Drawable.cpp.

float sf::Drawable::GetRotation | ( |  | ) | const`[inherited]`

Get the orientation of the object.

Rotation is always in the range [0, 360]

Returns:
  Current rotation, in degrees

Definition at line 240 of file Drawable.cpp.

const Vector2f & sf::Drawable::GetScale | ( |  | ) | const`[inherited]`

Get the current scale of the object.

Returns:
  Current scale factor (always positive)

Definition at line 222 of file Drawable.cpp.

Shape sf::Shape::Line | ( | const Vector2f & | P1,
|  | const Vector2f & | P2,
|  | float | Thickness,
|  | const Color & | Col,
|  | float | Outline = `0.f`,
|  | const Color & | OutlineCol = `sf::Color(0, 0, 0)` |
| ) |  |  | `[static]`

Create a shape made of a single line (use vectors).

Parameters:

  | P1X,P1Y | : Position of the first point
  | P2X,P2Y | : Position second point
  | Thickness | : Line thickness
  | Col | : Color used to draw the line
  | Outline | : Outline width (0 by default)
  | OutlineCol | : Color used to draw the outline (black by default)

Definition at line 212 of file Shape.cpp.

Shape sf::Shape::Line | ( | float | P1X,
|  | float | P1Y,
|  | float | P2X,
|  | float | P2Y,
|  | float | Thickness,
|  | const Color & | Col,
|  | float | Outline = `0.f`,
|  | const Color & | OutlineCol = `sf::Color(0, 0, 0)` |
| ) |  |  | `[static]`

Create a shape made of a single line (use floats).

Create a shape made of a single line.

Parameters:

  | P1X,P1Y | : Position of the first point
  | P2X,P2Y | : Position second point
  | Thickness | : Line thickness
  | Col | : Color used to draw the line
  | Outline | : Outline width (0 by default)
  | OutlineCol | : Color used to draw the outline (black by default)

Definition at line 184 of file Shape.cpp.

void sf::Drawable::Move | ( | const Vector2f & | Offset | ) | `[inherited]`

Move the object of a given offset (take a 2D vector).

Parameters:

  | Offset | : Amount of units to move the object of

Definition at line 278 of file Drawable.cpp.

void sf::Drawable::Move | ( | float | OffsetX,
|  | float | OffsetY |
| ) |  |  | `[inherited]`

Move the object of a given offset (take 2 values).

Parameters:

  | OffsetX | : X offset
  | OffsetY | : Y offset

Definition at line 268 of file Drawable.cpp.

Shape sf::Shape::Rectangle | ( | const Vector2f & | P1,
|  | const Vector2f & | P2,
|  | const Color & | Col,
|  | float | Outline = `0.f`,
|  | const Color & | OutlineCol = `sf::Color(0, 0, 0)` |
| ) |  |  | `[static]`

Create a shape made of a single rectangle (use vectors).

Parameters:

  | P1 | : Position of the first point
  | P2 | : Position second point
  | Col | : Color used to fill the rectangle
  | Outline | : Outline width (0 by default)
  | OutlineCol | : Color used to draw the outline (black by default)

Definition at line 241 of file Shape.cpp.

Shape sf::Shape::Rectangle | ( | float | P1X,
|  | float | P1Y,
|  | float | P2X,
|  | float | P2Y,
|  | const Color & | Col,
|  | float | Outline = `0.f`,
|  | const Color & | OutlineCol = `sf::Color(0, 0, 0)` |
| ) |  |  | `[static]`

Create a shape made of a single rectangle (use floats).

Create a shape made of a single rectangle.

Parameters:

  | P1X,P1Y | : Position of the first point
  | P2X,P2Y | : Position second point
  | Col | : Color used to fill the rectangle
  | Outline | : Outline width (0 by default)
  | OutlineCol | : Color used to draw the outline (black by default)

Definition at line 221 of file Shape.cpp.

void sf::Shape::Render | ( | RenderTarget & | Target | ) | const`[protected, virtual]`

/see Drawable::Render

Implements sf::Drawable.

Definition at line 285 of file Shape.cpp.

void sf::Drawable::Rotate | ( | float | Angle | ) | `[inherited]`

Rotate the object.

Parameters:

  | Angle | : Angle of rotation, in degrees

Definition at line 306 of file Drawable.cpp.

void sf::Drawable::Scale | ( | const Vector2f & | Factor | ) | `[inherited]`

Scale the object (take a 2D vector).

Parameters:

  | Factor | : Scaling factors (both values must be strictly positive)

Definition at line 297 of file Drawable.cpp.

void sf::Drawable::Scale | ( | float | FactorX,
|  | float | FactorY |
| ) |  |  | `[inherited]`

Scale the object (take 2 values).

Parameters:

  | FactorX | : Scaling factor on X (must be strictly positive)
  | FactorY | : Scaling factor on Y (must be strictly positive)

Definition at line 287 of file Drawable.cpp.

void sf::Drawable::SetBlendMode | ( | Blend::Mode | Mode | ) | `[inherited]`

Set the blending mode for the object.

The default blend mode is Blend::Alpha

Parameters:

  | Mode | : New blending mode

The default blend mode is Blend::Alpha

Definition at line 204 of file Drawable.cpp.

void sf::Drawable::SetCenter | ( | const Vector2f & | Center | ) | `[inherited]`

Set the center of the object, in coordinates relative to the top-left of the object (take a 2D vector).

Set the center of the object, in coordinates relative to the top-left of the object (take a 2D vector).

The default center is (0, 0)

Parameters:

  | Center | : New center

The default center is (0, 0)

Definition at line 171 of file Drawable.cpp.

void sf::Drawable::SetCenter | ( | float | CenterX,
|  | float | CenterY |
| ) |  |  | `[inherited]`

Set the center of the object, in coordinates relative to the top-left of the object (take 2 values).

Set the center of the object, in coordinates relative to the top-left of the object (take 2 values).

The default center is (0, 0)

Parameters:

  | CenterX | : X coordinate of the center
  | CenterY | : Y coordinate of the center

The default center is (0, 0)

Definition at line 157 of file Drawable.cpp.

void sf::Drawable::SetColor | ( | const Color & | Col | ) | `[inherited]`

Set the color of the object.

The default color is white

Parameters:

  | Col | : New color

The default color is white

Definition at line 194 of file Drawable.cpp.

void sf::Shape::SetOutlineWidth | ( | float | Width | ) |

Change the width of the shape outline.

Parameters:

  | Width | : New width

Definition at line 139 of file Shape.cpp.

void sf::Shape::SetPointColor | ( | unsigned int | Index,
|  | const Color & | Col |
| ) |  |  |

Set the color of a point.

Parameters:

  | Index | : Index of the point, in range [0, GetNbPoints() - 1]
  | Col | : New color of the Index-th point

Definition at line 119 of file Shape.cpp.

void sf::Shape::SetPointOutlineColor | ( | unsigned int | Index,
|  | const Color & | OutlineCol |
| ) |  |  |

Set the outline color of a point.

Parameters:

  | Index | : Index of the point, in range [0, GetNbPoints() - 1]
  | OutlineCol | : New outline color of the Index-th point

Definition at line 129 of file Shape.cpp.

void sf::Shape::SetPointPosition | ( | unsigned int | Index,
|  | float | X,
|  | float | Y |
| ) |  |  |

Set the position of a point.

Parameters:

  | Index | : Index of the point, in range [0, GetNbPoints() - 1]
  | X | : New X coordinate of the Index-th point
  | Y | : New Y coordinate of the Index-th point

Definition at line 110 of file Shape.cpp.

void sf::Shape::SetPointPosition | ( | unsigned int | Index,
|  | const Vector2f & | Position |
| ) |  |  |

Set the position of a point.

Parameters:

  | Index | : Index of the point, in range [0, GetNbPoints() - 1]
  | Position | : New position of the Index-th point

Definition at line 100 of file Shape.cpp.

void sf::Drawable::SetPosition | ( | const Vector2f & | Position | ) | `[inherited]`

Set the position of the object (take a 2D vector).

Parameters:

  | Position | : New position

Definition at line 75 of file Drawable.cpp.

void sf::Drawable::SetPosition | ( | float | X,
|  | float | Y |
| ) |  |  | `[inherited]`

Set the position of the object (take 2 values).

Parameters:

  | X | : New X coordinate
  | Y | : New Y coordinate

Definition at line 65 of file Drawable.cpp.

void sf::Drawable::SetRotation | ( | float | Rotation | ) | `[inherited]`

Set the orientation of the object.

Parameters:

  | Rotation | : Angle of rotation, in degrees

Definition at line 180 of file Drawable.cpp.

void sf::Drawable::SetScale | ( | const Vector2f & | Scale | ) | `[inherited]`

Set the scale of the object (take a 2D vector).

Parameters:

  | Scale | : New scale (both values must be strictly positive)

Definition at line 117 of file Drawable.cpp.

void sf::Drawable::SetScale | ( | float | ScaleX,
|  | float | ScaleY |
| ) |  |  | `[inherited]`

Set the scale of the object (take 2 values).

Parameters:

  | ScaleX | : New horizontal scale (must be strictly positive)
  | ScaleY | : New vertical scale (must be strictly positive)

Definition at line 107 of file Drawable.cpp.

void sf::Drawable::SetScaleX | ( | float | FactorX | ) | `[inherited]`

Set the X scale factor of the object.

Parameters:

  | X | : New X scale factor

Definition at line 127 of file Drawable.cpp.

void sf::Drawable::SetScaleY | ( | float | FactorY | ) | `[inherited]`

Set the Y scale factor of the object.

Parameters:

  | Y | : New Y scale factor

Definition at line 141 of file Drawable.cpp.

void sf::Drawable::SetX | ( | float | X | ) | `[inherited]`

Set the X position of the object.

Parameters:

  | X | : New X coordinate

Definition at line 85 of file Drawable.cpp.

void sf::Drawable::SetY | ( | float | Y | ) | `[inherited]`

Set the Y position of the object.

Parameters:

  | Y | : New Y coordinate

Definition at line 96 of file Drawable.cpp.

sf::Vector2f sf::Drawable::TransformToGlobal | ( | const sf::Vector2f & | Point | ) | const`[inherited]`

Transform a point from local coordinates into global coordinates (ie it applies the object's center, translation, rotation and scale to the point).

Transform a point from local coordinates into global coordinates (ie it applies the object's center, translation, rotation and scale to the point).

Parameters:

  | Point | : Point to transform

Returns:
  Transformed point

Definition at line 325 of file Drawable.cpp.

sf::Vector2f sf::Drawable::TransformToLocal | ( | const sf::Vector2f & | Point | ) | const`[inherited]`

Transform a point from global coordinates into local coordinates (ie it applies the inverse of object's center, translation, rotation and scale to the point).

Transform a point from global coordinates into local coordinates (ie it applies the inverse of object's center, translation, rotation and scale to the point).

Parameters:

  | Point | : Point to transform

Returns:
  Transformed point

Definition at line 316 of file Drawable.cpp.

The documentation for this class was generated from the following files:

- Shape.hpp
- Shape.cpp