|  | #ifndef _RIVE_PATH_VERTEX_HPP_ | 
|  | #define _RIVE_PATH_VERTEX_HPP_ | 
|  | #include "rive/bones/weight.hpp" | 
|  | #include "rive/generated/shapes/path_vertex_base.hpp" | 
|  | #include "rive/math/mat2d.hpp" | 
|  | namespace rive | 
|  | { | 
|  | class PathVertex : public PathVertexBase | 
|  | { | 
|  | friend class Weight; | 
|  |  | 
|  | private: | 
|  | Weight* m_Weight = nullptr; | 
|  | void weight(Weight* value) { m_Weight = value; } | 
|  |  | 
|  | public: | 
|  | StatusCode onAddedDirty(CoreContext* context) override; | 
|  | template <typename T> T* weight() { return m_Weight->as<T>(); } | 
|  | virtual void deform(Mat2D& worldTransform, float* boneTransforms); | 
|  | bool hasWeight() { return m_Weight != nullptr; } | 
|  | Vec2D renderTranslation(); | 
|  |  | 
|  | protected: | 
|  | void markPathDirty(); | 
|  | void xChanged() override; | 
|  | void yChanged() override; | 
|  |  | 
|  | #ifdef TESTING | 
|  | public: | 
|  | Weight* weight() { return m_Weight; } | 
|  | #endif | 
|  | }; | 
|  | } // namespace rive | 
|  |  | 
|  | #endif |