Program Listing for File canvas_node.h

Return to documentation for file (simple2dengine/nodes/canvas/canvas_node.h)

#ifndef _SIMPLE2DENGINE_NODES_CANVAS_CANVAS_NODE_H_
#define _SIMPLE2DENGINE_NODES_CANVAS_CANVAS_NODE_H_

#include <string>

#include "simple2dengine/core/anchor.h"
#include "simple2dengine/engine.h"
#include "simple2dengine/nodes/node.h"

namespace simple2dengine
{
    class CanvasNode : public Node
    {
      public:
        using Node::Node;
        bool addChild(std::shared_ptr<CanvasNode> child);
        void setPosition(const sf::Vector2f& position);
        void move(const sf::Vector2f& position);
        const sf::Vector2f& getPosition() const;
        const sf::Vector2f& getGlobalPosition() const;
        void setVisible(bool isVisible);
        bool isVisible() const;
        bool isVisibleInTree() const;
        void setAnchor(const Anchor anchor);
        Anchor getAnchor() const;
        virtual void updateTransform();

      private:
        bool visible = true;                                    // visibility of node
        Anchor anchor = Anchor::Top | Anchor::Left;             // anchor of node
        sf::Vector2f position = sf::Vector2f(0.0f, 0.0f);       // position that relative to parents
        sf::Vector2f globalPosition = sf::Vector2f(0.0f, 0.0f); // global position
    };
} // namespace simple2dengine

#endif // _SIMPLE2DENGINE_NODES_CANVAS_CANVAS_NODE_H_