aboutsummaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2021-04-21 13:29:01 +0200
committerdec05eba <dec05eba@protonmail.com>2021-04-21 13:29:01 +0200
commit3ac1120fd40b84507c51f867559bd05adff4eecf (patch)
tree32a3d7e037dd0fa07f764e563cfaa304470ad7f1 /external
parent0f151afa58c1f725a652eaa4444ce3e2b2509770 (diff)
Use shader for rounded rectangle, improve circle shader
Diffstat (limited to 'external')
-rw-r--r--external/RoundedRectangleShape.cpp103
-rw-r--r--external/RoundedRectangleShape.hpp151
2 files changed, 0 insertions, 254 deletions
diff --git a/external/RoundedRectangleShape.cpp b/external/RoundedRectangleShape.cpp
deleted file mode 100644
index e56cf9f..0000000
--- a/external/RoundedRectangleShape.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-////////////////////////////////////////////////////////////
-//
-// This software is provided 'as-is', without any express or implied warranty.
-// In no event will the authors be held liable for any damages arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose,
-// including commercial applications, and to alter it and redistribute it freely,
-// subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented;
-// you must not claim that you wrote the original software.
-// If you use this software in a product, an acknowledgment
-// in the product documentation would be appreciated but is not required.
-//
-// 2. Altered source versions must be plainly marked as such,
-// and must not be misrepresented as being the original software.
-//
-// 3. This notice may not be removed or altered from any source distribution.
-//
-////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////
-// Headers
-////////////////////////////////////////////////////////////
-#include "RoundedRectangleShape.hpp"
-#include <cmath>
-
-namespace sf
-{
-////////////////////////////////////////////////////////////
-RoundedRectangleShape::RoundedRectangleShape(const Vector2f& size, float radius, unsigned int cornerPointCount)
-{
- mySize = size;
- myRadius = radius;
- myCornerPointCount = cornerPointCount;
- update();
-}
-
-////////////////////////////////////////////////////////////
-void RoundedRectangleShape::setSize(const Vector2f& size)
-{
- // Modified by dec05eba
- if(std::abs(size.x - mySize.x) > 1.0f || std::abs(size.y - mySize.y) > 1.0f) {
- mySize = size;
- update();
- }
-}
-
-////////////////////////////////////////////////////////////
-const Vector2f& RoundedRectangleShape::getSize() const
-{
- return mySize;
-}
-
-////////////////////////////////////////////////////////////
-void RoundedRectangleShape::setCornersRadius(float radius)
-{
- myRadius = radius;
- update();
-}
-
-////////////////////////////////////////////////////////////
-float RoundedRectangleShape::getCornersRadius() const
-{
- return myRadius;
-}
-
-////////////////////////////////////////////////////////////
-void RoundedRectangleShape::setCornerPointCount(unsigned int count)
-{
- myCornerPointCount = count;
- update();
-}
-
-////////////////////////////////////////////////////////////
-std::size_t RoundedRectangleShape::getPointCount() const
-{
- return myCornerPointCount*4;
-}
-
-////////////////////////////////////////////////////////////
-sf::Vector2f RoundedRectangleShape::getPoint(std::size_t index) const
-{
- if(index >= myCornerPointCount*4)
- return sf::Vector2f(0,0);
-
- float deltaAngle = 90.0f/(myCornerPointCount-1);
- sf::Vector2f center;
- unsigned int centerIndex = index/myCornerPointCount;
- static const float pi = 3.141592654f;
-
- switch(centerIndex)
- {
- case 0: center.x = mySize.x - myRadius; center.y = myRadius; break;
- case 1: center.x = myRadius; center.y = myRadius; break;
- case 2: center.x = myRadius; center.y = mySize.y - myRadius; break;
- case 3: center.x = mySize.x - myRadius; center.y = mySize.y - myRadius; break;
- }
-
- return sf::Vector2f(myRadius*cos(deltaAngle*(index-centerIndex)*pi/180)+center.x,
- -myRadius*sin(deltaAngle*(index-centerIndex)*pi/180)+center.y);
-}
-} // namespace sf \ No newline at end of file
diff --git a/external/RoundedRectangleShape.hpp b/external/RoundedRectangleShape.hpp
deleted file mode 100644
index ab1c880..0000000
--- a/external/RoundedRectangleShape.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-////////////////////////////////////////////////////////////
-//
-// This software is provided 'as-is', without any express or implied warranty.
-// In no event will the authors be held liable for any damages arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose,
-// including commercial applications, and to alter it and redistribute it freely,
-// subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented;
-// you must not claim that you wrote the original software.
-// If you use this software in a product, an acknowledgment
-// in the product documentation would be appreciated but is not required.
-//
-// 2. Altered source versions must be plainly marked as such,
-// and must not be misrepresented as being the original software.
-//
-// 3. This notice may not be removed or altered from any source distribution.
-//
-////////////////////////////////////////////////////////////
-
-#ifndef ROUNDEDRECTANGLESHAPE_HPP
-#define ROUNDEDRECTANGLESHAPE_HPP
-
-////////////////////////////////////////////////////////////
-// Headers
-////////////////////////////////////////////////////////////
-#include <SFML/Graphics/Shape.hpp>
-
-namespace sf
-{
-////////////////////////////////////////////////////////////
-/// \brief Specialized shape representing a rectangle
-/// with rounded corners
-////////////////////////////////////////////////////////////
-class RoundedRectangleShape : public sf::Shape
-{
- public:
- ////////////////////////////////////////////////////////////
- /// \brief Default constructor
- ///
- /// \param size Size of the rectangle
- /// \param radius Radius for each rounded corner
- /// \param cornerPointCount Number of points of each corner
- ///
- ////////////////////////////////////////////////////////////
- explicit RoundedRectangleShape(const Vector2f& size = Vector2f(0, 0), float radius = 0, unsigned int cornerPointCount = 0);
-
- ////////////////////////////////////////////////////////////
- /// \brief Set the size of the rounded rectangle
- ///
- /// \param size New size of the rounded rectangle
- ///
- /// \see getSize
- ///
- ////////////////////////////////////////////////////////////
- void setSize(const Vector2f& size);
-
- ////////////////////////////////////////////////////////////
- /// \brief Get the size of the rounded rectangle
- ///
- /// \return Size of the rounded rectangle
- ///
- /// \see setSize
- ///
- ////////////////////////////////////////////////////////////
- const Vector2f& getSize() const;
-
- ////////////////////////////////////////////////////////////
- /// \brief Set the radius of the rounded corners
- ///
- /// \param radius Radius of the rounded corners
- ///
- /// \see getCornersRadius
- ///
- ////////////////////////////////////////////////////////////
- void setCornersRadius(float radius);
-
- ////////////////////////////////////////////////////////////
- /// \brief Get the radius of the rounded corners
- ///
- /// \return Radius of the rounded corners
- ///
- /// \see setCornersRadius
- ///
- ////////////////////////////////////////////////////////////
- float getCornersRadius() const;
-
- ////////////////////////////////////////////////////////////
- /// \brief Set the number of points of each corner
- ///
- /// \param count New number of points of the rounded rectangle
- ///
- /// \see getPointCount
- ///
- ////////////////////////////////////////////////////////////
- void setCornerPointCount(unsigned int count);
-
- ////////////////////////////////////////////////////////////
- /// \brief Get the number of points defining the rounded rectangle
- ///
- /// \return Number of points of the rounded rectangle
- ///
- ////////////////////////////////////////////////////////////
- virtual std::size_t getPointCount() const;
-
- ////////////////////////////////////////////////////////////
- /// \brief Get a point of the rounded rectangle
- ///
- /// The result is undefined if \a index is out of the valid range.
- ///
- /// \param index Index of the point to get, in range [0 .. GetPointCount() - 1]
- ///
- /// \return Index-th point of the shape
- ///
- ////////////////////////////////////////////////////////////
- virtual sf::Vector2f getPoint(std::size_t index) const;
-
- private:
- ////////////////////////////////////////////////////////////
- // Member data
- ////////////////////////////////////////////////////////////
- Vector2f mySize;
- float myRadius;
- unsigned int myCornerPointCount;
-};
-}
-#endif // ROUNDEDRECTANGLESHAPE_HPP
-
-////////////////////////////////////////////////////////////
-/// \class sf::RoundedRectangleShape
-/// \ingroup graphics
-///
-/// This class inherits all the functions of sf::Transformable
-/// (position, rotation, scale, bounds, ...) as well as the
-/// functions of sf::Shape (outline, color, texture, ...).
-///
-/// Usage example:
-/// \code
-/// sf::RoundedRectangleShape roundedRectangle;
-/// rectangle.setSize(sf::Vector2f(100, 50));
-/// rectangle.setCornersRadius(5);
-/// rectangle.setOutlineThickness(5);
-/// rectangle.setPosition(10, 20);
-/// ...
-/// window.draw(rectangle);
-/// \endcode
-///
-/// \see sf::Shape, sf::CircleShape, sf::ConvexShape
-///
-//////////////////////////////////////////////////////////// \ No newline at end of file