Renamed GetOutlinePoint/GetOutlinePointsCount to GetPoint/GetPointsCount in sf::Shape, and made them public

This commit is contained in:
Laurent Gomila 2011-12-10 14:51:40 +01:00
parent e6956d8e4d
commit 048abbf46f
8 changed files with 35 additions and 80 deletions

View File

@ -69,15 +69,13 @@ public :
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
float GetRadius() const; float GetRadius() const;
private :
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Get the number of points defining the shape /// \brief Get the number of points of the shape
/// ///
/// \return Number of points of the shape /// \return Number of points of the shape
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
virtual unsigned int GetOutlinePointsCount() const; virtual unsigned int GetPointsCount() const;
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Get a point of the shape /// \brief Get a point of the shape
@ -87,7 +85,7 @@ private :
/// \return Index-th point of the shape /// \return Index-th point of the shape
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
virtual Vector2f GetOutlinePoint(unsigned int index) const; virtual Vector2f GetPoint(unsigned int index) const;
private : private :
@ -122,6 +120,6 @@ private :
/// window.Draw(circle); /// window.Draw(circle);
/// \endcode /// \endcode
/// ///
/// \see sf::Shape, sf::StarShape, sf::RectangleShape, sf::ConvexShape /// \see sf::Shape, sf::RectangleShape, sf::ConvexShape
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////

View File

@ -68,7 +68,7 @@ public :
/// \see SetPointsCount /// \see SetPointsCount
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
unsigned int GetPointsCount() const; virtual unsigned int GetPointsCount() const;
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Set the position of a point /// \brief Set the position of a point
@ -94,27 +94,7 @@ public :
/// \see SetPoint /// \see SetPoint
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Vector2f GetPoint(unsigned int index) const; virtual Vector2f GetPoint(unsigned int index) const;
private :
////////////////////////////////////////////////////////////
/// \brief Get the number of points defining the shape
///
/// \return Number of points of the shape
///
////////////////////////////////////////////////////////////
virtual unsigned int GetOutlinePointsCount() const;
////////////////////////////////////////////////////////////
/// \brief Get a point of the shape
///
/// \param index Index of the point to get
///
/// \return Index-th point of the shape
///
////////////////////////////////////////////////////////////
virtual Vector2f GetOutlinePoint(unsigned int index) const;
private : private :
@ -157,6 +137,6 @@ private :
/// window.Draw(polygon); /// window.Draw(polygon);
/// \endcode /// \endcode
/// ///
/// \see sf::Shape, sf::StarShape, sf::RectangleShape, sf::CircleShape /// \see sf::Shape, sf::RectangleShape, sf::CircleShape
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////

View File

@ -69,15 +69,13 @@ public :
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
const Vector2f& GetSize() const; const Vector2f& GetSize() const;
private :
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Get the number of points defining the shape /// \brief Get the number of points defining the shape
/// ///
/// \return Number of points of the shape /// \return Number of points of the shape
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
virtual unsigned int GetOutlinePointsCount() const; virtual unsigned int GetPointsCount() const;
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Get a point of the shape /// \brief Get a point of the shape
@ -87,7 +85,7 @@ private :
/// \return Index-th point of the shape /// \return Index-th point of the shape
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
virtual Vector2f GetOutlinePoint(unsigned int index) const; virtual Vector2f GetPoint(unsigned int index) const;
private : private :
@ -122,6 +120,6 @@ private :
/// window.Draw(rectangle); /// window.Draw(rectangle);
/// \endcode /// \endcode
/// ///
/// \see sf::Shape, sf::StarShape, sf::CircleShape, sf::ConvexShape /// \see sf::Shape, sf::CircleShape, sf::ConvexShape
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////

View File

