diff --git a/src/SelbaWard/Sprite3d.cpp b/src/SelbaWard/Sprite3d.cpp index 482c1f2..5819269 100644 --- a/src/SelbaWard/Sprite3d.cpp +++ b/src/SelbaWard/Sprite3d.cpp @@ -188,6 +188,11 @@ void Sprite3d::setTexture(const sf::Texture& texture, const bool resetRect, cons m_pTexture = &texture; } +void Sprite3d::setTexture() +{ + m_pTexture = nullptr; +} + void Sprite3d::setBackTexture(const sf::Texture& texture, const bool resetOffset) { m_pBackTexture = &texture; @@ -195,6 +200,12 @@ void Sprite3d::setBackTexture(const sf::Texture& texture, const bool resetOffset m_backTextureOffset = sf::Vector2i(0, 0); } +void Sprite3d::setBackTexture() +{ + // + m_pBackTexture = nullptr; +} + void Sprite3d::setFlipBack(const bool flipBack) { m_flipBack = flipBack; @@ -475,19 +486,16 @@ float Sprite3d::getDepth() const void Sprite3d::draw(sf::RenderTarget& target, sf::RenderStates states) const { - if (m_pTexture != nullptr) - { - updateTransformedPoints(); - updateVertices(); - states.transform *= getTransform(); + updateTransformedPoints(); + updateVertices(); + states.transform *= getTransform(); - if (m_isBackFacing && (m_pBackTexture != nullptr)) - states.texture = m_pBackTexture; - else - states.texture = m_pTexture; + if (m_isBackFacing && (m_pBackTexture != nullptr)) + states.texture = m_pBackTexture; + else + states.texture = m_pTexture; - target.draw(m_vertices.data(), m_vertices.size(), sf::PrimitiveType::TriangleStrip, states); - } + target.draw(m_vertices.data(), m_vertices.size(), sf::PrimitiveType::TriangleStrip, states); } void Sprite3d::updateTransformedPoints() const diff --git a/src/SelbaWard/Sprite3d.hpp b/src/SelbaWard/Sprite3d.hpp index 674f950..3b14d70 100644 --- a/src/SelbaWard/Sprite3d.hpp +++ b/src/SelbaWard/Sprite3d.hpp @@ -44,7 +44,7 @@ namespace selbaward { -// Sprite3d version 1.2.3 +// Sprite3d version 1.3.0 class Sprite3d : public sf::Drawable, public sf::Transformable { public: @@ -71,6 +71,7 @@ class Sprite3d : public sf::Drawable, public sf::Transformable sf::FloatRect getGlobalBounds() const; void setTexture(const sf::Texture& texture, bool resetRect = false, bool resetBackOffset = false); + void setTexture(); void setTextureRect(const sf::IntRect& rectangle); void setColor(const sf::Color& color); @@ -83,6 +84,7 @@ class Sprite3d : public sf::Drawable, public sf::Transformable sf::Vector2i getBackTextureOffset() const; void setBackTexture(const sf::Texture& texture, bool resetOffset = false); + void setBackTexture(); void setFlipBack(bool flipBack = true); void setTextureOffset(sf::Vector2i textureOffset = { 0, 0 }); void setBackTextureOffset(sf::Vector2i backTextureOffset = { 0, 0 });