| #include "rive/shapes/points_path.hpp" | |
| #include "rive/shapes/vertex.hpp" | |
| #include "rive/shapes/path_vertex.hpp" | |
| #include "rive/bones/skin.hpp" | |
| #include "rive/span.hpp" | |
| using namespace rive; | |
| Mat2D identity; | |
| void PointsPath::buildDependencies() { | |
| Super::buildDependencies(); | |
| if (skin() != nullptr) { | |
| skin()->addDependent(this); | |
| } | |
| } | |
| const Mat2D& PointsPath::pathTransform() const { | |
| if (skin() != nullptr) { | |
| return identity; | |
| } | |
| return worldTransform(); | |
| } | |
| void PointsPath::update(ComponentDirt value) { | |
| if (hasDirt(value, ComponentDirt::Path) && skin() != nullptr) { | |
| skin()->deform(Span((Vertex**)m_Vertices.data(), m_Vertices.size())); | |
| } | |
| Super::update(value); | |
| } | |
| void PointsPath::markPathDirty() { | |
| if (skin() != nullptr) { | |
| skin()->addDirt(ComponentDirt::Skin); | |
| } | |
| Super::markPathDirty(); | |
| } | |
| void PointsPath::markSkinDirty() { markPathDirty(); } |