|  | #ifndef _RIVE_POINTS_PATH_BASE_HPP_ | 
|  | #define _RIVE_POINTS_PATH_BASE_HPP_ | 
|  | #include "rive/core/field_types/core_bool_type.hpp" | 
|  | #include "rive/shapes/path.hpp" | 
|  | namespace rive | 
|  | { | 
|  | class PointsPathBase : public Path | 
|  | { | 
|  | protected: | 
|  | typedef Path Super; | 
|  |  | 
|  | public: | 
|  | static const uint16_t typeKey = 16; | 
|  |  | 
|  | /// Helper to quickly determine if a core object extends another without | 
|  | /// RTTI at runtime. | 
|  | bool isTypeOf(uint16_t typeKey) const override | 
|  | { | 
|  | switch (typeKey) | 
|  | { | 
|  | case PointsPathBase::typeKey: | 
|  | case PathBase::typeKey: | 
|  | case NodeBase::typeKey: | 
|  | case TransformComponentBase::typeKey: | 
|  | case WorldTransformComponentBase::typeKey: | 
|  | case ContainerComponentBase::typeKey: | 
|  | case ComponentBase::typeKey: | 
|  | return true; | 
|  | default: | 
|  | return false; | 
|  | } | 
|  | } | 
|  |  | 
|  | uint16_t coreType() const override { return typeKey; } | 
|  |  | 
|  | static const uint16_t isClosedPropertyKey = 32; | 
|  |  | 
|  | private: | 
|  | bool m_IsClosed = false; | 
|  |  | 
|  | public: | 
|  | inline bool isClosed() const { return m_IsClosed; } | 
|  | void isClosed(bool value) | 
|  | { | 
|  | if (m_IsClosed == value) | 
|  | { | 
|  | return; | 
|  | } | 
|  | m_IsClosed = value; | 
|  | isClosedChanged(); | 
|  | } | 
|  |  | 
|  | Core* clone() const override; | 
|  | void copy(const PointsPathBase& object) | 
|  | { | 
|  | m_IsClosed = object.m_IsClosed; | 
|  | Path::copy(object); | 
|  | } | 
|  |  | 
|  | bool deserialize(uint16_t propertyKey, BinaryReader& reader) override | 
|  | { | 
|  | switch (propertyKey) | 
|  | { | 
|  | case isClosedPropertyKey: | 
|  | m_IsClosed = CoreBoolType::deserialize(reader); | 
|  | return true; | 
|  | } | 
|  | return Path::deserialize(propertyKey, reader); | 
|  | } | 
|  |  | 
|  | protected: | 
|  | virtual void isClosedChanged() {} | 
|  | }; | 
|  | } // namespace rive | 
|  |  | 
|  | #endif |