@ -184,6 +184,24 @@ public :
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
float GetOutlineThickness() const; float GetOutlineThickness() const;
////////////////////////////////////////////////////////////
/// \brief Get the total number of points of the shape
///
/// \return Number of points of the shape
///
////////////////////////////////////////////////////////////
virtual unsigned int GetPointsCount() const = 0;
////////////////////////////////////////////////////////////
/// \brief Get a point of the shape
///
/// \param index Index of the point to get, in range [0 .. GetPointsCount() - 1]
///
/// \return Index-th point of the shape
///
////////////////////////////////////////////////////////////
virtual Vector2f GetPoint(unsigned int index) const = 0;
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Get the local bounding rectangle of the entity /// \brief Get the local bounding rectangle of the entity
/// ///
@ -230,30 +248,6 @@ protected :
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
void Update(); void Update();
private :
////////////////////////////////////////////////////////////
/// \brief Get the number of points defining the shape
///
/// This function must be implemented in derived classes.
///
/// \return Number of points of the shape
///
////////////////////////////////////////////////////////////
virtual unsigned int GetOutlinePointsCount() const = 0;
////////////////////////////////////////////////////////////
/// \brief Get a point of the shape
///
/// This function must be implemented in derived classes.
///
/// \param index Index of the point to get
///
/// \return Index-th point of the shape
///
////////////////////////////////////////////////////////////
virtual Vector2f GetOutlinePoint(unsigned int index) const = 0;
private : private :
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////

View File

@ -54,16 +54,16 @@ float CircleShape::GetRadius() const
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
unsigned int CircleShape::GetOutlinePointsCount() const unsigned int CircleShape::GetPointsCount() const
{ {
return 30; return 30;
} }
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Vector2f CircleShape::GetOutlinePoint(unsigned int index) const Vector2f CircleShape::GetPoint(unsigned int index) const
{ {
float angle = index * 2 * 3.141592654f / GetOutlinePointsCount(); float angle = index * 2 * 3.141592654f / GetPointsCount();
float x = std::cos(angle) * myRadius; float x = std::cos(angle) * myRadius;
float y = std::sin(angle) * myRadius; float y = std::sin(angle) * myRadius;

View File

@ -66,18 +66,4 @@ Vector2f ConvexShape::GetPoint(unsigned int index) const
return myPoints[index]; return myPoints[index];
} }
////////////////////////////////////////////////////////////
unsigned int ConvexShape::GetOutlinePointsCount() const
{
return GetPointsCount();
}
////////////////////////////////////////////////////////////
Vector2f ConvexShape::GetOutlinePoint(unsigned int index) const
{
return GetPoint(index);
}
} // namespace sf } // namespace sf

View File

@ -54,14 +54,14 @@ const Vector2f& RectangleShape::GetSize() const
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
unsigned int RectangleShape::GetOutlinePointsCount() const unsigned int RectangleShape::GetPointsCount() const
{ {
return 4; return 4;
} }
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Vector2f RectangleShape::GetOutlinePoint(unsigned int index) const Vector2f RectangleShape::GetPoint(unsigned int index) const
{ {
switch (index) switch (index)
{ {

View File

@ -169,7 +169,7 @@ myBounds ()
void Shape::Update() void Shape::Update()
{ {
// Get the total number of points of the shape // Get the total number of points of the shape
unsigned int count = GetOutlinePointsCount(); unsigned int count = GetPointsCount();
if (count < 3) if (count < 3)
{ {
myVertices.Resize(0); myVertices.Resize(0);
@ -180,9 +180,8 @@ void Shape::Update()
myVertices.Resize(count + 2); // + 2 for center and repeated first point myVertices.Resize(count + 2); // + 2 for center and repeated first point
// Position // Position
Vector2f offset(myOutlineThickness, myOutlineThickness);
for (unsigned int i = 0; i < count; ++i) for (unsigned int i = 0; i < count; ++i)
myVertices[i + 1].Position = GetOutlinePoint(i) + offset; myVertices[i + 1].Position = GetPoint(i);
myVertices[count + 1].Position = myVertices[1].Position; myVertices[count + 1].Position = myVertices[1].Position;
// Update the bounding rectangle // Update the bounding rectangle