<commit_before>#ifndef FROG_RENDERERINGCOMPONENT_HPP
#define FROG_RENDERERINGCOMPONENT_HPP

#include "FROG/Component.hpp"
#include "FROG/ComponentHolder.hpp"
#include <SFML/Graphics.hpp>

#include <memory>

namespace frog{

    /*!
     * RenderingComponent is drawn by the scene's renderer. 
     */
    class RenderingComponent : virtual public Component,
                               virtual public sf::Drawable,
                               virtual public sf::Transformable
    {

      //// attributes //// 
    protected:
      std::shared_ptr<sf::Drawable>  m_drawable;

      //// operations ////
    public:

      /*!
       * @brief Constructor.
       * @param d sf::Drawable that will be kept in order to be rendered by a 
       * Renderer. 
       */
      RenderingComponent(sf::Drawable * const d);
      RenderingComponent(std::shared_ptr<sf::Drawable> const d);

      virtual ~RenderingComponent();

      /*!
       * @brief Draws the component in the given sf::RenderTarget. 
       * @param rt RenderTarget where component should be drawn. 
       * @param rs RenderStates to apply. Default : nothing. 
       */
      void draw(sf::RenderTarget& rt, 
                sf::RenderStates rs = sf::RenderStates::Default) const;

     /*!
       * @brief Places the component to render at the good place. 
       * @details Places the component at the position of its parent, <commit_msg>errorfix : was passing a const, causing segfault (why did that compile ?)<commit_after>#ifndef FROG_RENDERERINGCOMPONENT_HPP
#define FROG_RENDERERINGCOMPONENT_HPP

#include "FROG/Component.hpp"
#include "FROG/ComponentHolder.hpp"
#include <SFML/Graphics.hpp>

#include <memory>

namespace frog{

    /*!
     * RenderingComponent is drawn by the scene's renderer. 
     */
    class RenderingComponent : virtual public Component,
                               virtual public sf::Drawable,
                               virtual public sf::Transformable
    {

      //// attributes //// 
    protected:
      std::shared_ptr<sf::Drawable>  m_drawable;

      //// operations ////
    public:

      /*!
       * @brief Constructor.
       * @param d sf::Drawable that will be kept in order to be rendered by a 
       * Renderer. 
       */
      RenderingComponent(sf::Drawable * const d);
      RenderingComponent(std::shared_ptr<sf::Drawable> d);

      virtual ~RenderingComponent();

      /*!
       * @brief Draws the component in the given sf::RenderTarget. 
       * @param rt RenderTarget where component should be drawn. 
       * @param rs RenderStates to apply. Default : nothing. 
       */
      void draw(sf::RenderTarget& rt, 
                sf::RenderStates rs = sf::RenderStates::Default) const;

     /*!
       * @brief Places the component to render at the good place. 
       * @details Places the component at the position of its parent, 
{'fraction_non_alphanumeric': 0.09846903270702853, 'fraction_numerical': 0.0, 'mean_word_length': 2.2819634703196345, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5707062', 'n_tokens_mistral': 825, 'n_tokens_neox': 770, 'n_words': 236}