1 #ifndef _RIVE_SHAPE_HPP_
2 #define _RIVE_SHAPE_HPP_
3 #include "generated/shapes/shape_base.hpp"
4 #include "shapes/path_composer.hpp"
5 #include "shapes/shape_paint_container.hpp"
12 class Shape : public ShapeBase, public ShapePaintContainer
15 PathComposer m_PathComposer;
16 std::vector<Path*> m_Paths;
18 bool m_WantDifferencePath = false;
22 void buildDependencies() override;
23 void addPath(Path* path);
24 std::vector<Path*>& paths() { return m_Paths; }
26 bool wantDifferencePath() const { return m_WantDifferencePath; }
28 void update(ComponentDirt value) override;
29 void draw(Renderer* renderer) override;
31 PathComposer* pathComposer() const
33 return (PathComposer*)&m_PathComposer;
37 void addDefaultPathSpace(PathSpace space);
38 StatusCode onAddedDirty(CoreContext* context) override;